diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-06-21 06:02:41 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-06-21 06:02:41 -0700 |
commit | 5bebcd4ecba0791cecaa49d30ddd7ca8ffe03627 (patch) | |
tree | a45f037dd501845eabe6f66bda45547ca63a3c9d /t/t2017-checkout-orphan.sh | |
parent | 8c6b5a84547506c1cfabb966f27a10f5659e7e0b (diff) | |
parent | 157aaea5fff7dbf2fc39829d827b35df647562a4 (diff) | |
download | git-5bebcd4ecba0791cecaa49d30ddd7ca8ffe03627.tar.gz git-5bebcd4ecba0791cecaa49d30ddd7ca8ffe03627.tar.xz |
Merge branch 'em/checkout-orphan'
* em/checkout-orphan:
log_ref_setup: don't return stack-allocated array
bash completion: add --orphan to 'git checkout'
t3200: test -l with core.logAllRefUpdates options
checkout --orphan: respect -l option always
refs: split log_ref_write logic into log_ref_setup
Documentation: alter checkout --orphan description
Diffstat (limited to 't/t2017-checkout-orphan.sh')
-rwxr-xr-x | t/t2017-checkout-orphan.sh | 78 |
1 files changed, 57 insertions, 21 deletions
diff --git a/t/t2017-checkout-orphan.sh b/t/t2017-checkout-orphan.sh index a8297c61b..be88d4b5e 100755 --- a/t/t2017-checkout-orphan.sh +++ b/t/t2017-checkout-orphan.sh @@ -49,6 +49,62 @@ 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 -f .git/logs/refs/heads/delta && + test_must_fail PAGER= git reflog show delta && + git commit -m Delta && + test -f .git/logs/refs/heads/delta && + PAGER= git reflog show delta +' + +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 -f .git/logs/refs/heads/epsilon && + test_must_fail PAGER= git reflog show epsilon && + git commit -m Epsilon && + ! test -f .git/logs/refs/heads/epsilon && + test_must_fail PAGER= git reflog show epsilon +' + +test_expect_success '--orphan with -l makes reflog when core.logAllRefUpdates = false' ' + git checkout master && + git checkout -l --orphan zeta && + test -f .git/logs/refs/heads/zeta && + test_must_fail PAGER= git reflog show zeta && + git commit -m Zeta && + PAGER= git reflog show zeta +' + +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 -f .git/logs/refs/heads/eta && + test_must_fail PAGER= git reflog show eta && + git checkout master && + ! test -f .git/logs/refs/heads/eta && + test_must_fail PAGER= git reflog show eta +' + test_expect_success '--orphan is rejected with an existing name' ' git checkout master && test_must_fail git checkout --orphan master && @@ -60,31 +116,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 |