(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:'git checkout --orphan\n' span_id:15) (Token id:Id.Lit_Chars val:'\n' span_id:16) (Token id:Id.Lit_Chars val:'Main Tests for --orphan functionality.' span_id:17) ) } spids: [13] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TEST_FILE) op: assign_op.Equal rhs: {(foo)} spids: [26] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:Setup span_id:33))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:37) (Token id:Id.Lit_Chars val:'\techo "Initial" >"$TEST_FILE" &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\tgit add "$TEST_FILE" &&\n' span_id:39) (Token id:Id.Lit_Chars val:'\tgit commit -m "First Commit" &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:41) (Token id:Id.Lit_Chars val:'\techo "State 1" >>"$TEST_FILE" &&\n' span_id:42) (Token id:Id.Lit_Chars val:'\tgit add "$TEST_FILE" &&\n' span_id:43) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:44) (Token id:Id.Lit_Chars val:'\tgit commit -m "Second Commit"\n' span_id:45) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--orphan creates a new orphan branch from HEAD' span_id:52))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:56) (Token id:Id.Lit_Chars val:'\tgit checkout --orphan alpha &&\n' span_id:57) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse --verify HEAD &&\n' span_id:58) (Token id: Id.Lit_Chars val: '\ttest "refs/heads/alpha" = "$(git symbolic-ref HEAD)" &&\n' span_id: 59 ) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:60) (Token id:Id.Lit_Chars val:'\tgit commit -m "Third Commit" &&\n' span_id:61) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse --verify HEAD^ &&\n' span_id:62) (Token id:Id.Lit_Chars val:'\tgit diff-tree --quiet master alpha\n' span_id:63) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '--orphan creates a new orphan branch from <start_point>' span_id: 70 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:74) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:75) (Token id:Id.Lit_Chars val:'\tgit checkout --orphan beta master^ &&\n' span_id:76) (Token id: Id.Lit_Chars val: '\ttest_must_fail git rev-parse --verify HEAD &&\n' span_id: 77 ) (Token id:Id.Lit_Chars val:'\ttest "refs/heads/beta" = "$(git symbolic-ref HEAD)" &&\n' span_id:78) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:79) (Token id:Id.Lit_Chars val:'\tgit commit -m "Fourth Commit" &&\n' span_id:80) (Token id: Id.Lit_Chars val: '\ttest_must_fail git rev-parse --verify HEAD^ &&\n' span_id: 81 ) (Token id:Id.Lit_Chars val:'\tgit diff-tree --quiet master^ beta\n' span_id:82) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--orphan must be rejected with -b' span_id:89))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:93) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:94) (Token id:Id.Lit_Chars val:'\ttest_must_fail git checkout --orphan new -b newer &&\n' span_id:95) (Token id: Id.Lit_Chars val: '\ttest refs/heads/master = "$(git symbolic-ref HEAD)"\n' span_id: 96 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--orphan must be rejected with -t' span_id:103))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:107) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:108) (Token id:Id.Lit_Chars val:'\ttest_must_fail git checkout --orphan new -t master &&\n' span_id:109) (Token id: Id.Lit_Chars val: '\ttest refs/heads/master = "$(git symbolic-ref HEAD)"\n' span_id: 110 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--orphan ignores branch.autosetupmerge' span_id:117))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:121) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:122) (Token id:Id.Lit_Chars val:'\tgit config branch.autosetupmerge always &&\n' span_id:123) (Token id:Id.Lit_Chars val:'\tgit checkout --orphan gamma &&\n' span_id:124) (Token id:Id.Lit_Chars val:'\ttest -z "$(git config branch.gamma.merge)" &&\n' span_id:125) (Token id: Id.Lit_Chars val: '\ttest refs/heads/gamma = "$(git symbolic-ref HEAD)" &&\n' span_id: 126 ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse --verify HEAD^\n' span_id:127) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--orphan makes reflog by default' span_id:134))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:138) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:139) (Token id:Id.Lit_Chars val:'\tgit config --unset core.logAllRefUpdates &&\n' span_id:140) (Token id:Id.Lit_Chars val:'\tgit checkout --orphan delta &&\n' span_id:141) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse --verify delta@{0} &&\n' span_id:142) (Token id:Id.Lit_Chars val:'\tgit commit -m Delta &&\n' span_id:143) (Token id:Id.Lit_Chars val:'\tgit rev-parse --verify delta@{0}\n' span_id:144) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '--orphan does not make reflog when core.logAllRefUpdates = false' span_id: 151 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:155) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:156) (Token id:Id.Lit_Chars val:'\tgit config core.logAllRefUpdates false &&\n' span_id:157) (Token id:Id.Lit_Chars val:'\tgit checkout --orphan epsilon &&\n' span_id:158) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse --verify epsilon@{0} &&\n' span_id:159) (Token id:Id.Lit_Chars val:'\tgit commit -m Epsilon &&\n' span_id:160) (Token id:Id.Lit_Chars val:'\ttest_must_fail git rev-parse --verify epsilon@{0}\n' span_id:161) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: '--orphan with -l makes reflog when core.logAllRefUpdates = false' span_id: 168 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:172) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:173) (Token id:Id.Lit_Chars val:'\tgit checkout -l --orphan zeta &&\n' span_id:174) (Token id: Id.Lit_Chars val: '\ttest_must_fail git rev-parse --verify zeta@{0} &&\n' span_id: 175 ) (Token id:Id.Lit_Chars val:'\tgit commit -m Zeta &&\n' span_id:176) (Token id:Id.Lit_Chars val:'\tgit rev-parse --verify zeta@{0}\n' span_id:177) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'giving up --orphan not committed when -l and core.logAllRefUpdates = false deletes reflog' span_id: 184 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:188) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:189) (Token id:Id.Lit_Chars val:'\tgit checkout -l --orphan eta &&\n' span_id:190) (Token id: Id.Lit_Chars val: '\ttest_must_fail git rev-parse --verify eta@{0} &&\n' span_id: 191 ) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:192) (Token id: Id.Lit_Chars val: '\ttest_must_fail git rev-parse --verify eta@{0}\n' span_id: 193 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--orphan is rejected with an existing name' span_id:200))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:204) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:205) (Token id:Id.Lit_Chars val:'\ttest_must_fail git checkout --orphan master &&\n' span_id:206) (Token id: Id.Lit_Chars val: '\ttest refs/heads/master = "$(git symbolic-ref HEAD)"\n' span_id: 207 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--orphan refuses to switch if a merge is needed' span_id:214))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:218) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:219) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:220) (Token id:Id.Lit_Chars val:'\techo local >>"$TEST_FILE" &&\n' span_id:221) (Token id:Id.Lit_Chars val:'\tcat "$TEST_FILE" >"$TEST_FILE.saved" &&\n' span_id:222) (Token id: Id.Lit_Chars val: '\ttest_must_fail git checkout --orphan new master^ &&\n' span_id: 223 ) (Token id:Id.Lit_Chars val:'\ttest refs/heads/master = "$(git symbolic-ref HEAD)" &&\n' span_id:224) (Token id: Id.Lit_Chars val: '\ttest_cmp "$TEST_FILE" "$TEST_FILE.saved" &&\n' span_id: 225 ) (Token id:Id.Lit_Chars val:'\tgit diff-index --quiet --cached HEAD &&\n' span_id:226) (Token id:Id.Lit_Chars val:'\tgit reset --hard\n' span_id:227) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'cannot --detach on an unborn branch' span_id:234))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:238) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:239) (Token id:Id.Lit_Chars val:'\tgit checkout --orphan new &&\n' span_id:240) (Token id: Id.Lit_Chars val: '\ttest_must_fail git checkout --detach\n' span_id: 241 ) ) } ) (C {(test_done)}) ] )