All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Removed unused direct dependencies
sea-orm,natord, andring. - Package version bumped to
0.8.6.
- Dependency upgrades (
bstr,futures,path-absolutize,uuid,tokio, and related lockfile updates).
- Delta decoder returns errors for malformed streams instead of panicking; pack rebuild path propagates delta rebuild failures.
- Pack encoding no longer panics with
Invalid byte length: got 32, expected 20when finalizing a SHA-256 pack trailer on a thread whose thread-localHashKindwas never set.PackEncoderfinalizes its running checksum on whichever async worker thread happens to run the task; the previousObjectHash::from_bytescall re-read the thread-local kind at finalize time and could disagree with the hasher chosen at encoder construction, which surfaced as flaky SHA-256 pack failures (affecting, for example,libra bundle createon SHA-256 repositories). Both the delta path (encode/mod.rs) and the non-delta parallel path (encode/parallel.rs) now infer the hash kind from the checksum byte length via the newObjectHash::from_bytes_infer_kind, and propagate aGitErrorinstead of unwrapping.
ObjectHash::from_bytes_infer_kind— constructs anObjectHashfrom raw bytes by inferring the hash kind from the byte length (20 → SHA-1, 32 → SHA-256) instead of consulting the thread-localHashKind.- Regression test
internal::pack::encode::tests::test_parallel_encode_trailer_ignores_thread_local_kind, which drives a SHA-256 encoder on a fresh thread holding the default SHA-1 thread-local kind.
- Package
repositorymetadata now points to https://github.com/libra-tools/git-internal. - Resolved pre-existing clippy
-D warningsdebt so the lint gate passes again:match→?indelta::decode, anditer()→values()map iteration ininternal::index(no behavior change).
- Previous release; changes predate this changelog.