(command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test_description) op: Equal rhs: {(SQ <'Merge logic in fetch'>)} ) ] ) (C {(.)} {(./test-lib.sh)}) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:LF) op:Equal rhs:{(SQ <'\n'>)})] ) (C {(test_expect_success)} {(setup)} { (SQ <'\n'> <'\tGIT_AUTHOR_DATE="2006-06-26 00:00:00 +0000" &&\n'> <'\tGIT_COMMITTER_DATE="2006-06-26 00:00:00 +0000" &&\n'> <'\texport GIT_AUTHOR_DATE GIT_COMMITTER_DATE &&\n'> <'\n'> <'\techo >file original &&\n'> <'\tgit add file &&\n'> <'\tgit commit -a -m One &&\n'> <'\tgit tag tag-one &&\n'> <'\tgit tag tag-one-tree HEAD^{tree} &&\n'> <'\tgit branch one &&\n'> <'\n'> <'\techo two >> file &&\n'> <'\tgit commit -a -m Two &&\n'> <'\tgit tag -a -m "Tag Two" tag-two &&\n'> <'\tgit branch two &&\n'> <'\n'> <'\techo three >> file &&\n'> <'\tgit commit -a -m Three &&\n'> <'\tgit tag -a -m "Tag Three" tag-three &&\n'> <'\tgit tag -a -m "Tag Three file" tag-three-file HEAD^{tree}:file &&\n'> <'\tgit branch three &&\n'> <'\n'> <'\techo master >> file &&\n'> <'\tgit commit -a -m Master &&\n'> <'\tgit tag -a -m "Tag Master" tag-master &&\n'> <'\n'> <'\tgit checkout three &&\n'> <'\n'> <'\tgit clone . cloned &&\n'> <'\tcd cloned &&\n'> <'\tgit config remote.origin.url ../.git/ &&\n'> <'\n'> <'\tgit config remote.config-explicit.url ../.git/ &&\n'> <'\tgit config remote.config-explicit.fetch refs/heads/master:remotes/rem/master &&\n'> <'\tgit config --add remote.config-explicit.fetch refs/heads/one:remotes/rem/one &&\n'> <'\tgit config --add remote.config-explicit.fetch two:remotes/rem/two &&\n'> <'\tgit config --add remote.config-explicit.fetch refs/heads/three:remotes/rem/three &&\n'> <'\tremotes="config-explicit" &&\n'> <'\n'> <'\tgit config remote.config-glob.url ../.git/ &&\n'> <'\tgit config remote.config-glob.fetch refs/heads/*:refs/remotes/rem/* &&\n'> <'\tremotes="$remotes config-glob" &&\n'> <'\n'> <'\tmkdir -p .git/remotes &&\n'> <'\t{\n'> <'\t\techo "URL: ../.git/"\n'> <'\t\techo "Pull: refs/heads/master:remotes/rem/master"\n'> <'\t\techo "Pull: refs/heads/one:remotes/rem/one"\n'> <'\t\techo "Pull: two:remotes/rem/two"\n'> <'\t\techo "Pull: refs/heads/three:remotes/rem/three"\n'> <'\t} >.git/remotes/remote-explicit &&\n'> <'\tremotes="$remotes remote-explicit" &&\n'> <'\n'> <'\t{\n'> <'\t\techo "URL: ../.git/"\n'> <'\t\techo "Pull: refs/heads/*:refs/remotes/rem/*"\n'> <'\t} >.git/remotes/remote-glob &&\n'> <'\tremotes="$remotes remote-glob" &&\n'> <'\n'> <'\tmkdir -p .git/branches &&\n'> <'\techo "../.git" > .git/branches/branches-default &&\n'> <'\tremotes="$remotes branches-default" &&\n'> <'\n'> <'\techo "../.git#one" > .git/branches/branches-one &&\n'> <'\tremotes="$remotes branches-one" &&\n'> <'\n'> <'\tfor remote in $remotes ; do\n'> <'\t\tgit config branch.br-$remote.remote $remote &&\n'> <'\t\tgit config branch.br-$remote-merge.remote $remote &&\n'> <'\t\tgit config branch.br-$remote-merge.merge refs/heads/three &&\n'> <'\t\tgit config branch.br-$remote-octopus.remote $remote &&\n'> <'\t\tgit config branch.br-$remote-octopus.merge refs/heads/one &&\n'> <'\t\tgit config --add branch.br-$remote-octopus.merge two\n'> <'\tdone\n'> ) } ) (command.ForEach iter_name: remote iter_words: [{($ VSub_DollarName '$remotes')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: branch iter_words: [{(DQ )} {(DQ (-merge))} {(DQ (-octopus))}] do_arg_iter: F body: (command.DoGroup children: [ (command.SimpleCommand words: [{(cat)}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 169 stdin_parts: [ (br-) ($ VSub_DollarName '$remote') ($ VSub_DollarName '$branch') ('\n') (br-) ($ VSub_DollarName '$remote') ($ VSub_DollarName '$branch') (' ') ($ VSub_DollarName '$remote') ('\n') ] ) ] ) ] ) ) ] ) redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(tests)})] ) (command.ForEach iter_name: branch iter_words: [{(master)} {(br-unconfig)}] do_arg_iter: F body: (command.DoGroup children: [ (C {(echo)} {($ VSub_DollarName '$branch')}) (command.ForEach iter_name: remote iter_words: [{($ VSub_DollarName '$remotes')}] do_arg_iter: F body: (command.DoGroup children: [ (C {(echo)} {($ VSub_DollarName '$branch')} {($ VSub_DollarName '$remote')}) ] ) ) ] ) redirects: [(redir.Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{(tests)})] ) (command.ForEach iter_name: branch iter_words: [{(master)} {(br-unconfig)}] do_arg_iter: F body: (command.DoGroup children: [ (command.SimpleCommand words: [{(cat)}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 282 stdin_parts: [ ($ VSub_DollarName '$branch') (' ../.git\n') ($ VSub_DollarName '$branch') (' ../.git one\n') ($ VSub_DollarName '$branch') (' ../.git one two\n') ($ VSub_DollarName '$branch') (' --tags ../.git\n') ($ VSub_DollarName '$branch') (' ../.git tag tag-one tag tag-three\n') ($ VSub_DollarName '$branch') (' ../.git tag tag-one-tree tag tag-three-file\n') ($ VSub_DollarName '$branch') (' ../.git one tag tag-one tag tag-three-file\n') ] ) ] ) ] ) redirects: [(redir.Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{(tests)})] ) (command.WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(cmd)})] body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ VSub_DollarName '$cmd'))} arms: [ (case_arm pat_list: [{(SQ )} {(SQ <'#'>) (Lit_Other '*')}] action: [(command.ControlFlow token:<ControlFlow_Continue continue>)] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$cmd'))}) (C {(sed)} {(-e)} {(SQ <'s|[/ ][/ ]*|_|g'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pfx) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(printf)} {(DQ ('%04d'))} {($ VSub_DollarName '$test_count')}) ] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:expect_f) op: Equal rhs: { (DQ ($ VSub_DollarName '$TEST_DIRECTORY') (/t5515/fetch.) ($ VSub_DollarName '$test') ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:actual_f) op: Equal rhs: {(DQ ($ VSub_DollarName '$pfx') (-fetch.) ($ VSub_DollarName '$test'))} ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:expect_r) op: Equal rhs: { (DQ ($ VSub_DollarName '$TEST_DIRECTORY') (/t5515/refs.) ($ VSub_DollarName '$test') ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:actual_r) op: Equal rhs: {(DQ ($ VSub_DollarName '$pfx') (-refs.) ($ VSub_DollarName '$test'))} ) ] ) (C {(test_expect_success)} {(DQ ($ VSub_DollarName '$cmd'))} { (SQ <'\n'> <'\t\t{\n'> <'\t\t\techo "# $cmd"\n'> <'\t\t\tset x $cmd; shift\n'> <'\t\t\tgit symbolic-ref HEAD refs/heads/$1 ; shift\n'> <'\t\t\trm -f .git/FETCH_HEAD\n'> <'\t\t\tgit for-each-ref \\\n'> <'\t\t\t\trefs/heads refs/remotes/rem refs/tags |\n'> <'\t\t\twhile read val type refname\n'> <'\t\t\tdo\n'> <'\t\t\t\tgit update-ref -d "$refname" "$val"\n'> <'\t\t\tdone\n'> <'\t\t\tgit fetch "$@" >/dev/null\n'> <'\t\t\tcat .git/FETCH_HEAD\n'> <'\t\t} >"$actual_f" &&\n'> <'\t\tgit show-ref >"$actual_r" &&\n'> <'\t\tif test -f "$expect_f"\n'> <'\t\tthen\n'> <'\t\t\ttest_cmp "$expect_f" "$actual_f" &&\n'> <'\t\t\trm -f "$actual_f"\n'> <'\t\telse\n'> <'\t\t\t# this is to help developing new tests.\n'> <'\t\t\tcp "$actual_f" "$expect_f"\n'> <'\t\t\tfalse\n'> <'\t\tfi &&\n'> <'\t\tif test -f "$expect_r"\n'> <'\t\tthen\n'> <'\t\t\ttest_cmp "$expect_r" "$actual_r" &&\n'> <'\t\t\trm -f "$actual_r"\n'> <'\t\telse\n'> <'\t\t\t# this is to help developing new tests.\n'> <'\t\t\tcp "$actual_r" "$expect_r"\n'> <'\t\t\tfalse\n'> <'\t\tfi\n'> <'\t'> ) } ) ] ) redirects: [(redir.Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(tests)})] ) (C {(test_done)}) ] )