(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <'test automatic tag following'>)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(setup)} { (SQ <'\n'> <'\ttest_tick &&\n'> <'\techo ichi >file &&\n'> <'\tgit add file &&\n'> <'\tgit commit -m L &&\n'> <'\tL=$(git rev-parse --verify HEAD) &&\n'> <'\n'> <'\t(\n'> <'\t\tmkdir cloned &&\n'> <'\t\tcd cloned &&\n'> <'\t\tgit init-db &&\n'> <'\t\tgit remote add -f origin ..\n'> <'\t) &&\n'> <'\n'> <'\ttest_tick &&\n'> <'\techo A >file &&\n'> <'\tgit add file &&\n'> <'\tgit commit -m A &&\n'> <'\tA=$(git rev-parse --verify HEAD)\n'> ) } ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:U) op:Equal rhs:{(UPLOAD_LOG)} spids:[67])] spids: [67] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:UPATH) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(pwd)})]) left_token: <Left_CommandSub '$('> spids: [72 74] ) (/) ($ VSub_Name '$U') ) } spids: [70] ) ] spids: [70] ) (C {(test_expect_success)} {(SQ <'setup expect'>)} {(SQ <'\n'> <'cat - <<EOF >expect\n'> <'want $A\n'> <'EOF\n'>)} ) (FuncDef name: get_needs body: (BraceGroup children: [ (AndOr children: [ (C {(test)} {(-s)} {(DQ ($ VSub_Number '$1'))}) (C {(perl)} {(-alne)} { (SQ <'\n'> <'\t\tnext unless $F[1] eq "upload-pack<";\n'> <'\t\tlast if $F[2] eq "0000";\n'> <'\t\tprint $F[2], " ", $F[3];\n'> <'\t'> ) } {(DQ ($ VSub_Number '$1'))} ) ] op_id: Op_DAmp ) ] spids: [99] ) spids: [94 98] ) (C {(test_expect_success)} {(SQ <'fetch A (new commit : 1 connection)'>)} { (SQ <'\n'> <'\trm -f $U &&\n'> <'\t(\n'> <'\t\tcd cloned &&\n'> <'\t\tGIT_TRACE_PACKET=$UPATH git fetch &&\n'> <'\t\ttest $A = $(git rev-parse --verify origin/master)\n'> <'\t) &&\n'> <'\tget_needs $U >actual &&\n'> <'\ttest_cmp expect actual\n'> ) } ) (C {(test_expect_success)} {(DQ ('create tag T on A, create C on branch cat'))} { (SQ <'\n'> <'\tgit tag -a -m tag1 tag1 $A &&\n'> <'\tT=$(git rev-parse --verify tag1) &&\n'> <'\n'> <'\tgit checkout -b cat &&\n'> <'\techo C >file &&\n'> <'\tgit add file &&\n'> <'\tgit commit -m C &&\n'> <'\tC=$(git rev-parse --verify HEAD) &&\n'> <'\tgit checkout master\n'> ) } ) (C {(test_expect_success)} {(SQ <'setup expect'>)} {(SQ <'\n'> <'cat - <<EOF >expect\n'> <'want $C\n'> <'want $T\n'> <'EOF\n'>)} ) (C {(test_expect_success)} {(SQ <'fetch C, T (new branch, tag : 1 connection)'>)} { (SQ <'\n'> <'\trm -f $U &&\n'> <'\t(\n'> <'\t\tcd cloned &&\n'> <'\t\tGIT_TRACE_PACKET=$UPATH git fetch &&\n'> <'\t\ttest $C = $(git rev-parse --verify origin/cat) &&\n'> <'\t\ttest $T = $(git rev-parse --verify tag1) &&\n'> <'\t\ttest $A = $(git rev-parse --verify tag1^0)\n'> <'\t) &&\n'> <'\tget_needs $U >actual &&\n'> <'\ttest_cmp expect actual\n'> ) } ) (C {(test_expect_success)} {(DQ ('create commits O, B, tag S on B'))} { (SQ <'\n'> <'\ttest_tick &&\n'> <'\techo O >file &&\n'> <'\tgit add file &&\n'> <'\tgit commit -m O &&\n'> <'\n'> <'\ttest_tick &&\n'> <'\techo B >file &&\n'> <'\tgit add file &&\n'> <'\tgit commit -m B &&\n'> <'\tB=$(git rev-parse --verify HEAD) &&\n'> <'\n'> <'\tgit tag -a -m tag2 tag2 $B &&\n'> <'\tS=$(git rev-parse --verify tag2)\n'> ) } ) (C {(test_expect_success)} {(SQ <'setup expect'>)} {(SQ <'\n'> <'cat - <<EOF >expect\n'> <'want $B\n'> <'want $S\n'> <'EOF\n'>)} ) (C {(test_expect_success)} {(SQ <'fetch B, S (commit and tag : 1 connection)'>)} { (SQ <'\n'> <'\trm -f $U &&\n'> <'\t(\n'> <'\t\tcd cloned &&\n'> <'\t\tGIT_TRACE_PACKET=$UPATH git fetch &&\n'> <'\t\ttest $B = $(git rev-parse --verify origin/master) &&\n'> <'\t\ttest $B = $(git rev-parse --verify tag2^0) &&\n'> <'\t\ttest $S = $(git rev-parse --verify tag2)\n'> <'\t) &&\n'> <'\tget_needs $U >actual &&\n'> <'\ttest_cmp expect actual\n'> ) } ) (C {(test_expect_success)} {(SQ <'setup expect'>)} {(SQ <'\n'> <'cat - <<EOF >expect\n'> <'want $B\n'> <'want $S\n'> <'EOF\n'>)} ) (C {(test_expect_success)} {(SQ <'new clone fetch master and tags'>)} { (SQ <'\n'> <'\ttest_might_fail git branch -D cat &&\n'> <'\trm -f $U &&\n'> <'\t(\n'> <'\t\tmkdir clone2 &&\n'> <'\t\tcd clone2 &&\n'> <'\t\tgit init &&\n'> <'\t\tgit remote add origin .. &&\n'> <'\t\tGIT_TRACE_PACKET=$UPATH git fetch &&\n'> <'\t\ttest $B = $(git rev-parse --verify origin/master) &&\n'> <'\t\ttest $S = $(git rev-parse --verify tag2) &&\n'> <'\t\ttest $B = $(git rev-parse --verify tag2^0) &&\n'> <'\t\ttest $T = $(git rev-parse --verify tag1) &&\n'> <'\t\ttest $A = $(git rev-parse --verify tag1^0)\n'> <'\t) &&\n'> <'\tget_needs $U >actual &&\n'> <'\ttest_cmp expect actual\n'> ) } ) (C {(test_done)}) ] )