From d76088bca6077579f5b8fe669147a31ce7bbd6ad Mon Sep 17 00:00:00 2001 From: Nail Samatov Date: Tue, 27 Oct 2020 16:56:24 +0300 Subject: Fix IOException occurring during gc Fix IOException occurring when calling GC on a repository with absent objects/pack folder. Change-Id: I5be1333a0726f4d7491afd25ddac85451686c30a Signed-off-by: Nail Samatov Signed-off-by: Matthias Sohn --- .../internal/storage/file/GcBasicPackingTest.java | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'org.eclipse.jgit.test/tst') diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcBasicPackingTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcBasicPackingTest.java index e8d1cd3d7e..d007dd4511 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcBasicPackingTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcBasicPackingTest.java @@ -79,6 +79,29 @@ public class GcBasicPackingTest extends GcTestCase { assertEquals(2, stats.numberOfBitmaps); } + @Theory + public void testPack2Commits_noPackFolder(boolean aggressive) throws Exception { + File packDir = repo.getObjectDatabase().getPackDirectory(); + assertTrue(packDir.delete()); + + BranchBuilder bb = tr.branch("refs/heads/master"); + bb.commit().add("A", "A").add("B", "B").create(); + bb.commit().add("A", "A2").add("B", "B2").create(); + + stats = gc.getStatistics(); + assertEquals(8, stats.numberOfLooseObjects); + assertEquals(0, stats.numberOfPackedObjects); + configureGc(gc, aggressive); + gc.gc(); + stats = gc.getStatistics(); + assertEquals(0, stats.numberOfLooseObjects); + assertEquals(8, stats.numberOfPackedObjects); + assertEquals(1, stats.numberOfPackFiles); + assertEquals(2, stats.numberOfBitmaps); + + assertTrue(packDir.exists()); + } + @Theory public void testPackAllObjectsInOnePack(boolean aggressive) throws Exception { -- cgit v1.2.3