(command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test_description spids:[24]) op: Equal rhs: {(SQ <'Merge logic in fetch'>)} spids: [24] ) ] spids: [24] ) (C {(.)} {(./test-lib.sh)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:LF spids:[35]) op: Equal rhs: {(SQ <'\n'>)} spids: [35] ) ] spids: [35] ) (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_Name '$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: 177 stdin_parts: [ (br-) ($ VSub_Name '$remote') ($ VSub_Name '$branch') ('\n') (br-) ($ VSub_Name '$remote') ($ VSub_Name '$branch') (' ') ($ VSub_Name '$remote') ('\n') ] ) ] ) ] spids: [159 179] ) spids: [145 157] ) ] spids: [137 181] ) redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(tests)})] spids: [132 135] ) (command.ForEach iter_name: branch iter_words: [{(master)} {(br-unconfig)}] do_arg_iter: F body: (command.DoGroup children: [ (C {(echo)} {($ VSub_Name '$branch')}) (command.ForEach iter_name: remote iter_words: [{($ VSub_Name '$remotes')}] do_arg_iter: F body: (command.DoGroup children: [(C {(echo)} {($ VSub_Name '$branch')} {($ VSub_Name '$remote')})] spids: [230 240] ) spids: [225 228] ) ] spids: [212 242] ) redirects: [(redir.Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{(tests)})] spids: [205 210] ) (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: 290 stdin_parts: [ ($ VSub_Name '$branch') (' ../.git\n') ($ VSub_Name '$branch') (' ../.git one\n') ($ VSub_Name '$branch') (' ../.git one two\n') ($ VSub_Name '$branch') (' --tags ../.git\n') ($ VSub_Name '$branch') (' ../.git tag tag-one tag tag-three\n') ($ VSub_Name '$branch') (' ../.git tag tag-one-tree tag tag-three-file\n') ($ VSub_Name '$branch') (' ../.git one tag tag-one tag tag-three-file\n') ] ) ] ) ] spids: [267 291] ) redirects: [(redir.Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{(tests)})] spids: [260 265] ) (command.WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(cmd)})] body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ VSub_Name '$cmd'))} arms: [ (case_arm pat_list: [{(SQ )} {(SQ <'#'>) (Lit_Other '*')}] action: [(command.ControlFlow token:<ControlFlow_Continue continue>)] spids: [316 325 329 16777215] ) ] spids: [307 313 332] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test spids:[335]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$cmd'))}) (C {(sed)} {(-e)} {(SQ <'s|[/ ][/ ]*|_|g'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [336 352] ) } spids: [335] ) ] spids: [335] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pfx spids:[355]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(printf)} {(DQ ('%04d'))} {($ VSub_Name '$test_count')})] ) left_token: <Left_CommandSub '$('> spids: [356 364] ) } spids: [355] ) ] spids: [355] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:expect_f spids:[367]) op: Equal rhs: {(DQ ($ VSub_Name '$TEST_DIRECTORY') (/t5515/fetch.) ($ VSub_Name '$test'))} spids: [367] ) ] spids: [367] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:actual_f spids:[375]) op: Equal rhs: {(DQ ($ VSub_Name '$pfx') (-fetch.) ($ VSub_Name '$test'))} spids: [375] ) ] spids: [375] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:expect_r spids:[383]) op: Equal rhs: {(DQ ($ VSub_Name '$TEST_DIRECTORY') (/t5515/refs.) ($ VSub_Name '$test'))} spids: [383] ) ] spids: [383] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:actual_r spids:[391]) op: Equal rhs: {(DQ ($ VSub_Name '$pfx') (-refs.) ($ VSub_Name '$test'))} spids: [391] ) ] spids: [391] ) (C {(test_expect_success)} {(DQ ($ VSub_Name '$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'> ) } ) ] spids: [304 444] ) redirects: [(redir.Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(tests)})] ) (C {(test_done)}) ] )