(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'checkout and pathspecs/refspecs ambiguities' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:18))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:22) (Token id:Id.Lit_Chars val:'\techo hello >world &&\n' span_id:23) (Token id:Id.Lit_Chars val:'\techo hello >all &&\n' span_id:24) (Token id:Id.Lit_Chars val:'\tgit add all world &&\n' span_id:25) (Token id:Id.Lit_Chars val:'\tgit commit -m initial &&\n' span_id:26) (Token id:Id.Lit_Chars val:'\tgit branch world\n' span_id:27) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'reference must be a tree' span_id:34))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:38) (Token id: Id.Lit_Chars val: '\ttest_must_fail git checkout $(git hash-object ./all) --\n' span_id: 39 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'branch switching' span_id:46))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:50) (Token id: Id.Lit_Chars val: '\ttest "refs/heads/master" = "$(git symbolic-ref HEAD)" &&\n' span_id: 51 ) (Token id:Id.Lit_Chars val:'\tgit checkout world -- &&\n' span_id:52) (Token id: Id.Lit_Chars val: '\ttest "refs/heads/world" = "$(git symbolic-ref HEAD)"\n' span_id: 53 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'checkout world from the index' span_id:60))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:64) (Token id:Id.Lit_Chars val:'\techo bye > world &&\n' span_id:65) (Token id:Id.Lit_Chars val:'\tgit checkout -- world &&\n' span_id:66) (Token id:Id.Lit_Chars val:'\tgit diff --exit-code --quiet\n' span_id:67) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'non ambiguous call' span_id:74))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:78) (Token id:Id.Lit_Chars val:'\tgit checkout all\n' span_id:79) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'allow the most common case' span_id:86))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:90) (Token id:Id.Lit_Chars val:'\tgit checkout world &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\ttest "refs/heads/world" = "$(git symbolic-ref HEAD)"\n' span_id:92) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check ambiguity' span_id:99))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:103) (Token id: Id.Lit_Chars val: '\ttest_must_fail git checkout world all\n' span_id: 104 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check ambiguity in subdir' span_id:111))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:115) (Token id:Id.Lit_Chars val:'\tmkdir sub &&\n' span_id:116) (Token id:Id.Lit_Chars val:'\t# not ambiguous because sub/world does not exist\n' span_id:117) (Token id:Id.Lit_Chars val:'\tgit -C sub checkout world ../all &&\n' span_id:118) (Token id:Id.Lit_Chars val:'\techo hello >sub/world &&\n' span_id:119) (Token id: Id.Lit_Chars val: '\t# ambiguous because sub/world does exist\n' span_id: 120 ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git -C sub checkout world ../all\n' span_id:121) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'disambiguate checking out from a tree-ish' span_id:128))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:132) (Token id:Id.Lit_Chars val:'\techo bye > world &&\n' span_id:133) (Token id:Id.Lit_Chars val:'\tgit checkout world -- world &&\n' span_id:134) (Token id:Id.Lit_Chars val:'\tgit diff --exit-code --quiet\n' span_id:135) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'accurate error message with more than one ref' span_id:142))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:146) (Token id: Id.Lit_Chars val: '\ttest_must_fail git checkout HEAD master -- 2>actual &&\n' span_id: 147 ) (Token id:Id.Lit_Chars val:'\ttest_i18ngrep 2 actual &&\n' span_id:148) (Token id: Id.Lit_Chars val: '\ttest_i18ngrep "one reference expected, 2 given" actual\n' span_id: 149 ) ) } ) (C {(test_done)}) ] )