X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=t%2Ft2017-checkout-orphan.sh;h=2d2f63f22ee59d8dc24dafaa5224928ad62dea0c;hb=48c250a121a425a1860226b6a7061aecfbab5246;hp=a8297c61bd7402423eec6af1ba92f46cd13dd1bd;hpb=b0fd34ecd5a386b7b09a0161413c50f957ac181e;p=git.git diff --git a/t/t2017-checkout-orphan.sh b/t/t2017-checkout-orphan.sh index a8297c61b..2d2f63f22 100755 --- a/t/t2017-checkout-orphan.sh +++ b/t/t2017-checkout-orphan.sh @@ -49,6 +49,55 @@ test_expect_success '--orphan must be rejected with -b' ' test refs/heads/master = "$(git symbolic-ref HEAD)" ' +test_expect_success '--orphan must be rejected with -t' ' + git checkout master && + test_must_fail git checkout --orphan new -t master && + test refs/heads/master = "$(git symbolic-ref HEAD)" +' + +test_expect_success '--orphan ignores branch.autosetupmerge' ' + git checkout master && + git config branch.autosetupmerge always && + git checkout --orphan gamma && + test -z "$(git config branch.gamma.merge)" && + test refs/heads/gamma = "$(git symbolic-ref HEAD)" && + test_must_fail git rev-parse --verify HEAD^ +' + +test_expect_success '--orphan makes reflog by default' ' + git checkout master && + git config --unset core.logAllRefUpdates && + git checkout --orphan delta && + test_must_fail git rev-parse --verify delta@{0} && + git commit -m Delta && + git rev-parse --verify delta@{0} +' + +test_expect_success '--orphan does not make reflog when core.logAllRefUpdates = false' ' + git checkout master && + git config core.logAllRefUpdates false && + git checkout --orphan epsilon && + test_must_fail git rev-parse --verify epsilon@{0} && + git commit -m Epsilon && + test_must_fail git rev-parse --verify epsilon@{0} +' + +test_expect_success '--orphan with -l makes reflog when core.logAllRefUpdates = false' ' + git checkout master && + git checkout -l --orphan zeta && + test_must_fail git rev-parse --verify zeta@{0} && + git commit -m Zeta && + git rev-parse --verify zeta@{0} +' + +test_expect_success 'giving up --orphan not committed when -l and core.logAllRefUpdates = false deletes reflog' ' + git checkout master && + git checkout -l --orphan eta && + test_must_fail git rev-parse --verify eta@{0} && + git checkout master && + test_must_fail git rev-parse --verify eta@{0} +' + test_expect_success '--orphan is rejected with an existing name' ' git checkout master && test_must_fail git checkout --orphan master && @@ -60,31 +109,11 @@ test_expect_success '--orphan refuses to switch if a merge is needed' ' git reset --hard && echo local >>"$TEST_FILE" && cat "$TEST_FILE" >"$TEST_FILE.saved" && - test_must_fail git checkout --orphan gamma master^ && + test_must_fail git checkout --orphan new master^ && test refs/heads/master = "$(git symbolic-ref HEAD)" && test_cmp "$TEST_FILE" "$TEST_FILE.saved" && git diff-index --quiet --cached HEAD && git reset --hard ' -test_expect_success '--orphan does not mix well with -t' ' - git checkout master && - test_must_fail git checkout -t master --orphan gamma && - test refs/heads/master = "$(git symbolic-ref HEAD)" -' - -test_expect_success '--orphan ignores branch.autosetupmerge' ' - git checkout -f master && - git config branch.autosetupmerge always && - git checkout --orphan delta && - test -z "$(git config branch.delta.merge)" && - test refs/heads/delta = "$(git symbolic-ref HEAD)" && - test_must_fail git rev-parse --verify HEAD^ -' - -test_expect_success '--orphan does not mix well with -l' ' - git checkout -f master && - test_must_fail git checkout -l --orphan gamma -' - test_done