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 <sanail@yandex.ru> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
parent
d69fb4d4ac
commit
d76088bca6
|
@ -79,6 +79,29 @@ public void testPack2Commits(boolean aggressive) throws Exception {
|
||||||
assertEquals(2, stats.numberOfBitmaps);
|
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
|
@Theory
|
||||||
public void testPackAllObjectsInOnePack(boolean aggressive)
|
public void testPackAllObjectsInOnePack(boolean aggressive)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
|
|
|
@ -1166,6 +1166,7 @@ private PackFile writePack(@NonNull Set<? extends ObjectId> want,
|
||||||
// create temporary files
|
// create temporary files
|
||||||
String id = pw.computeName().getName();
|
String id = pw.computeName().getName();
|
||||||
File packdir = repo.getObjectDatabase().getPackDirectory();
|
File packdir = repo.getObjectDatabase().getPackDirectory();
|
||||||
|
packdir.mkdirs();
|
||||||
tmpPack = File.createTempFile("gc_", ".pack_tmp", packdir); //$NON-NLS-1$ //$NON-NLS-2$
|
tmpPack = File.createTempFile("gc_", ".pack_tmp", packdir); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
final String tmpBase = tmpPack.getName()
|
final String tmpBase = tmpPack.getName()
|
||||||
.substring(0, tmpPack.getName().lastIndexOf('.'));
|
.substring(0, tmpPack.getName().lastIndexOf('.'));
|
||||||
|
|
Loading…
Reference in New Issue