t3200: test -l with core.logAllRefUpdates options
authorErick Mattos <erick.mattos@gmail.com>
Sat, 22 May 2010 00:28:38 +0000 (21:28 -0300)
committerJunio C Hamano <gitster@pobox.com>
Thu, 3 Jun 2010 21:46:19 +0000 (14:46 -0700)
By default reflogs are always created for new local branches by
"checkout -b".  But by setting core.logAllRefUpdates to false this will
not be true anymore.

In that case you only create the reflogs when you use -l switch with
"checkout -b".

Added missing tests to check expected behaviors.

Signed-off-by: Erick Mattos <erick.mattos@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t3200-branch.sh

index e0b760513cfc065126cecd6e273180826c8f6bc9..9d2c06ea69d5e3a9d1c464a4d619245d6823c082 100755 (executable)
@@ -224,6 +224,30 @@ test_expect_success \
         test -f .git/logs/refs/heads/g/h/i &&
         diff expect .git/logs/refs/heads/g/h/i'
 
+test_expect_success 'checkout -b makes reflog by default' '
+       git checkout master &&
+       git config --unset core.logAllRefUpdates &&
+       git checkout -b alpha &&
+       test -f .git/logs/refs/heads/alpha &&
+       PAGER= git reflog show alpha
+'
+
+test_expect_success 'checkout -b does not make reflog when core.logAllRefUpdates = false' '
+       git checkout master &&
+       git config core.logAllRefUpdates false &&
+       git checkout -b beta &&
+       ! test -f .git/logs/refs/heads/beta &&
+       test_must_fail PAGER= git reflog show beta
+'
+
+test_expect_success 'checkout -b with -l makes reflog when core.logAllRefUpdates = false' '
+       git checkout master &&
+       git checkout -lb gamma &&
+       git config --unset core.logAllRefUpdates &&
+       test -f .git/logs/refs/heads/gamma &&
+       PAGER= git reflog show gamma
+'
+
 test_expect_success 'avoid ambiguous track' '
        git config branch.autosetupmerge true &&
        git config remote.ambi1.url lalala &&