Merge branch 'dt/reflog-tests'
authorJunio C Hamano <gitster@pobox.com>
Wed, 12 Aug 2015 21:09:56 +0000 (14:09 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 12 Aug 2015 21:09:56 +0000 (14:09 -0700)
Tests that assume how reflogs are represented on the filesystem too
much have been corrected.

* dt/reflog-tests:
tests: remove some direct access to .git/logs
t/t7509: remove unnecessary manipulation of reflog

t/t1400-update-ref.sh
t/t1410-reflog.sh
t/t1411-reflog-show.sh
t/t1503-rev-parse-verify.sh
t/t3200-branch.sh
t/t3210-pack-refs.sh
t/t3404-rebase-interactive.sh
t/t3903-stash.sh
t/t5312-prune-corruption.sh
t/t6501-freshen-objects.sh
t/t7509-commit.sh
index 9d21c1927e06312ae49b4c81e1ba53485a49b9de..97406fa4b137afdd99e64172d956718005844120 100755 (executable)
@@ -174,12 +174,11 @@ test_expect_success "(not) changed .git/$m" "
 '
 rm -f .git/$m
 
-: a repository with working tree always has reflog these days...
-: >.git/logs/refs/heads/master
+rm -f .git/logs/refs/heads/master
 test_expect_success \
        "create $m (logged by touch)" \
        'GIT_COMMITTER_DATE="2005-05-26 23:30" \
-        git update-ref HEAD '"$A"' -m "Initial Creation" &&
+        git update-ref --create-reflog HEAD '"$A"' -m "Initial Creation" &&
         test '"$A"' = $(cat .git/'"$m"')'
 test_expect_success \
        "update $m (logged by touch)" \
index 779d4e3829b29d7092d54f6e342f923f0d239b96..b79049f6f606f106e40dfdc241d7a168b10b88cb 100755 (executable)
@@ -100,7 +100,8 @@ test_expect_success setup '
 
        check_fsck &&
 
-       test_line_count = 4 .git/logs/refs/heads/master
+       git reflog refs/heads/master >output &&
+       test_line_count = 4 output
 '
 
 test_expect_success rewind '
@@ -116,7 +117,8 @@ test_expect_success rewind '
 
        check_have A B C D E F G H I J K L &&
 
-       test_line_count = 5 .git/logs/refs/heads/master
+       git reflog refs/heads/master >output &&
+       test_line_count = 5 output
 '
 
 test_expect_success 'corrupt and check' '
@@ -134,7 +136,8 @@ test_expect_success 'reflog expire --dry-run should not touch reflog' '
                --stale-fix \
                --all &&
 
-       test_line_count = 5 .git/logs/refs/heads/master &&
+       git reflog refs/heads/master >output &&
+       test_line_count = 5 output &&
 
        check_fsck "missing blob $F"
 '
@@ -147,7 +150,8 @@ test_expect_success 'reflog expire' '
                --stale-fix \
                --all &&
 
-       test_line_count = 2 .git/logs/refs/heads/master &&
+       git reflog refs/heads/master >output &&
+       test_line_count = 2 output &&
 
        check_fsck "dangling commit $K"
 '
@@ -213,7 +217,8 @@ test_expect_success 'delete' '
 test_expect_success 'rewind2' '
 
        test_tick && git reset --hard HEAD~2 &&
-       test_line_count = 4 .git/logs/refs/heads/master
+       git reflog refs/heads/master >output &&
+       test_line_count = 4 output
 '
 
 test_expect_success '--expire=never' '
@@ -222,7 +227,8 @@ test_expect_success '--expire=never' '
                --expire=never \
                --expire-unreachable=never \
                --all &&
-       test_line_count = 4 .git/logs/refs/heads/master
+       git reflog refs/heads/master >output &&
+       test_line_count = 4 output
 '
 
 test_expect_success 'gc.reflogexpire=never' '
@@ -230,7 +236,8 @@ test_expect_success 'gc.reflogexpire=never' '
        git config gc.reflogexpire never &&
        git config gc.reflogexpireunreachable never &&
        git reflog expire --verbose --all &&
-       test_line_count = 4 .git/logs/refs/heads/master
+       git reflog refs/heads/master >output &&
+       test_line_count = 4 output
 '
 
 test_expect_success 'gc.reflogexpire=false' '
@@ -238,7 +245,8 @@ test_expect_success 'gc.reflogexpire=false' '
        git config gc.reflogexpire false &&
        git config gc.reflogexpireunreachable false &&
        git reflog expire --verbose --all &&
-       test_line_count = 4 .git/logs/refs/heads/master &&
+       git reflog refs/heads/master >output &&
+       test_line_count = 4 output &&
 
        git config --unset gc.reflogexpire &&
        git config --unset gc.reflogexpireunreachable
index 3eb4f102e505445041a3772404523a99245a8346..6ac7734d79be21a82feeadff10064bb4ca7ad47b 100755 (executable)
@@ -138,7 +138,7 @@ test_expect_success '--date magic does not override explicit @{0} syntax' '
 : >expect
 test_expect_success 'empty reflog file' '
        git branch empty &&
-       : >.git/logs/refs/heads/empty &&
+       git reflog expire --expire=all refs/heads/empty &&
 
        git log -g empty >actual &&
        test_cmp expect actual
index 823fe1d79924b68950a59ffde902b16db29205b6..ab27d0db5c5577a23e1053b58eefa63015526d0c 100755 (executable)
@@ -85,8 +85,7 @@ test_expect_success 'fails silently when using -q' '
 
 test_expect_success 'fails silently when using -q with deleted reflogs' '
        ref=$(git rev-parse HEAD) &&
-       : >.git/logs/refs/test &&
-       git update-ref -m "message for refs/test" refs/test "$ref" &&
+       git update-ref --create-reflog -m "message for refs/test" refs/test "$ref" &&
        git reflog delete --updateref --rewrite refs/test@{0} &&
        test_must_fail git rev-parse -q --verify refs/test@{0} >error 2>&1 &&
        test_must_be_empty error
@@ -94,16 +93,14 @@ test_expect_success 'fails silently when using -q with deleted reflogs' '
 
 test_expect_success 'fails silently when using -q with not enough reflogs' '
        ref=$(git rev-parse HEAD) &&
-       : >.git/logs/refs/test2 &&
-       git update-ref -m "message for refs/test2" refs/test2 "$ref" &&
+       git update-ref --create-reflog -m "message for refs/test2" refs/test2 "$ref" &&
        test_must_fail git rev-parse -q --verify refs/test2@{999} >error 2>&1 &&
        test_must_be_empty error
 '
 
 test_expect_success 'succeeds silently with -q and reflogs that do not go far back enough in time' '
        ref=$(git rev-parse HEAD) &&
-       : >.git/logs/refs/test3 &&
-       git update-ref -m "message for refs/test3" refs/test3 "$ref" &&
+       git update-ref --create-reflog -m "message for refs/test3" refs/test3 "$ref" &&
        git rev-parse -q --verify refs/test3@{1.year.ago} >actual 2>error &&
        test_must_be_empty error &&
        echo "$ref" >expect &&
index ddea49808d063f6c169cf8078f5698e34c2ba803..cdaf6f64ec78830def2f082b72604075e15496f6 100755 (executable)
@@ -59,7 +59,7 @@ test_expect_success 'git branch -l d/e/f should create a branch and a log' '
 test_expect_success 'git branch -d d/e/f should delete a branch and a log' '
        git branch -d d/e/f &&
        test_path_is_missing .git/refs/heads/d/e/f &&
-       test_path_is_missing .git/logs/refs/heads/d/e/f
+       test_must_fail git reflog exists refs/heads/d/e/f
 '
 
 test_expect_success 'git branch j/k should work after branch j has been deleted' '
@@ -82,13 +82,13 @@ test_expect_success 'git branch -m dumps usage' '
 test_expect_success 'git branch -m m m/m should work' '
        git branch -l m &&
        git branch -m m m/m &&
-       test_path_is_file .git/logs/refs/heads/m/m
+       git reflog exists refs/heads/m/m
 '
 
 test_expect_success 'git branch -m n/n n should work' '
        git branch -l n/n &&
        git branch -m n/n n &&
-       test_path_is_file .git/logs/refs/heads/n
+       git reflog exists refs/heads/n
 '
 
 test_expect_success 'git branch -m o/o o should fail when o/p exists' '
@@ -267,12 +267,12 @@ git config branch.s/s.dummy Hello
 
 test_expect_success 'git branch -m s/s s should work when s/t is deleted' '
        git branch -l s/s &&
-       test_path_is_file .git/logs/refs/heads/s/s &&
+       git reflog exists refs/heads/s/s &&
        git branch -l s/t &&
-       test_path_is_file .git/logs/refs/heads/s/t &&
+       git reflog exists refs/heads/s/t &&
        git branch -d s/t &&
        git branch -m s/s s &&
-       test_path_is_file .git/logs/refs/heads/s
+       git reflog exists refs/heads/s
 '
 
 test_expect_success 'config information was renamed, too' '
index 8aae98d482aa572b3a9a55f9b38280ad716c7baf..7b5b6d452e3762c9d0e311602bf39317200c21a7 100755 (executable)
@@ -169,7 +169,7 @@ test_expect_success 'create packed foo/bar/baz branch' '
        git branch foo/bar/baz &&
        git pack-refs --all --prune &&
        test_path_is_missing .git/refs/heads/foo/bar/baz &&
-       test_path_is_missing .git/logs/refs/heads/foo/bar/baz
+       test_must_fail git reflog exists refs/heads/foo/bar/baz
 '
 
 test_expect_success 'notice d/f conflict with existing directory' '
index 9d26064abaeb9134f70f3f011ac14f965a250f77..d26e3f57dcbc18585c360ee78a725708f5a69207 100755 (executable)
@@ -961,13 +961,13 @@ test_expect_success 'rebase -i produces readable reflog' '
        set_fake_editor &&
        git rebase -i --onto I F branch-reflog-test &&
        cat >expect <<-\EOF &&
-       rebase -i (start): checkout I
-       rebase -i (pick): G
-       rebase -i (pick): H
        rebase -i (finish): returning to refs/heads/branch-reflog-test
+       rebase -i (pick): H
+       rebase -i (pick): G
+       rebase -i (start): checkout I
        EOF
-       tail -n 4 .git/logs/HEAD |
-       sed -e "s/.*    //" >actual &&
+       git reflog -n4 HEAD |
+       sed "s/[^:]*: //" >actual &&
        test_cmp expect actual
 '
 
index f5f18b7d21c00da258125a9125a46b32cf9e8504..2142c1fa92017bc47cfc4ccb1f25e16fc0eec1a4 100755 (executable)
@@ -672,7 +672,7 @@ test_expect_success 'store updates stash ref and reflog' '
        ! grep quux bazzy &&
        git stash store -m quuxery $STASH_ID &&
        test $(cat .git/refs/stash) = $STASH_ID &&
-       grep $STASH_ID .git/logs/refs/stash &&
+       git reflog --format=%H stash| grep $STASH_ID &&
        git stash pop &&
        grep quux bazzy
 '
index 8e98b44083f76b959f32883059f07d65a5b8aadb..da9d59940d5aa72a059a36f4187775b093eb5a58 100755 (executable)
@@ -12,7 +12,7 @@ delete objects that cannot be recovered.
 
 test_expect_success 'disable reflogs' '
        git config core.logallrefupdates false &&
-       rm -rf .git/logs
+       git reflog expire --expire=all --all
 '
 
 test_expect_success 'create history reachable only from a bogus-named ref' '
index 2adf825076b9c8f774973dcc83686980dca7725b..cf076dcd940aa0d74bd8df03b4f6c768e1954455 100755 (executable)
@@ -56,7 +56,7 @@ for repack in '' true; do
 
        test_expect_success "disable reflogs ($title)" '
                git config core.logallrefupdates false &&
-               rm -rf .git/logs
+               git reflog expire --expire=all --all
        '
 
        test_expect_success "setup basic history ($title)" '
index 9ac794052df6ac925733ff8a8852e9759bb0baf0..db9774e345586428ae1ac23f11d92ae00e05c1e9 100755 (executable)
@@ -90,22 +90,10 @@ sha1_file() {
 remove_object() {
        rm -f $(sha1_file "$*")
 }
-no_reflog() {
-       cp .git/config .git/config.saved &&
-       echo "[core] logallrefupdates = false" >>.git/config &&
-       test_when_finished "mv -f .git/config.saved .git/config" &&
-
-       if test -e .git/logs
-       then
-               mv .git/logs . &&
-               test_when_finished "mv logs .git/"
-       fi
-}
 
 test_expect_success '--amend option with empty author' '
        git cat-file commit Initial >tmp &&
        sed "s/author [^<]* </author  </" tmp >empty-author &&
-       no_reflog &&
        sha=$(git hash-object -t commit -w empty-author) &&
        test_when_finished "remove_object $sha" &&
        git checkout $sha &&
@@ -119,7 +107,6 @@ test_expect_success '--amend option with empty author' '
 test_expect_success '--amend option with missing author' '
        git cat-file commit Initial >tmp &&
        sed "s/author [^<]* </author </" tmp >malformed &&
-       no_reflog &&
        sha=$(git hash-object -t commit -w malformed) &&
        test_when_finished "remove_object $sha" &&
        git checkout $sha &&