Merge branch 'cc/tests-without-assuming-ref-files-backend'
authorJunio C Hamano <gitster@pobox.com>
Fri, 1 Jun 2018 06:06:41 +0000 (15:06 +0900)
committerJunio C Hamano <gitster@pobox.com>
Fri, 1 Jun 2018 06:06:41 +0000 (15:06 +0900)
Quite a many tests assumed that newly created refs are made as
loose refs using the files backend, which have been updated to use
proper plumbing like rev-parse and update-ref, to avoid breakage
once we start using different ref backends.

* cc/tests-without-assuming-ref-files-backend:
t990X: use '.git/objects' as 'deep inside .git' path
t: make many tests depend less on the refs being files

t/lib-t6000.sh
t/t1401-symbolic-ref.sh
t/t3200-branch.sh
t/t3903-stash.sh
t/t5500-fetch-pack.sh
t/t5510-fetch.sh
t/t6010-merge-base.sh
t/t7201-co.sh
t/t9104-git-svn-follow-parent.sh
t/t9902-completion.sh
t/t9903-bash-prompt.sh
index 3f2d873fec9ed9e98b787cd708cd9e8e816e7573..b0ed4767e320e200c592e979dce0fa1e4cfd6ede 100644 (file)
@@ -4,11 +4,11 @@ mkdir -p .git/refs/tags
 
 >sed.script
 
-# Answer the sha1 has associated with the tag. The tag must exist in .git/refs/tags
+# Answer the sha1 has associated with the tag. The tag must exist under refs/tags
 tag () {
        _tag=$1
-       test -f ".git/refs/tags/$_tag" || error "tag: \"$_tag\" does not exist"
-       cat ".git/refs/tags/$_tag"
+       git rev-parse --verify "refs/tags/$_tag" ||
+       error "tag: \"$_tag\" does not exist"
 }
 
 # Generate a commit using the text specified to make it unique and the tree
index 9e782a8122f84939156e2bb4e0f871d86399f938..a4ebb0b65fecfada915209cfbc994a1b8ddce439 100755 (executable)
@@ -65,7 +65,7 @@ reset_to_sane
 test_expect_success 'symbolic-ref fails to delete real ref' '
        echo "fatal: Cannot delete refs/heads/foo, not a symbolic ref" >expect &&
        test_must_fail git symbolic-ref -d refs/heads/foo >actual 2>&1 &&
-       test_path_is_file .git/refs/heads/foo &&
+       git rev-parse --verify refs/heads/foo &&
        test_cmp expect actual
 '
 reset_to_sane
index b52c655c37e285892f431cccf7cfa5d4ba49d253..69ea8202f437a47b1c52b60f4a2afacd3d5a4f21 100755 (executable)
@@ -234,34 +234,34 @@ test_expect_success 'git branch -M master2 master2 should work when master is ch
 
 test_expect_success 'git branch -v -d t should work' '
        git branch t &&
-       test_path_is_file .git/refs/heads/t &&
+       git rev-parse --verify refs/heads/t &&
        git branch -v -d t &&
-       test_path_is_missing .git/refs/heads/t
+       test_must_fail git rev-parse --verify refs/heads/t
 '
 
 test_expect_success 'git branch -v -m t s should work' '
        git branch t &&
-       test_path_is_file .git/refs/heads/t &&
+       git rev-parse --verify refs/heads/t &&
        git branch -v -m t s &&
-       test_path_is_missing .git/refs/heads/t &&
-       test_path_is_file .git/refs/heads/s &&
+       test_must_fail git rev-parse --verify refs/heads/t &&
+       git rev-parse --verify refs/heads/s &&
        git branch -d s
 '
 
 test_expect_success 'git branch -m -d t s should fail' '
        git branch t &&
-       test_path_is_file .git/refs/heads/t &&
+       git rev-parse refs/heads/t &&
        test_must_fail git branch -m -d t s &&
        git branch -d t &&
-       test_path_is_missing .git/refs/heads/t
+       test_must_fail git rev-parse refs/heads/t
 '
 
 test_expect_success 'git branch --list -d t should fail' '
        git branch t &&
-       test_path_is_file .git/refs/heads/t &&
+       git rev-parse refs/heads/t &&
        test_must_fail git branch --list -d t &&
        git branch -d t &&
-       test_path_is_missing .git/refs/heads/t
+       test_must_fail git rev-parse refs/heads/t
 '
 
 test_expect_success 'git branch --list -v with --abbrev' '
index aefde7b1726bdc8d71d2b78e313e29daa2b31a24..1f871d3cca9aba4dcb32b5197b9b3d296fc5c1fa 100755 (executable)
@@ -726,7 +726,7 @@ test_expect_success 'store updates stash ref and reflog' '
        git reset --hard &&
        ! grep quux bazzy &&
        git stash store -m quuxery $STASH_ID &&
-       test $(cat .git/refs/stash) = $STASH_ID &&
+       test $(git rev-parse stash) = $STASH_ID &&
        git reflog --format=%H stash| grep $STASH_ID &&
        git stash pop &&
        grep quux bazzy
