Skip to content

Commit 2fb27d2

Browse files
committed
change!: split index and pack checksum verification errors
1 parent fef386e commit 2fb27d2

File tree

7 files changed

+14
-11
lines changed

7 files changed

+14
-11
lines changed

gix-pack/src/index/traverse/error.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ use crate::index;
66
pub enum Error<E: std::error::Error + Send + Sync + 'static> {
77
#[error("One of the traversal processors failed")]
88
Processor(#[source] E),
9-
#[error("Index file, pack file or object verification failed")]
10-
VerifyChecksum(#[from] index::verify::checksum::Error),
9+
#[error("Failed to verify index file checksum")]
10+
IndexVerify(#[source] index::verify::checksum::Error),
1111
#[error("The pack delta tree index could not be built")]
1212
Tree(#[from] crate::cache::delta::from_offsets::Error),
1313
#[error("The tree traversal failed")]
@@ -25,6 +25,8 @@ pub enum Error<E: std::error::Error + Send + Sync + 'static> {
2525
expected: gix_hash::ObjectId,
2626
actual: gix_hash::ObjectId,
2727
},
28+
#[error("Failed to verify pack file checksum")]
29+
PackVerify(#[source] crate::verify::checksum::Error),
2830
#[error("The hash of {kind} object at offset {offset} didn't match the checksum in the index file: expected {expected}, got {actual}")]
2931
PackObjectMismatch {
3032
expected: gix_hash::ObjectId,

gix-pack/src/index/traverse/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,8 @@ impl index::File {
136136
move || pack.verify_checksum(pack_progress, should_interrupt),
137137
move || self.verify_checksum(index_progress, should_interrupt),
138138
);
139-
pack_res?;
140-
id?
139+
pack_res.map_err(Error::PackVerify)?;
140+
id.map_err(Error::IndexVerify)?
141141
} else {
142142
self.index_checksum()
143143
})

gix-pack/src/index/verify.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ impl index::File {
220220
.add_child_with_id("Sha1 of index".into(), integrity::ProgressId::ChecksumBytes.into()),
221221
should_interrupt,
222222
)
223-
.map_err(Into::into)
223+
.map_err(index::traverse::Error::IndexVerify)
224224
.map(|id| integrity::Outcome {
225225
actual_index_checksum: id,
226226
pack_traverse_statistics: None,

gix-pack/src/multi_index/verify.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -279,9 +279,10 @@ impl File {
279279
use index::traverse::Error::*;
280280
match err {
281281
Processor(err) => Processor(integrity::Error::IndexIntegrity(err)),
282-
VerifyChecksum(err) => VerifyChecksum(err),
282+
IndexVerify(err) => IndexVerify(err),
283283
Tree(err) => Tree(err),
284284
TreeTraversal(err) => TreeTraversal(err),
285+
PackVerify(err) => PackVerify(err),
285286
PackDecode { id, offset, source } => PackDecode { id, offset, source },
286287
PackMismatch { expected, actual } => PackMismatch { expected, actual },
287288
EntryType(err) => EntryType(err),

gix-pack/src/verify.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub mod checksum {
1010
pub enum Error {
1111
#[error("Interrupted by user")]
1212
Interrupted,
13-
#[error("index checksum mismatch: expected {expected}, got {actual}")]
13+
#[error("expected {expected}, got {actual}")]
1414
Mismatch {
1515
expected: gix_hash::ObjectId,
1616
actual: gix_hash::ObjectId,
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Error: Failed to explode the entire pack - some loose objects may have been created nonetheless
22

33
Caused by:
4-
0: Index file, pack file or object verification failed
5-
1: index checksum mismatch: expected f1cd3cc7bc63a4a2b357a475a58ad49b40355470, got 337fe3b886fc5041a35313887d68feefeae52519
4+
0: Failed to verify pack file checksum
5+
1: expected f1cd3cc7bc63a4a2b357a475a58ad49b40355470, got 337fe3b886fc5041a35313887d68feefeae52519

tests/snapshots/plumbing/no-repo/pack/verify/index-failure

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ Could not find matching pack file at 'index.pack' - only index file will be veri
22
Error: Verification failure
33

44
Caused by:
5-
0: Index file, pack file or object verification failed
6-
1: index checksum mismatch: expected 0eba66e6b391eb83efc3ec9fc8a3087788911c0a, got fa9a8a630eacc2d3df00aff604bec2451ccbc8ff
5+
0: Failed to verify index file checksum
6+
1: expected 0eba66e6b391eb83efc3ec9fc8a3087788911c0a, got fa9a8a630eacc2d3df00aff604bec2451ccbc8ff

0 commit comments

Comments
 (0)