]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t7703: test --geometric repack with loose objects
authorTaylor Blau <me@ttaylorr.com>
Fri, 5 Mar 2021 15:21:43 +0000 (10:21 -0500)
committerJunio C Hamano <gitster@pobox.com>
Fri, 5 Mar 2021 19:33:52 +0000 (11:33 -0800)
We don't currently have a test that demonstrates the non-idempotent
behavior of 'git repack --geometric' with loose objects, so add one here
to make sure we don't regress in this area.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t7703-repack-geometric.sh

index 4a1952a054818f816c49a38090f6cce8d4761033..5ccaa440e0c140e8ea34112c49c62248539d9678 100755 (executable)
@@ -54,6 +54,37 @@ test_expect_success '--geometric with an intact progression' '
        )
 '
 
+test_expect_success '--geometric with loose objects' '
+       git init geometric &&
+       test_when_finished "rm -fr geometric" &&
+       (
+               cd geometric &&
+
+               # These packs already form a geometric progression.
+               test_commit_bulk --start=1 1 && # 3 objects
+               test_commit_bulk --start=2 2 && # 6 objects
+               # The loose objects are packed together, breaking the
+               # progression.
+               test_commit loose && # 3 objects
+
+               find $objdir/pack -name "*.pack" | sort >before &&
+               git repack --geometric 2 -d &&
+               find $objdir/pack -name "*.pack" | sort >after &&
+
+               comm -13 before after >new &&
+               comm -23 before after >removed &&
+
+               test_line_count = 1 new &&
+               test_must_be_empty removed &&
+
+               git repack --geometric 2 -d &&
+               find $objdir/pack -name "*.pack" | sort >after &&
+
+               # The progression (3, 3, 6) is combined into one new pack.
+               test_line_count = 1 after
+       )
+'
+
 test_expect_success '--geometric with small-pack rollup' '
        git init geometric &&
        test_when_finished "rm -fr geometric" &&