git-p4: add failing test for "git-p4: respect excluded paths when detecting branches"
[gitweb.git] / t / t5304-prune.sh
index f20f03c1039256f0bc674e3969176a2c592919dd..1eeb828a15146e9e5040c64b20a31329853f12e7 100755 (executable)
@@ -112,17 +112,16 @@ test_expect_success 'prune: do not prune detached HEAD with no reflog' '
        # (should be removed and disabled by previous test)
        test_path_is_missing .git/logs &&
        git prune -n >prune_actual &&
-       : >prune_expected &&
-       test_cmp prune_actual prune_expected
+       test_must_be_empty prune_actual
 
 '
 
 test_expect_success 'prune: prune former HEAD after checking out branch' '
 
-       head_sha1=$(git rev-parse HEAD) &&
+       head_oid=$(git rev-parse HEAD) &&
        git checkout --quiet master &&
        git prune -v >prune_actual &&
-       grep "$head_sha1" prune_actual
+       grep "$head_oid" prune_actual
 
 '
 
@@ -266,15 +265,27 @@ EOF
 '
 
 test_expect_success 'prune .git/shallow' '
-       SHA1=$(echo hi|git commit-tree HEAD^{tree}) &&
-       echo $SHA1 >.git/shallow &&
+       oid=$(echo hi|git commit-tree HEAD^{tree}) &&
+       echo $oid >.git/shallow &&
        git prune --dry-run >out &&
-       grep $SHA1 .git/shallow &&
-       grep $SHA1 out &&
+       grep $oid .git/shallow &&
+       grep $oid out &&
        git prune &&
        test_path_is_missing .git/shallow
 '
 
+test_expect_success 'prune .git/shallow when there are no loose objects' '
+       oid=$(echo hi|git commit-tree HEAD^{tree}) &&
+       echo $oid >.git/shallow &&
+       git update-ref refs/heads/shallow-tip $oid &&
+       git repack -ad &&
+       # verify assumption that all loose objects are gone
+       git count-objects | grep ^0 &&
+       git prune &&
+       echo $oid >expect &&
+       test_cmp expect .git/shallow
+'
+
 test_expect_success 'prune: handle alternate object database' '
        test_create_repo A &&
        git -C A commit --allow-empty -m "initial commit" &&
@@ -315,8 +326,8 @@ test_expect_success 'prune: handle HEAD reflog in multiple worktrees' '
                git reset --hard HEAD^
        ) &&
        git prune --expire=now &&
-       SHA1=`git hash-object expected` &&
-       git -C third-worktree show "$SHA1" >actual &&
+       oid=`git hash-object expected` &&
+       git -C third-worktree show "$oid" >actual &&
        test_cmp expected actual
 '