index 0680dec808574fb334612163ebd43d31418a37d5..d4f435155f5c9350f196904b910e2b5466c3ffd6 100755 (executable)
@@ -30,7 +30,7 @@ add () {
        test_tick &&
        commit=$(echo "$text" | git commit-tree $tree $parents) &&
        eval "$name=$commit; export $name" &&
-       echo $commit > .git/refs/heads/$branch &&
+       git update-ref "refs/heads/$branch" "$commit" &&
        eval ${branch}TIP=$commit
 }
 
@@ -45,10 +45,10 @@ pull_to_client () {
 
                        case "$heads" in
                            *A*)
-                                   echo $ATIP > .git/refs/heads/A;;
+                                   git update-ref refs/heads/A "$ATIP";;
                        esac &&
                        case "$heads" in *B*)
-                           echo $BTIP > .git/refs/heads/B;;
+                           git update-ref refs/heads/B "$BTIP";;
                        esac &&
                        git symbolic-ref HEAD refs/heads/$(echo $heads \
                                | sed -e "s/^\(.\).*$/\1/") &&
@@ -92,8 +92,8 @@ test_expect_success 'setup' '
                cur=$(($cur+1))
        done &&
        add B1 $A1 &&
-       echo $ATIP > .git/refs/heads/A &&
-       echo $BTIP > .git/refs/heads/B &&
+       git update-ref refs/heads/A "$ATIP" &&
+       git update-ref refs/heads/B "$BTIP" &&
        git symbolic-ref HEAD refs/heads/B
 '
 
index ae5a530a2dc61a7926abfd471e3325d1638ca457..e402aee6a22e64306c9f093ad1b529b3923fd65e 100755 (executable)
@@ -63,7 +63,7 @@ test_expect_success "fetch test" '
        git commit -a -m "updated by origin" &&
        cd two &&
        git fetch &&
-       test -f .git/refs/heads/one &&
+       git rev-parse --verify refs/heads/one &&
        mine=$(git rev-parse refs/heads/one) &&
        his=$(cd ../one && git rev-parse refs/heads/master) &&
        test "z$mine" = "z$his"
@@ -73,8 +73,8 @@ test_expect_success "fetch test for-merge" '
        cd "$D" &&
        cd three &&
        git fetch &&
-       test -f .git/refs/heads/two &&
-       test -f .git/refs/heads/one &&
+       git rev-parse --verify refs/heads/two &&
+       git rev-parse --verify refs/heads/one &&
        master_in_two=$(cd ../two && git rev-parse master) &&
        one_in_two=$(cd ../two && git rev-parse one) &&
        {
index 31db7b5f9125ed346450d7bfe29d8bb5fac0460a..aa2d360ce35940a176a0ef04ca7ba8560adefb23 100755 (executable)
@@ -34,7 +34,7 @@ doit () {
 
        commit=$(echo $NAME | git commit-tree $T $PARENTS) &&
 
-       echo $commit >.git/refs/tags/$NAME &&
+       git update-ref "refs/tags/$NAME" "$commit" &&
        echo $commit
 }
 
index 76c223c9675cd1531ac078fa9e0c1f8cc4e09781..ab9da61da391f1b6040076dda2454f602adef7d2 100755 (executable)
@@ -65,7 +65,7 @@ test_expect_success setup '
 test_expect_success "checkout from non-existing branch" '
 
        git checkout -b delete-me master &&
-       rm .git/refs/heads/delete-me &&
+       git update-ref -d --no-deref refs/heads/delete-me &&
        test refs/heads/delete-me = "$(git symbolic-ref HEAD)" &&
        git checkout master &&
        test refs/heads/master = "$(git symbolic-ref HEAD)"
index a735fa37170fca27b48fba218a408cb2ea6bac8a..9c49b6c1fe24335c6bcae777d60e14cdf96fd306 100755 (executable)
@@ -215,7 +215,8 @@ test_expect_success "multi-fetch continues to work" "
        "
 
 test_expect_success "multi-fetch works off a 'clean' repository" '
-       rm -r "$GIT_DIR/svn" "$GIT_DIR/refs/remotes" "$GIT_DIR/logs" &&
+       rm -rf "$GIT_DIR/svn" "$GIT_DIR/refs/remotes" &&
+       git reflog expire --all --expire=all &&
        mkdir "$GIT_DIR/svn" &&
        git svn multi-fetch
        '
index 36deb0b123cf501d4acd2c9ec26ff3acef21bc87..a28640ce1accd604bd32fdc95fd172119f6c3741 100755 (executable)
@@ -181,7 +181,7 @@ test_expect_success '__git_find_repo_path - cwd is a .git directory' '
 test_expect_success '__git_find_repo_path - parent is a .git directory' '
        echo "$ROOT/.git" >expected &&
        (
-               cd .git/refs/heads &&
+               cd .git/objects &&
                __git_find_repo_path &&
                echo "$__git_repo_path" >"$actual"
        ) &&
index 8f5c811dd7d627ea5a0611be5161cea98deedb95..c3b89ae783d0b5511718be6d6b9d9978dd9131cd 100755 (executable)
@@ -148,7 +148,7 @@ test_expect_success 'prompt - inside .git directory' '
 test_expect_success 'prompt - deep inside .git directory' '
        printf " (GIT_DIR!)" >expected &&
        (
-               cd .git/refs/heads &&
+               cd .git/objects &&
                __git_ps1 >"$actual"
        ) &&
        test_cmp expected "$actual"