aboutsummaryrefslogtreecommitdiff
path: root/format
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-05 21:21:22 +0800
committerGravatar Runxi Yu2026-03-05 21:21:22 +0800
commitca719713fc0899440823796aaf8c2cbd88707728 (patch)
treeaaae516469cc33fef65f894f8f1bfc3dacac4cd3 /format
parent*: Prettify (diff)
signatureNo signature
format/pack/ingest: Fix exhaustive
Diffstat (limited to 'format')
-rw-r--r--format/pack/ingest/ingest_test.go2
-rw-r--r--format/pack/ingest/resolve.go10
-rw-r--r--format/pack/ingest/stream_scan.go7
3 files changed, 18 insertions, 1 deletions
diff --git a/format/pack/ingest/ingest_test.go b/format/pack/ingest/ingest_test.go
index 35f19b43..0e51e0fd 100644
--- a/format/pack/ingest/ingest_test.go
+++ b/format/pack/ingest/ingest_test.go
@@ -15,7 +15,7 @@ import (
)
func fixtureAlgorithmDir(algo objectid.Algorithm) string {
- switch algo {
+ switch algo { //nolint:exhaustive
case objectid.AlgorithmSHA1:
return "sha1"
case objectid.AlgorithmSHA256:
diff --git a/format/pack/ingest/resolve.go b/format/pack/ingest/resolve.go
index e357e1aa..2347dbd5 100644
--- a/format/pack/ingest/resolve.go
+++ b/format/pack/ingest/resolve.go
@@ -129,6 +129,16 @@ func resolveRecord(state *ingestState, idx int, visiting map[int]struct{}) (obje
} else {
return objecttype.TypeInvalid, nil, errExternalThinBase
}
+ case objecttype.TypeInvalid,
+ objecttype.TypeCommit,
+ objecttype.TypeTree,
+ objecttype.TypeBlob,
+ objecttype.TypeTag,
+ objecttype.TypeFuture:
+ return objecttype.TypeInvalid, nil, &ErrMalformedPackEntry{
+ Offset: record.offset,
+ Reason: "unsupported delta type",
+ }
default:
return objecttype.TypeInvalid, nil, &ErrMalformedPackEntry{
Offset: record.offset,
diff --git a/format/pack/ingest/stream_scan.go b/format/pack/ingest/stream_scan.go
index 97bb0ae8..56ee5d55 100644
--- a/format/pack/ingest/stream_scan.go
+++ b/format/pack/ingest/stream_scan.go
@@ -161,6 +161,13 @@ func scanOneEntry(state *ingestState, startOffset uint64) (uint64, error) {
baseObject: record.baseObject,
recordIdx: recordIdx,
})
+ case objecttype.TypeInvalid,
+ objecttype.TypeCommit,
+ objecttype.TypeTree,
+ objecttype.TypeBlob,
+ objecttype.TypeTag,
+ objecttype.TypeFuture:
+ default:
}
return endOffset, nil