(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"Merge logic in fetch">)} spids: [16] ) ] spids: [16] ) (C {(.)} {(./test-lib.sh)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:LF) op:Equal rhs:{(SQ <"\n">)} spids:[27])] spids: [27] ) (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"> ) } ) (ForEach iter_name: remote iter_words: [{($ VSub_Name "$remotes")}] do_arg_iter: False body: (DoGroup children: [ (ForEach iter_name: branch iter_words: [{(DQ )} {(DQ (-merge))} {(DQ (-octopus))}] do_arg_iter: False body: (DoGroup children: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ (br-) ($ VSub_Name "$remote") ($ VSub_Name "$branch") ("\n") (br-) ($ VSub_Name "$remote") ($ VSub_Name "$branch") (" ") ($ VSub_Name "$remote") ("\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [155] ) ] ) ] spids: [151 169] ) spids: [137 149] ) ] spids: [129 171] ) redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(tests)} spids:[173])] spids: [124 127] ) (ForEach iter_name: branch iter_words: [{(master)} {(br-unconfig)}] do_arg_iter: False body: (DoGroup children: [ (C {(echo)} {($ VSub_Name "$branch")}) (ForEach iter_name: remote iter_words: [{($ VSub_Name "$remotes")}] do_arg_iter: False body: (DoGroup children: [(C {(echo)} {($ VSub_Name "$branch")} {($ VSub_Name "$remote")})] spids: [220 230] ) spids: [215 218] ) ] spids: [202 232] ) redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(tests)} spids:[234])] spids: [195 200] ) (ForEach iter_name: branch iter_words: [{(master)} {(br-unconfig)}] do_arg_iter: False body: (DoGroup children: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ($ 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") ) } do_expansion: True here_end: EOF was_filled: True spids: [262] ) ] ) ] spids: [257 279] ) redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(tests)} spids:[281])] spids: [250 255] ) (While cond: [(C {(read)} {(cmd)})] body: (DoGroup children: [ (Case to_match: {(DQ ($ VSub_Name "$cmd"))} arms: [ (case_arm pat_list: [{(SQ )} {(SQ <"#">) (Lit_Other "*")}] action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [-1 313 317 -1] ) ] spids: [295 301 320] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name "$cmd"))}) (C {(sed)} {(-e)} {(SQ <"s|[/ ][/ ]*|_|g">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [324 340] ) } spids: [323] ) ] spids: [323] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pfx) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(printf)} {(DQ ("%04d"))} {($ VSub_Name "$test_count")})] ) left_token: <Left_CommandSub "$("> spids: [344 352] ) } spids: [343] ) ] spids: [343] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expect_f) op: Equal rhs: {(DQ ($ VSub_Name "$TEST_DIRECTORY") (/t5515/fetch.) ($ VSub_Name "$test"))} spids: [355] ) ] spids: [355] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:actual_f) op: Equal rhs: {(DQ ($ VSub_Name "$pfx") (-fetch.) ($ VSub_Name "$test"))} spids: [363] ) ] spids: [363] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expect_r) op: Equal rhs: {(DQ ($ VSub_Name "$TEST_DIRECTORY") (/t5515/refs.) ($ VSub_Name "$test"))} spids: [371] ) ] spids: [371] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:actual_r) op: Equal rhs: {(DQ ($ VSub_Name "$pfx") (-refs.) ($ VSub_Name "$test"))} spids: [379] ) ] spids: [379] ) (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: [292 432] ) redirects: [(Redir op_id:Redir_Less fd:-1 arg_word:{(tests)} spids:[434])] ) (C {(test_done)}) ] )