Added changes to satisfy a corner case: creating reflogs by using -l
when core.logAllRefUpdates is set to false.
Signed-off-by: Erick Mattos <erick.mattos@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Erick Mattos15 years agocommitted byJunio C Hamano
@ -49,6 +49,62 @@ test_expect_success '--orphan must be rejected with -b' '
@@ -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 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' '
@@ -60,31 +116,11 @@ test_expect_success '--orphan refuses to switch if a merge is needed' '