When the packfile checksum does not match the expected one
report the correct checksum error instead of reporting that
the number of objects is incorrect.
Change-Id: I040f36dacc4152ae05453e7acbf8dfccceb46e0d
Signed-off-by: Luca Milanesio <luca.milanesio@gmail.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
(cherry picked from commit 436c99ce59
)
tags/v5.3.0.201903061415-rc1
@@ -489,7 +489,7 @@ openingConnection=Opening connection | |||
operationCanceled=Operation {0} was canceled | |||
outputHasAlreadyBeenStarted=Output has already been started. | |||
overflowedReftableBlock=Overflowed reftable block | |||
packChecksumMismatch=Pack checksum mismatch detected for pack file {0} | |||
packChecksumMismatch=Pack checksum mismatch detected for pack file {0}: .pack has {1} whilst .idx has {2} | |||
packCorruptedWhileWritingToFilesystem=Pack corrupted while writing to filesystem | |||
packDoesNotMatchIndex=Pack {0} does not match index | |||
packedRefsHandleIsStale=packed-refs handle is stale, {0}. retry |
@@ -187,7 +187,8 @@ public class PackFile implements Iterable<PackIndex.MutableEntry> { | |||
} else if (!Arrays.equals(packChecksum, idx.packChecksum)) { | |||
throw new PackMismatchException(MessageFormat.format( | |||
JGitText.get().packChecksumMismatch, | |||
packFile.getPath())); | |||
packFile.getPath(), packChecksum, | |||
idx.packChecksum)); | |||
} | |||
loadedIdx = idx; | |||
} catch (InterruptedIOException e) { | |||
@@ -750,10 +751,10 @@ public class PackFile implements Iterable<PackIndex.MutableEntry> { | |||
fd.readFully(buf, 0, 20); | |||
if (!Arrays.equals(buf, packChecksum)) { | |||
throw new PackMismatchException(MessageFormat.format( | |||
JGitText.get().packObjectCountMismatch | |||
, ObjectId.fromRaw(buf).name() | |||
, ObjectId.fromRaw(idx.packChecksum).name() | |||
, getPackFile())); | |||
JGitText.get().packChecksumMismatch, | |||
getPackFile(), | |||
ObjectId.fromRaw(buf).name(), | |||
ObjectId.fromRaw(idx.packChecksum).name())); | |||
} | |||
} | |||