Fix FileRepository#convertToReftable which failed if no reflog existed
Deleting non-existing files when converting to reftable without backup
caused convertToReftable to fail. Observed this on a mirrored repository
which had no reflogs. Fix this by skipping missing files during
deletion.
Change-Id: I3bb913d5bfddccc6813677b873006efb849a6ebc
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java
index b939d37..51ee9e9 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java
@@ -759,12 +759,14 @@
}
} else {
FileUtils.delete(packedRefs, FileUtils.SKIP_MISSING);
- FileUtils.delete(headFile);
- FileUtils.delete(logsDir, FileUtils.RECURSIVE);
- FileUtils.delete(refsFile, FileUtils.RECURSIVE);
+ FileUtils.delete(headFile, FileUtils.SKIP_MISSING);
+ FileUtils.delete(logsDir,
+ FileUtils.RECURSIVE | FileUtils.SKIP_MISSING);
+ FileUtils.delete(refsFile,
+ FileUtils.RECURSIVE | FileUtils.SKIP_MISSING);
for (String r : additional) {
new File(getDirectory(), r).delete();
- }
+ }
}
FileUtils.mkdir(refsFile, true);