Browse Source

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>
tags/v5.11.0.202102240950-m3
Matthias Sohn 3 years ago
parent
commit
58f2e23fde

+ 6
- 4
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java View File

@@ -759,12 +759,14 @@ public class FileRepository extends Repository {
}
} 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);

Loading…
Cancel
Save