Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.17.0 (2022-04-03)
Chore
- upgrade dashmap to 5.1.0 (with security fix)
New Features
-
index::File::lookup_prefix(…) - git-hash::Prefix::from_id() A way to obtain a prefix of an object id, with all non-prefix bytes set to zero.
- in-manifest and in-lib documentation of feature toggles
Bug Fixes
- support Rust 1.52
Refactor
- remove unnecessary unsafe by using
chunks_mut()This was probably a left-over from times where there was a static requirement on the chunks processing. Maybe… .
Commit Statistics
- 35 commits contributed to the release over the course of 73 calendar days.
- 60 days passed between releases.
- 6 commits where understood as conventional.
- 7 unique issues were worked on: #298, #301, #329, #331, #333, #364, #67
Thanks Clippy
Clippy helped 1 time to make code idiomatic.
Commit Details
view details
- #298
- Use hash_hasher based hash state for better keys/less collisions (
814de07) - upgrade parking_lot and cargo_toml (
f95c1a0) index::File::lookup_prefix(…)(503b1a1)- support MSRV (
d09fd9b) - add documentation for lookup_prefix along with missing test (
927b2ac) - lookup_prefix() seems to work now (
b558f11) - A stab at implementing lookup_prefix - to no avail (
69cb6d1) - refactor (
cff6f9f) - refactor (
5bc548e) - Prefix now validates all constraints and errors on violation (
75efa79) - git-hash::Prefix::from_id() (
cb83bee) - Sketch for abbreviated method lookup (
467453a)
- Use hash_hasher based hash state for better keys/less collisions (
- #301
- #329
- #331
- Adapt to changes in git_features::path to deal with Result (
bba4c68)
- Adapt to changes in git_features::path to deal with Result (
- #333
- #364
- #67
- Use an even faster way of counting (
3877920)
- Use an even faster way of counting (
- Uncategorized
- Merge branch 'for-onefetch' (
8e5cb65) - Release git-hash v0.9.3, git-features v0.20.0, git-config v0.2.0, safety bump 12 crates (
f0cbb24) - make fmt (
7cf3545) - remove unnecessary unsafe by using
chunks_mut()(9b9f10a) - Release git-tempfile v2.0.0, safety bump 6 crates (
90b1c42) - upgrade document-features (
c35e62e) - thanks clippy (
48be1ee) - Merge branch 'AP2008-implement-worktree' (
f32c669) - upgrade dashmap to 5.1.0 (with security fix) (
2520945) - support Rust 1.52 (
42e0487) - Release git-bitmap v0.0.1, git-hash v0.9.0, git-features v0.19.0, git-index v0.1.0, safety bump 9 crates (
4624725)
- Merge branch 'for-onefetch' (
0.16.1 (2022-02-01)
Bug Fixes
- downgrade dashmap to 4.0 to avoid unsoundness. See https://github.com/xacrimon/dashmap/issues/167 for tracking progress on resolving the issue.
Commit Statistics
- 6 commits contributed to the release over the course of 7 calendar days.
- 8 days passed between releases.
- 1 commit where understood as conventional.
- 0 issues like '(#ID)' where seen in commit messages
Commit Details
view details
- Uncategorized
- Release git-pack v0.16.1 (
d4a8f9f) - Release git-object v0.17.1, git-pack v0.16.1 (
e959af8) - Release git-hash v0.9.2, git-object v0.17.1, git-pack v0.16.1 (
0db19b8) - update changelogs prior to git-pack release (
b7e3a4a) - downgrade dashmap to 4.0 to avoid unsoundness. (
d9451e8) - Merge branch 'index-information' (
025f157)
- Release git-pack v0.16.1 (
0.16.0 (2022-01-23)
Refactor
- replace bare u32
data::Idtypedef
Other
- :File uses its hash_len parameter
- :Find implementation for Rc
Chore
- remove unused dependencies
New Features
- zero-objects check for index and multi-index integrity validation
- support for fan-checking in index and multi-index integrity verification
- introduce type for entry indices within an index or multi-index That way it's a littl emore descriptive than a bare u32.
- git_pack::Find::try_find_cached(…, pack_cache) With this method it's easier to bypass local caches and control the cache oneself entirely.
- A simplified version of the
Findtrait It's meant for the next generation of object db handles which keep a local cache of all the details of the actual object database.
Bug Fixes
-
support Rust 1.52
-
Allow resolution of in-pack ref-deltas This finally allows delta tree caches to be used on typical small packs returned by GitHub.
-
don't try to short-cut detection of large offsets when writing index files The code incorrectly assumed that the input is sorted by offsets, with the largest offset being last, even though by all means that's not the case.
-
Avoid the dashmap being cloned for each thread Intead, share it by reference, it's sync after all.
This issue was introduced when switching to a
Send + Clonemodel, instead ofSend + Sync, to allow thread-local caches in database handles of all kinds. -
linked::Store now assures unique IDs across compound stores
Changed (BREAKING)
-
Improve method signatures of
cache::Tree::* -
cleanup and unify
verify_integrity()method signature Previously they used many different ways of handling their parameters despite all boiling down to calling the same 'index::File::traverse()` method.This allows for more reuse of
Optionsstructs and generally makes clearer how these optinos are used. -
index::File::traverse()now returns anOutcomestruct instead of tuple of 3 fields -
remove
Option<impl Progress>in favor ofimpl Progress -
multi-index integrity check; use
integrity::Outcomefor various integrity checks -
remove unnecessary
Arcaroundshould_interruptflag -
remove Sha1 mentions in
index::verify::Mode::*variants The hash is repository defined and not hard-coded -
introduce
index::File::verify_integrity(…, pack: Option<PackContext>, …), replacing tuple This allows for more documentation on what input is required there and generally makes for an easier to use API. -
rename
oid::try_from()totry_from_bytes(), addfrom_bytes_unchecked()This change was done in the name of consistency, asfrom_bytes()is used in many other git-* crates -
Change accessors named
hash_kind()toobject_hash()for consistency -
consistently use
object_hashinstead ofhash_kind -
data::Entry::from_read() now takes a hash lengths as parameter That way ref-deltas can be interepreted without hard-coding SHA1
-
data::Entry::from_bytes(…, hash_len) takes new parameter The hash-len tells it how to interpret ref-delta objects, which store the complete hash of the base object.
This is now entirely configurable.
-
index::File::at()with git_hash::Kind parameter It will allow to assume different hashes even in the index file format which isn't yet capable of storing this information. -
data::File::at()andBundle::at()now havehash_kindparameter It's used to configure the kind of hash to assume when reading packs and indices. -
remove
make_object_cacheparameter fromgit_pack::data::output::count::objects()It now is an implementation detail of the Find trait. -
move
bundle::Locationtodata::entry::LocationThe latter place best describes its purpose. -
remove pack-cache from
Find::try_find(…)With the new architecture this can be an implementation detail without forcing it to be Sync. -
move git_pack::data::Object to git_object::Data, massively alter git_odb::Find trait This will break a lot, but has to happen to prepare these traits for the next generation of object databases.
Commit Statistics
- 145 commits contributed to the release over the course of 45 calendar days.
- 55 days passed between releases.
- 32 commits where understood as conventional.
- 6 unique issues were worked on: #260, #266, #279, #287, #293, #67
Thanks Clippy
Clippy helped 8 times to make code idiomatic.
Commit Details
view details
- #260
- linked::Store now assures unique IDs across compound stores (
b605c1f)
- linked::Store now assures unique IDs across compound stores (
- #266
- remove unused dependencies (
c800fdd) - upgrade dashmap to latest version (
52d4fe5) - refactor (
b88f253) - refactor (
52a4dcd) - Make single-threaded programs possible to use with git-repository (
dde5c6b) - Use new odb in place of the old one and it works (
8ad25c5) - Make find::Entry self-contained (
ad36fb9) - Remove iterator access in favor of fully owned data (
62d3f10) - Adjust pack-create to changes in git-pack (
12db899) - remove
make_object_cacheparameter fromgit_pack::data::output::count::objects()(3f05fea) - :Find implementation for Rc (
f48630b) - MultiPackIndex compatible pack::Find trait definition (
5fa1a9d) - git_pack::Find::try_find_cached(…, pack_cache) (
58c2edb) - refactor (
3310d8f) - remove pack-cache from
Find::try_find(…)(ebc7f47) - fix docs (
1bb4253) - move git_pack::data::Object to git_object::Data, massively alter git_odb::Find trait (
2290d00) - A simplified version of the
Findtrait (e25f4ea) - Remove CRC32 check entirely as it doesn't seem to be important in the big picture (
22d35bd) - Notes about multi-pack indices in the current data::entry::location (
7eff6bf) - Add 'contains()' method to Find (
dfdd6fb) - move
bundle::Locationtodata::entry::Location(82b9b33) - Use existing git_features facilities (
ed0c266)
- remove unused dependencies (
- #279
- Add a less thorough and faster way of verifying multi-indices (
7517482) - refactor (
91e6d38) - Allow interrupting multi-index creation more often (
f223ecb) - also test pack-creation with multi-index repo (
235a27a) - better multi-pack verification progress (
2e16f13) - Handle large multi-pack indices correctly (
4f6b030) - Fix progress and handling of large of multi-pack index offsets (
5dc1f81) - add missing docs (
4137327) - write progress for multi-pack writing (
1bea1d4) - adapt to changes in git-features (
542c0df) - progress for chunk writing (
50fde01) - multi-pack index writing complete with large-offset support (
f7d5c7f) - write pack-ids and offsets (
bfc8069) - Add chunk for oids (
565a7ae) - Write the fanout table (
6a68ed7) - refactor (
93dc660) - Write multi-index header along with path-names chunk (
2fc6751) - Sketch all the chunk-write API and use it from multi-index write (
5457761) - Add frame for writing a multi-pack index (
9ce1e7f) index::File::traverse()now returns anOutcomestruct instead of tuple of 3 fields (2cf7727)- refactor (
c361ee3) - multi-index verification now matches that of git itself (
3a76a28) - zero-objects check for index and multi-index integrity validation (
b80dec2) - support for fan-checking in index and multi-index integrity verification (
56fc99f) - More detailed multi-index verification (
8f9a55b) - Add remaining docs for multi-index (
10a24c1) - even nicer printing (
d2bea27) - docs for multi_index::chunk (
73fbc91) - nicer printing of index verification results (
e3dfa12) - very first experimental support for multi-pack index verification (
bb35c69) - refactor (
eafdff4) - remove
Option<impl Progress>in favor ofimpl Progress(bf04644) - multi-index iteration (
1c99903) - Access pack-indices and pack-offsets of multi-pack indices (
c2a6918) - multi-index integrity check; use
integrity::Outcomefor various integrity checks (6829e5e) - oid lookup for multi-pack indices (
254f618) - remove unnecessary
Arcaroundshould_interruptflag (d851bed) - Add basic oid by multi-index file index (
a54f552) - remove Sha1 mentions in
index::verify::Mode::*variants (c2679a0) - introduce
index::File::verify_integrity(…, pack: Option<PackContext>, …), replacing tuple (80b120d) - rename
oid::try_from()totry_from_bytes(), addfrom_bytes_unchecked()(79dc0d5) - multi-index verify checksum (
853d468) - Change accessors named
hash_kind()toobject_hash()for consistency (2ef9a84) - Adapt to changes in git-hash (
754a663) - Remove unnecessary
Defaultimplementation for user of Tree::traverse (9da20e9) - fix docs (
ce044ef) - remove unnecessary Default bound for data in Tree nodes (
d548f72) - adjust to changes in git-hash (
9bf25cc) - consistently use
object_hashinstead ofhash_kind(b76f6be) - introduce type for entry indices within an index or multi-index (
28e3ea8) - replace bare u32
data::Idtypedef (e0b8636) - adjust to changes in git-hash (
ca35246) - Adjust to changes in git-hash and git-pack (
0cae25b) - data::Entry::from_read() now takes a hash lengths as parameter (
629412b) - Adjust to changes in git-odb (
710780c) - data::Entry::from_bytes(…, hash_len) takes new parameter (
851dc2c) - refactor (
7331e99) - adjust to changes in git-hash (
07aa1bc) - :File uses its hash_len parameter (
e6ff1a8) index::File::at()with git_hash::Kind parameter (db8c8c4)data::File::at()andBundle::at()now havehash_kindparameter (e6a3c9f)- remove unnecessary dev-depednency (
b71ea6a) - adapt to changes in git-hash (
82fec95) - Calculate trailer offset instead of storing it (
bf62067) - Make pessimistic size-estimation instead of an optimistic one (
69f1d2a) - refactor (
8b8b4c5) - refactor (
8c9c7fc) - Adapt to changes in git-chunk (
44ea5c3) - refactor (
ac46765) - Adapt to latest changes to git-chunk (
743d696) - Provide multi-index checksum (
a363de9) - update changelog prior to release (
6ae49e3) - completely validate and parse multi-index file (
e7e40c3) - read and validate index names contained in the multi-pack index (
24a9790) - read and validate fanout chunk (
3ca04e3) - Read all mandatory and optional chunks (
99023bb) - Load chunk index of midx file (
fac8efa) - frame for git-chunk crate to share among git-pack and git-commitgraph (
b2d2ae2) - basic midx header parsing (
edf02ae) - First pieces of header parsing; allow to respect multi-index desired hash kind in git-odb (
1a2a049) - frame for instantiation of multi-pack-index (
5e085ec)
- Add a less thorough and faster way of verifying multi-indices (
- #287
- way nicer progress messages for repo verification (
4b4f9f8) - upgrade to prodash 17 (
47860b7) - refactor (
831397c) - Allow resolution of in-pack ref-deltas (
84ade1d) - refactor (
38426a1) - Test to reproduce ref-delta forward references and the issue it poses for index traversal (
7db7195) - Very rough version of repository verification (
80a4a7a) - refactor (
6c06659) - Improve method signatures of
cache::Tree::*(a79a7fb) - cleanup and unify
verify_integrity()method signature (91d0476)
- way nicer progress messages for repo verification (
- #293
- fix docs, again (
7b2ab26) - fix build (
e3977fe) - Use InOrderIter from git-features (
7721b5f) - Basic IEOT parsing (
35bdee4) - Assure we are right about the leb64 buffer needed for a 64 bit int (
7558844) - Adapt to changes in git-features: use var-int decoding from there (
52e3c6f) - remove byteorder from git-pack (
4122306) - git-pack uses
memmap2instead offilebuffer(d9011c7)
- fix docs, again (
- #67
- Uncategorized
- Release git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (
1b76119) - Release git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (
8f57c29) - Release git-features v0.19.1, git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (
d78aab7) - thanks clippy (
d8925f5) - Release git-hash v0.9.1, git-features v0.19.1, git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0, safety bump 4 crates (
373cbc8) - Fix git-pack changelog to be stable (
fd5b616) - prepar changelogs for cargo-smart-release release (
8900d69) - thanks clippy (
5a68d2f) - thanks clippy (
1e051dc) - don't try to short-cut detection of large offsets when writing index files (
ba92cc0) - refactor (
e7fbd9f) - thanks clippy (
7bd3ad3) - thanks clippy (
533a532) - Release git-chunk v0.2.0, safety bump 4 crates (
b792fab) - thanks clippy (
35cf46f) - refactor (
0032223) - Merge branch 'oknozor-feat/traversal-sort-by-committer-date' (
6add377) - make fmt (
066f3ff) - thanks clippy (
4ca9e07) - thanks clippy (
7dd2313)
- Release git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (
0.15.0 (2021-11-29)
Changed (BREAKING)
-
parallel utilities now use
Send + Cloneinstead ofSend + Sync.This helps to assure that thread-local computations always work with the kind of types we provide. The ones that are carrying out actions are notably not
Syncanymore.We cater to that by defining our bounds accordingly, but for those who want to use other utilities that need Sync, using types like
Repositoryandthread_local!()is the only way to make this work.
Commit Statistics
- 10 commits contributed to the release over the course of 25 calendar days.
- 12 days passed between releases.
- 2 commits where understood as conventional.
- 2 unique issues were worked on: #250, #263
Commit Details
view details
- #250
- #263
- Uncategorized
- Release git-actor v0.7.0, git-config v0.1.9, git-object v0.16.0, git-diff v0.12.0, git-traverse v0.11.0, git-pack v0.15.0, git-odb v0.25.0, git-packetline v0.12.2, git-transport v0.14.0, git-protocol v0.13.0, git-ref v0.10.0, git-repository v0.13.0, cargo-smart-release v0.7.0 (
d3f9227) - Release git-features v0.18.0, git-actor v0.7.0, git-config v0.1.9, git-object v0.16.0, git-diff v0.12.0, git-traverse v0.11.0, git-pack v0.15.0, git-odb v0.25.0, git-packetline v0.12.2, git-transport v0.14.0, git-protocol v0.13.0, git-ref v0.10.0, git-repository v0.13.0, cargo-smart-release v0.7.0, safety bump 12 crates (
acd3737) - Adjust changelogs prior to release (
ec38950) - Merge branch 'git-loose-objects' of https://github.com/xmo-odoo/gitoxide into xmo-odoo-git-loose-objects (
ee737cd) - Move "loose object header" ser/de to git-object (
3d1565a)
- Release git-actor v0.7.0, git-config v0.1.9, git-object v0.16.0, git-diff v0.12.0, git-traverse v0.11.0, git-pack v0.15.0, git-odb v0.25.0, git-packetline v0.12.2, git-transport v0.14.0, git-protocol v0.13.0, git-ref v0.10.0, git-repository v0.13.0, cargo-smart-release v0.7.0 (
0.14.0 (2021-11-16)
An important bugfix to prevent assertion failures when writing thin packs.
Bug Fixes
-
Adjust size-hints of resolving entries iterator and use the upper bound in delta tree.
The delta-tree is a data structure that actually heavily relies on favorable allocation and a known amount of objects in order to provide front and back buffers. However, this is an implementation detail and they don't have to stay consistent at all especially after growing the buffer by pushing to it.
Interestingly, the VecDeque internally over-allocates as well which definitely helps the example of
as_mut_slices(), otherwise it could also suffer from the assertions that trigger here.
Commit Statistics
- 12 commits contributed to the release.
- 27 days passed between releases.
- 2 commits where understood as conventional.
- 3 unique issues were worked on: #247, #254, #259
Commit Details
view details
- #247
- Rename gix->ein and gixp->gix (
e8b0919)
- Rename gix->ein and gixp->gix (
- #254
- #259
- Uncategorized
- Release git-config v0.1.8, git-object v0.15.1, git-diff v0.11.1, git-traverse v0.10.1, git-pack v0.14.0, git-odb v0.24.0, git-packetline v0.12.1, git-transport v0.13.1, git-protocol v0.12.1, git-ref v0.9.1, git-repository v0.12.0, cargo-smart-release v0.6.0 (
f606fa9) - Adjusting changelogs prior to release of git-config v0.1.8, git-object v0.15.1, git-diff v0.11.1, git-traverse v0.10.1, git-pack v0.14.0, git-odb v0.24.0, git-packetline v0.12.1, git-transport v0.13.1, git-protocol v0.12.1, git-ref v0.9.1, git-repository v0.12.0, cargo-smart-release v0.6.0, safety bump 5 crates (
39b40c8) - Merge branch 'header-field-multi-improve' of https://github.com/xmo-odoo/gitoxide into xmo-odoo-header-field-multi-improve (
d88e377)
- Release git-config v0.1.8, git-object v0.15.1, git-diff v0.11.1, git-traverse v0.10.1, git-pack v0.14.0, git-odb v0.24.0, git-packetline v0.12.1, git-transport v0.13.1, git-protocol v0.12.1, git-ref v0.9.1, git-repository v0.12.0, cargo-smart-release v0.6.0 (
Lines 1–500 of 1137. Load more
# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## 0.17.0 (2022-04-03) ### Chore - <csr-id-25209454d3f7e27e12e8ddca92e43b1ff01d58aa/> upgrade dashmap to 5.1.0 (with security fix) ### New Features - <csr-id-503b1a1f8d4f39b44c166209d7a8ba8d74137859/> `index::File::lookup_prefix(…)` - <csr-id-cb83beedd1aa389f6774e2296f79273e8c8f14f4/> git-hash::Prefix::from_id() A way to obtain a prefix of an object id, with all non-prefix bytes set to zero. - <csr-id-16208306ab49ade30d8ffd6b067ebd8eefd84cd4/> in-manifest and in-lib documentation of feature toggles ### Bug Fixes - <csr-id-42e0487286c1f745837c0ce337ed7c9d86b14516/> support Rust 1.52 ### Refactor - <csr-id-9b9f10ad862b5e097c836c51df1eb98607df5ae1/> remove unnecessary unsafe by using `chunks_mut()` This was probably a left-over from times where there was a static requirement on the chunks processing. Maybe… . ### Commit Statistics <csr-read-only-do-not-edit/> - 35 commits contributed to the release over the course of 73 calendar days. - 60 days passed between releases. - 6 commits where understood as [conventional](https://www.conventionalcommits.org). - 7 unique issues were worked on: [#298](https://github.com/Byron/gitoxide/issues/298), [#301](https://github.com/Byron/gitoxide/issues/301), [#329](https://github.com/Byron/gitoxide/issues/329), [#331](https://github.com/Byron/gitoxide/issues/331), [#333](https://github.com/Byron/gitoxide/issues/333), [#364](https://github.com/Byron/gitoxide/issues/364), [#67](https://github.com/Byron/gitoxide/issues/67) ### Thanks Clippy <csr-read-only-do-not-edit/> [Clippy](https://github.com/rust-lang/rust-clippy) helped 1 time to make code idiomatic. ### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> * **[#298](https://github.com/Byron/gitoxide/issues/298)** - Use hash_hasher based hash state for better keys/less collisions ([`814de07`](https://github.com/Byron/gitoxide/commit/814de079f4226f42efa49ad334a348bce67184e4)) - upgrade parking_lot and cargo_toml ([`f95c1a0`](https://github.com/Byron/gitoxide/commit/f95c1a0d9c19bcc6feb9b8739a09d86f9970a0e0)) - `index::File::lookup_prefix(…)` ([`503b1a1`](https://github.com/Byron/gitoxide/commit/503b1a1f8d4f39b44c166209d7a8ba8d74137859)) - support MSRV ([`d09fd9b`](https://github.com/Byron/gitoxide/commit/d09fd9b37557f2dc199e8a4651c56b3b63423136)) - add documentation for lookup_prefix along with missing test ([`927b2ac`](https://github.com/Byron/gitoxide/commit/927b2ace875cdda63ce312eb7ad5329f2159608d)) - lookup_prefix() seems to work now ([`b558f11`](https://github.com/Byron/gitoxide/commit/b558f111520381e25a9500d3b2401fdd337db6f6)) - A stab at implementing lookup_prefix - to no avail ([`69cb6d1`](https://github.com/Byron/gitoxide/commit/69cb6d1dd6b8df74fee1ead1ce15bcf0b51d7232)) - refactor ([`cff6f9f`](https://github.com/Byron/gitoxide/commit/cff6f9fc90e58c409e367912d0b38860fae9a205)) - refactor ([`5bc548e`](https://github.com/Byron/gitoxide/commit/5bc548ed500045491012ab0a93bcbe13e78b0dc8)) - Prefix now validates all constraints and errors on violation ([`75efa79`](https://github.com/Byron/gitoxide/commit/75efa79f62efc29b343d2d2f53eaf001eef176df)) - git-hash::Prefix::from_id() ([`cb83bee`](https://github.com/Byron/gitoxide/commit/cb83beedd1aa389f6774e2296f79273e8c8f14f4)) - Sketch for abbreviated method lookup ([`467453a`](https://github.com/Byron/gitoxide/commit/467453a7e625a3bc8e3e381ce50f24f1be8ba605)) * **[#301](https://github.com/Byron/gitoxide/issues/301)** - Salvage an alternative parallelization approach which might be good for index-creation ([`7e76796`](https://github.com/Byron/gitoxide/commit/7e76796d5c2956961bd998286bec05fca1ba8fc4)) - refactor ([`f86eacc`](https://github.com/Byron/gitoxide/commit/f86eacc5cfaf6d88ead4f8dbd65989d32674c213)) - switch index checkout to chunk-based operation ([`e5f6943`](https://github.com/Byron/gitoxide/commit/e5f69433e4a6cc7866b666e0baccfa32efb92a7f)) * **[#329](https://github.com/Byron/gitoxide/issues/329)** - in-manifest and in-lib documentation of feature toggles ([`1620830`](https://github.com/Byron/gitoxide/commit/16208306ab49ade30d8ffd6b067ebd8eefd84cd4)) - Document all features related to serde1 ([`72b97f2`](https://github.com/Byron/gitoxide/commit/72b97f2ae4dc7642b160f183c6d5df4502dc186f)) * **[#331](https://github.com/Byron/gitoxide/issues/331)** - Adapt to changes in git_features::path to deal with Result ([`bba4c68`](https://github.com/Byron/gitoxide/commit/bba4c680c627a418efbd25f14bd168df19b8dedd)) * **[#333](https://github.com/Byron/gitoxide/issues/333)** - Use git_features::path everywhere where there is a path conversion ([`2e1437c`](https://github.com/Byron/gitoxide/commit/2e1437cb0b5dc77f2317881767f71eaf9b009ebf)) - gitoxide-core without os-str-bytes ([`909aa14`](https://github.com/Byron/gitoxide/commit/909aa1402c82c3128052023613a297b213716e3d)) - Remove os_str_bytes from git-pack ([`86f6e50`](https://github.com/Byron/gitoxide/commit/86f6e5054ea11b7aeb9c85321913de090f71e3a1)) * **[#364](https://github.com/Byron/gitoxide/issues/364)** - add some precaution to avoid strange interactions with packs ([`b052a9a`](https://github.com/Byron/gitoxide/commit/b052a9a3e9127fd9a4029594ea9de6e436db03c6)) - fix build ([`9c8e449`](https://github.com/Byron/gitoxide/commit/9c8e449e928b3190e5845606f79b12c529dede55)) * **[#67](https://github.com/Byron/gitoxide/issues/67)** - Use an even faster way of counting ([`3877920`](https://github.com/Byron/gitoxide/commit/387792085542ebc8277ac0dcaf9e3dc3b522a69a)) * **Uncategorized** - Merge branch 'for-onefetch' ([`8e5cb65`](https://github.com/Byron/gitoxide/commit/8e5cb65da75036a13ed469334e7ae6c527d9fff6)) - Release git-hash v0.9.3, git-features v0.20.0, git-config v0.2.0, safety bump 12 crates ([`f0cbb24`](https://github.com/Byron/gitoxide/commit/f0cbb24b2e3d8f028be0e773f9da530da2656257)) - make fmt ([`7cf3545`](https://github.com/Byron/gitoxide/commit/7cf354509b545f7e7c99e159b5989ddfbe86273d)) - remove unnecessary unsafe by using `chunks_mut()` ([`9b9f10a`](https://github.com/Byron/gitoxide/commit/9b9f10ad862b5e097c836c51df1eb98607df5ae1)) - Release git-tempfile v2.0.0, safety bump 6 crates ([`90b1c42`](https://github.com/Byron/gitoxide/commit/90b1c42d5487904a9f329362d185b035d0ddb975)) - upgrade document-features ([`c35e62e`](https://github.com/Byron/gitoxide/commit/c35e62e0da9ac1f7dcb863f5f9c69108c728d32e)) - thanks clippy ([`48be1ee`](https://github.com/Byron/gitoxide/commit/48be1ee666a88f1416896c5e8073d4d86dae7b8c)) - Merge branch 'AP2008-implement-worktree' ([`f32c669`](https://github.com/Byron/gitoxide/commit/f32c669bc519d59a1f1d90d61cc48a422c86aede)) - upgrade dashmap to 5.1.0 (with security fix) ([`2520945`](https://github.com/Byron/gitoxide/commit/25209454d3f7e27e12e8ddca92e43b1ff01d58aa)) - support Rust 1.52 ([`42e0487`](https://github.com/Byron/gitoxide/commit/42e0487286c1f745837c0ce337ed7c9d86b14516)) - Release git-bitmap v0.0.1, git-hash v0.9.0, git-features v0.19.0, git-index v0.1.0, safety bump 9 crates ([`4624725`](https://github.com/Byron/gitoxide/commit/4624725f54a34dd6b35d3632fb3516965922f60a)) </details> ## 0.16.1 (2022-02-01) ### Bug Fixes - <csr-id-d9451e8d7fc39c252042f9d2447061262c16ae7a/> downgrade dashmap to 4.0 to avoid unsoundness. See https://github.com/xacrimon/dashmap/issues/167 for tracking progress on resolving the issue. ### Commit Statistics <csr-read-only-do-not-edit/> - 6 commits contributed to the release over the course of 7 calendar days. - 8 days passed between releases. - 1 commit where understood as [conventional](https://www.conventionalcommits.org). - 0 issues like '(#ID)' where seen in commit messages ### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> * **Uncategorized** - Release git-pack v0.16.1 ([`d4a8f9f`](https://github.com/Byron/gitoxide/commit/d4a8f9f73bb829bcc83fa68b6b5a7495fcba6b19)) - Release git-object v0.17.1, git-pack v0.16.1 ([`e959af8`](https://github.com/Byron/gitoxide/commit/e959af83fa92e8ed87edae6e2d1c6a797964c056)) - Release git-hash v0.9.2, git-object v0.17.1, git-pack v0.16.1 ([`0db19b8`](https://github.com/Byron/gitoxide/commit/0db19b8deaf11a4d4cbc03fa3ae40eea104bc302)) - update changelogs prior to git-pack release ([`b7e3a4a`](https://github.com/Byron/gitoxide/commit/b7e3a4afdd6417a38aadad35c7f584617e7b47fa)) - downgrade dashmap to 4.0 to avoid unsoundness. ([`d9451e8`](https://github.com/Byron/gitoxide/commit/d9451e8d7fc39c252042f9d2447061262c16ae7a)) - Merge branch 'index-information' ([`025f157`](https://github.com/Byron/gitoxide/commit/025f157de10a509a4b36a9aed41de80487e8c15c)) </details> ## 0.16.0 (2022-01-23) <csr-id-ebc7f47708a63c3df4415ba0e702660d976dfb3e/> <csr-id-2290d006705ff47ad780b009fe58ee422b3285af/> <csr-id-e0b8636f96e4bfe1bc72b5aa6ad4c4c8538ff92c/> <csr-id-c800fdd331e6d7a0b8d756ba822915259f26e9e8/> ### Refactor - <csr-id-e0b8636f96e4bfe1bc72b5aa6ad4c4c8538ff92c/> replace bare u32 `data::Id` typedef ### Other - <csr-id-e6ff1a885889cf88f6b34b1193aa03d8bce16af5/> :File uses its hash_len parameter - <csr-id-f48630ba8f745c2ec61a1e3c51fa63a1789a088c/> :Find implementation for Rc ### Chore - <csr-id-c800fdd331e6d7a0b8d756ba822915259f26e9e8/> remove unused dependencies ### New Features - <csr-id-b80dec2323b81fb2172df76c7d897a4b5e6bdfea/> zero-objects check for index and multi-index integrity validation - <csr-id-56fc99fb9c1cab61abd03c10e1b4af0d6e491bbf/> support for fan-checking in index and multi-index integrity verification - <csr-id-28e3ea8612112f6a04cfaff591565eca5a1ffba2/> introduce type for entry indices within an index or multi-index That way it's a littl emore descriptive than a bare u32. - <csr-id-58c2edb76755ab71e10eef4cd9a51533825c291f/> git_pack::Find::try_find_cached(…, pack_cache) With this method it's easier to bypass local caches and control the cache oneself entirely. - <csr-id-e25f4eadec679406aad6df10026e27e4832c2482/> A simplified version of the `Find` trait It's meant for the next generation of object db handles which keep a local cache of all the details of the actual object database. ### Bug Fixes - <csr-id-42e0487286c1f745837c0ce337ed7c9d86b14516/> support Rust 1.52 - <csr-id-84ade1d23060f10bf6c8529f8f693d06660b4f4e/> Allow resolution of in-pack ref-deltas This finally allows delta tree caches to be used on typical small packs returned by GitHub. - <csr-id-ba92cc09ba41fe4c9a9097bfeb8d18016408fcdf/> don't try to short-cut detection of large offsets when writing index files The code incorrectly assumed that the input is sorted by offsets, with the largest offset being last, even though by all means that's not the case. - <csr-id-6d3f52dc13d7243a6bce6dab89a985114a75d94b/> Avoid the dashmap being cloned for each thread Intead, share it by reference, it's sync after all. This issue was introduced when switching to a `Send + Clone` model, instead of `Send + Sync`, to allow thread-local caches in database handles of all kinds. - <csr-id-b605c1fa0494b10872d3c2e6ecce0e39f1a90a9e/> linked::Store now assures unique IDs across compound stores ### Changed (BREAKING) - <csr-id-a79a7fb638b45df88af0d0d5fc9ada6d824bc328/> Improve method signatures of `cache::Tree::*` - <csr-id-91d047658b114f372735116c9d8e6962a3873137/> cleanup and unify `verify_integrity()` method signature Previously they used many different ways of handling their parameters despite all boiling down to calling the same 'index::File::traverse()` method. This allows for more reuse of `Options` structs and generally makes clearer how these optinos are used. - <csr-id-2cf7727228e1d8094ffd2eec6746006348c39eab/> `index::File::traverse()` now returns an `Outcome` struct instead of tuple of 3 fields - <csr-id-bf04644ab75ed1969507f957dc8d4868790d462d/> remove `Option<impl Progress>` in favor of `impl Progress` - <csr-id-6829e5e5d6aed1e6c87647144e2dd76a1e4b9f1f/> multi-index integrity check; use `integrity::Outcome` for various integrity checks - <csr-id-d851bede97801096d188ff6af06c98a79fe276db/> remove unnecessary `Arc` around `should_interrupt` flag - <csr-id-c2679a03358b9c19d63ed1af1cd57324c6381447/> remove Sha1 mentions in `index::verify::Mode::*` variants The hash is repository defined and not hard-coded - <csr-id-80b120d3278e46429f848df7af3db13413c36649/> introduce `index::File::verify_integrity(…, pack: Option<PackContext>, …)`, replacing tuple This allows for more documentation on what input is required there and generally makes for an easier to use API. - <csr-id-79dc0d5ba6fa31ddd5c075693ffdc6496c1eaded/> rename `oid::try_from()` to `try_from_bytes()`, add `from_bytes_unchecked()` This change was done in the name of consistency, as `from_bytes()` is used in many other git-* crates - <csr-id-2ef9a8424af51310db8c1e6df31dde9953ed3d21/> Change accessors named `hash_kind()` to `object_hash()` for consistency - <csr-id-b76f6be6c5baa6cf613a174241f007e92bf5ba36/> consistently use `object_hash` instead of `hash_kind` - <csr-id-629412b4cb192614b7eff08dbf203e3448c902c1/> data::Entry::from_read() now takes a hash lengths as parameter That way ref-deltas can be interepreted without hard-coding SHA1 - <csr-id-851dc2c52fa8e204ba2d5ced8fb0959a889869d8/> data::Entry::from_bytes(…, hash_len) takes new parameter The hash-len tells it how to interpret ref-delta objects, which store the complete hash of the base object. This is now entirely configurable. - <csr-id-db8c8c41b4ced0fc296d3877883d801e77d550ae/> `index::File::at()` with git_hash::Kind parameter It will allow to assume different hashes even in the index file format which isn't yet capable of storing this information. - <csr-id-e6a3c9f72332b524b143bc94ee9df0a6db11e864/> `data::File::at()` and `Bundle::at()` now have `hash_kind` parameter It's used to configure the kind of hash to assume when reading packs and indices. - <csr-id-3f05fea55dc8acce1ed62ecbe4e0a1394f2720b7/> remove `make_object_cache` parameter from `git_pack::data::output::count::objects()` It now is an implementation detail of the Find trait. - <csr-id-82b9b33bd5f4c3c1721a5093de2cedc62cb10565/> move `bundle::Location` to `data::entry::Location` The latter place best describes its purpose. - remove pack-cache from `Find::try_find(…)` With the new architecture this can be an implementation detail without forcing it to be Sync. - move git_pack::data::Object to git_object::Data, massively alter git_odb::Find trait This will break a lot, but has to happen to prepare these traits for the next generation of object databases. ### Commit Statistics <csr-read-only-do-not-edit/> - 145 commits contributed to the release over the course of 45 calendar days. - 55 days passed between releases. - 32 commits where understood as [conventional](https://www.conventionalcommits.org). - 6 unique issues were worked on: [#260](https://github.com/Byron/gitoxide/issues/260), [#266](https://github.com/Byron/gitoxide/issues/266), [#279](https://github.com/Byron/gitoxide/issues/279), [#287](https://github.com/Byron/gitoxide/issues/287), [#293](https://github.com/Byron/gitoxide/issues/293), [#67](https://github.com/Byron/gitoxide/issues/67) ### Thanks Clippy <csr-read-only-do-not-edit/> [Clippy](https://github.com/rust-lang/rust-clippy) helped 8 times to make code idiomatic. ### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> * **[#260](https://github.com/Byron/gitoxide/issues/260)** - linked::Store now assures unique IDs across compound stores ([`b605c1f`](https://github.com/Byron/gitoxide/commit/b605c1fa0494b10872d3c2e6ecce0e39f1a90a9e)) * **[#266](https://github.com/Byron/gitoxide/issues/266)** - remove unused dependencies ([`c800fdd`](https://github.com/Byron/gitoxide/commit/c800fdd331e6d7a0b8d756ba822915259f26e9e8)) - upgrade dashmap to latest version ([`52d4fe5`](https://github.com/Byron/gitoxide/commit/52d4fe55b6dd88f72479abd4015cab063ddaaf97)) - refactor ([`b88f253`](https://github.com/Byron/gitoxide/commit/b88f253e46e7ad0a50b670b96c1bfa09eaaecaef)) - refactor ([`52a4dcd`](https://github.com/Byron/gitoxide/commit/52a4dcd3a6969fa8f423ab39c875f98f9d210e95)) - Make single-threaded programs possible to use with git-repository ([`dde5c6b`](https://github.com/Byron/gitoxide/commit/dde5c6ba76ff849f69f742c985b4bc65ca830883)) - Use new odb in place of the old one and it works ([`8ad25c5`](https://github.com/Byron/gitoxide/commit/8ad25c581bc79041545a72baf57b0a469d99cc30)) - Make find::Entry self-contained ([`ad36fb9`](https://github.com/Byron/gitoxide/commit/ad36fb9b800c17931ce358ac262bef40d43dcfb3)) - Remove iterator access in favor of fully owned data ([`62d3f10`](https://github.com/Byron/gitoxide/commit/62d3f106437e597a41aae592da28f48e8736b143)) - Adjust pack-create to changes in git-pack ([`12db899`](https://github.com/Byron/gitoxide/commit/12db899a72da6decccd82931637d074059b578f5)) - remove `make_object_cache` parameter from `git_pack::data::output::count::objects()` ([`3f05fea`](https://github.com/Byron/gitoxide/commit/3f05fea55dc8acce1ed62ecbe4e0a1394f2720b7)) - :Find implementation for Rc ([`f48630b`](https://github.com/Byron/gitoxide/commit/f48630ba8f745c2ec61a1e3c51fa63a1789a088c)) - MultiPackIndex compatible pack::Find trait definition ([`5fa1a9d`](https://github.com/Byron/gitoxide/commit/5fa1a9dce59c2654374a532d024c8de5959d4d0f)) - git_pack::Find::try_find_cached(…, pack_cache) ([`58c2edb`](https://github.com/Byron/gitoxide/commit/58c2edb76755ab71e10eef4cd9a51533825c291f)) - refactor ([`3310d8f`](https://github.com/Byron/gitoxide/commit/3310d8f271f74fc6084e33dd9bd4c5f01b54e432)) - remove pack-cache from `Find::try_find(…)` ([`ebc7f47`](https://github.com/Byron/gitoxide/commit/ebc7f47708a63c3df4415ba0e702660d976dfb3e)) - fix docs ([`1bb4253`](https://github.com/Byron/gitoxide/commit/1bb425347e4b502e1c048908cd5f3641d2b16896)) - move git_pack::data::Object to git_object::Data, massively alter git_odb::Find trait ([`2290d00`](https://github.com/Byron/gitoxide/commit/2290d006705ff47ad780b009fe58ee422b3285af)) - A simplified version of the `Find` trait ([`e25f4ea`](https://github.com/Byron/gitoxide/commit/e25f4eadec679406aad6df10026e27e4832c2482)) - Remove CRC32 check entirely as it doesn't seem to be important in the big picture ([`22d35bd`](https://github.com/Byron/gitoxide/commit/22d35bdbc271ccada8d68a1450d9a2533fc739ee)) - Notes about multi-pack indices in the current data::entry::location ([`7eff6bf`](https://github.com/Byron/gitoxide/commit/7eff6bf525ea48fa913149911ea4c8fe742a25a3)) - Add 'contains()' method to Find ([`dfdd6fb`](https://github.com/Byron/gitoxide/commit/dfdd6fb2c83e5d09c3a56936723bc6749ac4b99a)) - move `bundle::Location` to `data::entry::Location` ([`82b9b33`](https://github.com/Byron/gitoxide/commit/82b9b33bd5f4c3c1721a5093de2cedc62cb10565)) - Use existing git_features facilities ([`ed0c266`](https://github.com/Byron/gitoxide/commit/ed0c2662d95b74b4abc09b42fc24cb56219dd511)) * **[#279](https://github.com/Byron/gitoxide/issues/279)** - Add a less thorough and faster way of verifying multi-indices ([`7517482`](https://github.com/Byron/gitoxide/commit/75174825e1012cfb4c34c18391c681b49c2f0d29)) - refactor ([`91e6d38`](https://github.com/Byron/gitoxide/commit/91e6d382bb2e2430d5d3325a390b7d9bdc0034d6)) - Allow interrupting multi-index creation more often ([`f223ecb`](https://github.com/Byron/gitoxide/commit/f223ecb6c69358ed8e38d796aca9bef21173cc92)) - also test pack-creation with multi-index repo ([`235a27a`](https://github.com/Byron/gitoxide/commit/235a27a925e9b5f6729056ac44e8107dcba55cfd)) - better multi-pack verification progress ([`2e16f13`](https://github.com/Byron/gitoxide/commit/2e16f1321bdccc2cef688d27efd9cc9be1360c31)) - Handle large multi-pack indices correctly ([`4f6b030`](https://github.com/Byron/gitoxide/commit/4f6b0308f06b7705163ff624a98694e1d928fee1)) - Fix progress and handling of large of multi-pack index offsets ([`5dc1f81`](https://github.com/Byron/gitoxide/commit/5dc1f813ead64ad13edb2b5ed9bd660d198c7ddb)) - add missing docs ([`4137327`](https://github.com/Byron/gitoxide/commit/41373274fc7f23e3fed17dc52e3e3e94c2e9e41a)) - write progress for multi-pack writing ([`1bea1d4`](https://github.com/Byron/gitoxide/commit/1bea1d47908d3ec44c83b2e39a5b67134ad51ee0)) - adapt to changes in git-features ([`542c0df`](https://github.com/Byron/gitoxide/commit/542c0df9f7498a53a4561e4286b8fdb888565cd3)) - progress for chunk writing ([`50fde01`](https://github.com/Byron/gitoxide/commit/50fde01b44a0a720ccb874bc23a818334238c6e0)) - multi-pack index writing complete with large-offset support ([`f7d5c7f`](https://github.com/Byron/gitoxide/commit/f7d5c7f815dbf52c668444b316ae2e1485463bcb)) - write pack-ids and offsets ([`bfc8069`](https://github.com/Byron/gitoxide/commit/bfc8069e6da2ec6d87fa40bbaaca247c1e247d5f)) - Add chunk for oids ([`565a7ae`](https://github.com/Byron/gitoxide/commit/565a7aea9341a0f0005a41bc6687fbaacb0c0b97)) - Write the fanout table ([`6a68ed7`](https://github.com/Byron/gitoxide/commit/6a68ed7708bdbb29c40bcea0dc7cf681c0aff75b)) - refactor ([`93dc660`](https://github.com/Byron/gitoxide/commit/93dc660aa34c18b5186c57c6a3fad547a63d5eec)) - Write multi-index header along with path-names chunk ([`2fc6751`](https://github.com/Byron/gitoxide/commit/2fc67512f8be2860ab06dc5a282f4f6550c3fddb)) - Sketch all the chunk-write API and use it from multi-index write ([`5457761`](https://github.com/Byron/gitoxide/commit/545776180f75cba87f7119f9bd862d39f081f1bd)) - Add frame for writing a multi-pack index ([`9ce1e7f`](https://github.com/Byron/gitoxide/commit/9ce1e7f2d8c7133590f571919850eaa763f789e3)) - `index::File::traverse()` now returns an `Outcome` struct instead of tuple of 3 fields ([`2cf7727`](https://github.com/Byron/gitoxide/commit/2cf7727228e1d8094ffd2eec6746006348c39eab)) - refactor ([`c361ee3`](https://github.com/Byron/gitoxide/commit/c361ee399e9c435b087387c1542b3838c21fad03)) - multi-index verification now matches that of git itself ([`3a76a28`](https://github.com/Byron/gitoxide/commit/3a76a28e6af11950e8a808d09c36c2ee8b655944)) - zero-objects check for index and multi-index integrity validation ([`b80dec2`](https://github.com/Byron/gitoxide/commit/b80dec2323b81fb2172df76c7d897a4b5e6bdfea)) - support for fan-checking in index and multi-index integrity verification ([`56fc99f`](https://github.com/Byron/gitoxide/commit/56fc99fb9c1cab61abd03c10e1b4af0d6e491bbf)) - More detailed multi-index verification ([`8f9a55b`](https://github.com/Byron/gitoxide/commit/8f9a55bb31af32b266d7c53426bc925361a627b2)) - Add remaining docs for multi-index ([`10a24c1`](https://github.com/Byron/gitoxide/commit/10a24c1860e63935b435e985900797b2d4c707a8)) - even nicer printing ([`d2bea27`](https://github.com/Byron/gitoxide/commit/d2bea270787597d6aef48ffe023ff49969c33bd9)) - docs for multi_index::chunk ([`73fbc91`](https://github.com/Byron/gitoxide/commit/73fbc915847b7c458a17bdfbb7fa1de3f31ab437)) - nicer printing of index verification results ([`e3dfa12`](https://github.com/Byron/gitoxide/commit/e3dfa123b368e66f39567bd2a8f5d7d9c09d4fe6)) - very first experimental support for multi-pack index verification ([`bb35c69`](https://github.com/Byron/gitoxide/commit/bb35c6994765ec3bbbcfde247911d1ffe711a23d)) - refactor ([`eafdff4`](https://github.com/Byron/gitoxide/commit/eafdff405b3f408aa5203f40c7f0a570ce20655d)) - remove `Option<impl Progress>` in favor of `impl Progress` ([`bf04644`](https://github.com/Byron/gitoxide/commit/bf04644ab75ed1969507f957dc8d4868790d462d)) - multi-index iteration ([`1c99903`](https://github.com/Byron/gitoxide/commit/1c999035cc3649ab9db02bd82644fb54c408f6d2)) - Access pack-indices and pack-offsets of multi-pack indices ([`c2a6918`](https://github.com/Byron/gitoxide/commit/c2a69189f88c53ab555158245ce647fcd33fca6a)) - multi-index integrity check; use `integrity::Outcome` for various integrity checks ([`6829e5e`](https://github.com/Byron/gitoxide/commit/6829e5e5d6aed1e6c87647144e2dd76a1e4b9f1f)) - oid lookup for multi-pack indices ([`254f618`](https://github.com/Byron/gitoxide/commit/254f618ee410be4a2787f599529a6cca1284a0fb)) - remove unnecessary `Arc` around `should_interrupt` flag ([`d851bed`](https://github.com/Byron/gitoxide/commit/d851bede97801096d188ff6af06c98a79fe276db)) - Add basic oid by multi-index file index ([`a54f552`](https://github.com/Byron/gitoxide/commit/a54f552741aed315b21112576d6e5b704a9439d4)) - remove Sha1 mentions in `index::verify::Mode::*` variants ([`c2679a0`](https://github.com/Byron/gitoxide/commit/c2679a03358b9c19d63ed1af1cd57324c6381447)) - introduce `index::File::verify_integrity(…, pack: Option<PackContext>, …)`, replacing tuple ([`80b120d`](https://github.com/Byron/gitoxide/commit/80b120d3278e46429f848df7af3db13413c36649)) - rename `oid::try_from()` to `try_from_bytes()`, add `from_bytes_unchecked()` ([`79dc0d5`](https://github.com/Byron/gitoxide/commit/79dc0d5ba6fa31ddd5c075693ffdc6496c1eaded)) - multi-index verify checksum ([`853d468`](https://github.com/Byron/gitoxide/commit/853d4683aae5f4dd4667b452932bd57f99f6afab)) - Change accessors named `hash_kind()` to `object_hash()` for consistency ([`2ef9a84`](https://github.com/Byron/gitoxide/commit/2ef9a8424af51310db8c1e6df31dde9953ed3d21)) - Adapt to changes in git-hash ([`754a663`](https://github.com/Byron/gitoxide/commit/754a66344ff2cfcfc4a7a3d72f1240e939c48055)) - Remove unnecessary `Default` implementation for user of Tree::traverse ([`9da20e9`](https://github.com/Byron/gitoxide/commit/9da20e92c96e4ce8dd75e141c24143e4ea1141a7)) - fix docs ([`ce044ef`](https://github.com/Byron/gitoxide/commit/ce044ef146e3d67483bed382f5dd5c484699534e)) - remove unnecessary Default bound for data in Tree nodes ([`d548f72`](https://github.com/Byron/gitoxide/commit/d548f726013df409b0e1a5fb0e39c15ff445228d)) - adjust to changes in git-hash ([`9bf25cc`](https://github.com/Byron/gitoxide/commit/9bf25cc4f2e44821f93e85997677bc4e86a67bd4)) - consistently use `object_hash` instead of `hash_kind` ([`b76f6be`](https://github.com/Byron/gitoxide/commit/b76f6be6c5baa6cf613a174241f007e92bf5ba36)) - introduce type for entry indices within an index or multi-index ([`28e3ea8`](https://github.com/Byron/gitoxide/commit/28e3ea8612112f6a04cfaff591565eca5a1ffba2)) - replace bare u32 `data::Id` typedef ([`e0b8636`](https://github.com/Byron/gitoxide/commit/e0b8636f96e4bfe1bc72b5aa6ad4c4c8538ff92c)) - adjust to changes in git-hash ([`ca35246`](https://github.com/Byron/gitoxide/commit/ca35246a91888ae41805d71082055c98d2ff7f0b)) - Adjust to changes in git-hash and git-pack ([`0cae25b`](https://github.com/Byron/gitoxide/commit/0cae25b1bb3c902ec323f17a1d9743e42fe213d0)) - data::Entry::from_read() now takes a hash lengths as parameter ([`629412b`](https://github.com/Byron/gitoxide/commit/629412b4cb192614b7eff08dbf203e3448c902c1)) - Adjust to changes in git-odb ([`710780c`](https://github.com/Byron/gitoxide/commit/710780cd355793ea638767213f250e026997a530)) - data::Entry::from_bytes(…, hash_len) takes new parameter ([`851dc2c`](https://github.com/Byron/gitoxide/commit/851dc2c52fa8e204ba2d5ced8fb0959a889869d8)) - refactor ([`7331e99`](https://github.com/Byron/gitoxide/commit/7331e99cb88df19f7b1e04b1468584e9c7c79913)) - adjust to changes in git-hash ([`07aa1bc`](https://github.com/Byron/gitoxide/commit/07aa1bca225c30b168a597f920bda392b2cb2713)) - :File uses its hash_len parameter ([`e6ff1a8`](https://github.com/Byron/gitoxide/commit/e6ff1a885889cf88f6b34b1193aa03d8bce16af5)) - `index::File::at()` with git_hash::Kind parameter ([`db8c8c4`](https://github.com/Byron/gitoxide/commit/db8c8c41b4ced0fc296d3877883d801e77d550ae)) - `data::File::at()` and `Bundle::at()` now have `hash_kind` parameter ([`e6a3c9f`](https://github.com/Byron/gitoxide/commit/e6a3c9f72332b524b143bc94ee9df0a6db11e864)) - remove unnecessary dev-depednency ([`b71ea6a`](https://github.com/Byron/gitoxide/commit/b71ea6a89d11d6cac01b7d9e9b1101f4d637617c)) - adapt to changes in git-hash ([`82fec95`](https://github.com/Byron/gitoxide/commit/82fec95e9ed4b924849bfcc84b5b2691a925a5b3)) - Calculate trailer offset instead of storing it ([`bf62067`](https://github.com/Byron/gitoxide/commit/bf62067c690e407e2ace66220337359542e1846a)) - Make pessimistic size-estimation instead of an optimistic one ([`69f1d2a`](https://github.com/Byron/gitoxide/commit/69f1d2a2063cfebae3ea70979d950f8ab7751eac)) - refactor ([`8b8b4c5`](https://github.com/Byron/gitoxide/commit/8b8b4c538823fb4d2c37be80340d843080f08d19)) - refactor ([`8c9c7fc`](https://github.com/Byron/gitoxide/commit/8c9c7fc3bc46afa9c8567a8bc8079cac12ed8422)) - Adapt to changes in git-chunk ([`44ea5c3`](https://github.com/Byron/gitoxide/commit/44ea5c3c334399bc03d92fa20171d2c0c3afdf49)) - refactor ([`ac46765`](https://github.com/Byron/gitoxide/commit/ac4676534573e3ccfa219765e645526797c6d71b)) - Adapt to latest changes to git-chunk ([`743d696`](https://github.com/Byron/gitoxide/commit/743d6967d6236a4bb6a9c8817f957e7604bc9264)) - Provide multi-index checksum ([`a363de9`](https://github.com/Byron/gitoxide/commit/a363de9b8271986385b1d57e61a6c103c20a4055)) - update changelog prior to release ([`6ae49e3`](https://github.com/Byron/gitoxide/commit/6ae49e39b2251ad70b72a8f3b3840ebb9334ffd9)) - completely validate and parse multi-index file ([`e7e40c3`](https://github.com/Byron/gitoxide/commit/e7e40c30dea082d004e8781ef7d36bde0afdd8a7)) - read and validate index names contained in the multi-pack index ([`24a9790`](https://github.com/Byron/gitoxide/commit/24a979036df515f0616738825e669ec9c8dab1f1)) - read and validate fanout chunk ([`3ca04e3`](https://github.com/Byron/gitoxide/commit/3ca04e355a413975e55adf8b204d6962a9341d32)) - Read all mandatory and optional chunks ([`99023bb`](https://github.com/Byron/gitoxide/commit/99023bbde027be82e9217868df7f73ecd09bf705)) - Load chunk index of midx file ([`fac8efa`](https://github.com/Byron/gitoxide/commit/fac8efacb31935c2143717ebe82003a0916f233f)) - frame for git-chunk crate to share among git-pack and git-commitgraph ([`b2d2ae2`](https://github.com/Byron/gitoxide/commit/b2d2ae221d43cc14aa169ada3c471e2bd2adadf4)) - basic midx header parsing ([`edf02ae`](https://github.com/Byron/gitoxide/commit/edf02ae46ce6f3f981acd99310878e1d4a00d23b)) - First pieces of header parsing; allow to respect multi-index desired hash kind in git-odb ([`1a2a049`](https://github.com/Byron/gitoxide/commit/1a2a04930ab56ba778091e10b15cecf415f5058d)) - frame for instantiation of multi-pack-index ([`5e085ec`](https://github.com/Byron/gitoxide/commit/5e085ecbea913e0b0191d8267e548fe859bdd5d9)) * **[#287](https://github.com/Byron/gitoxide/issues/287)** - way nicer progress messages for repo verification ([`4b4f9f8`](https://github.com/Byron/gitoxide/commit/4b4f9f81879ad181744022eb0d7dc02392a5e91e)) - upgrade to prodash 17 ([`47860b7`](https://github.com/Byron/gitoxide/commit/47860b7e2769260cfb8522ae455c491605093423)) - refactor ([`831397c`](https://github.com/Byron/gitoxide/commit/831397c99fee9f2d6758124d993386cca5534f7b)) - Allow resolution of in-pack ref-deltas ([`84ade1d`](https://github.com/Byron/gitoxide/commit/84ade1d23060f10bf6c8529f8f693d06660b4f4e)) - refactor ([`38426a1`](https://github.com/Byron/gitoxide/commit/38426a171844014201282a441ebfc7d1f4cfff94)) - Test to reproduce ref-delta forward references and the issue it poses for index traversal ([`7db7195`](https://github.com/Byron/gitoxide/commit/7db7195953954ded32a410e8d11f07f4c5b61687)) - Very rough version of repository verification ([`80a4a7a`](https://github.com/Byron/gitoxide/commit/80a4a7add688d16376b9bf2ed7f1c7f655b7c912)) - refactor ([`6c06659`](https://github.com/Byron/gitoxide/commit/6c066597f310b1bd5eb5611c1147b48846bc0ac0)) - Improve method signatures of `cache::Tree::*` ([`a79a7fb`](https://github.com/Byron/gitoxide/commit/a79a7fb638b45df88af0d0d5fc9ada6d824bc328)) - cleanup and unify `verify_integrity()` method signature ([`91d0476`](https://github.com/Byron/gitoxide/commit/91d047658b114f372735116c9d8e6962a3873137)) * **[#293](https://github.com/Byron/gitoxide/issues/293)** - fix docs, again ([`7b2ab26`](https://github.com/Byron/gitoxide/commit/7b2ab263b9dbb2ad33a4dddfe82f4cd7f3187271)) - fix build ([`e3977fe`](https://github.com/Byron/gitoxide/commit/e3977fe033550bfd3297cdd674934e40476aa38b)) - Use InOrderIter from git-features ([`7721b5f`](https://github.com/Byron/gitoxide/commit/7721b5fc7cba86d785e0936fdfab2ea41163219f)) - Basic IEOT parsing ([`35bdee4`](https://github.com/Byron/gitoxide/commit/35bdee4bf77787bcbe6c3dd715a677e2e46a8ad1)) - Assure we are right about the leb64 buffer needed for a 64 bit int ([`7558844`](https://github.com/Byron/gitoxide/commit/7558844b40b6c9af5038fea6b8a4e81583c46bde)) - Adapt to changes in git-features: use var-int decoding from there ([`52e3c6f`](https://github.com/Byron/gitoxide/commit/52e3c6f6f4cd1bf677c9189fb59db16173954669)) - remove byteorder from git-pack ([`4122306`](https://github.com/Byron/gitoxide/commit/41223061a2b919fd190066315b419ea17cabfde3)) - git-pack uses `memmap2` instead of `filebuffer` ([`d9011c7`](https://github.com/Byron/gitoxide/commit/d9011c71048ff34201917b0693586290c23b3ddf)) * **[#67](https://github.com/Byron/gitoxide/issues/67)** - Avoid the dashmap being cloned for each thread ([`6d3f52d`](https://github.com/Byron/gitoxide/commit/6d3f52dc13d7243a6bce6dab89a985114a75d94b)) - Properly count total objects during pack creation ([`bcb3d37`](https://github.com/Byron/gitoxide/commit/bcb3d37a900a40fd70b7be7bad8b2d5db292d2af)) * **Uncategorized** - Release git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 ([`1b76119`](https://github.com/Byron/gitoxide/commit/1b76119259b8168aeb99cbbec233f7ddaa2d7d2c)) - Release git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 ([`8f57c29`](https://github.com/Byron/gitoxide/commit/8f57c297d7d6ed68cf51415ea7ede4bf9263326e)) - Release git-features v0.19.1, git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 ([`d78aab7`](https://github.com/Byron/gitoxide/commit/d78aab7b9c4b431d437ac70a0ef96263acb64e46)) - thanks clippy ([`d8925f5`](https://github.com/Byron/gitoxide/commit/d8925f5bd7ac8ef2c98f0e57a1373e5ffba8ce23)) - Release git-hash v0.9.1, git-features v0.19.1, git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0, safety bump 4 crates ([`373cbc8`](https://github.com/Byron/gitoxide/commit/373cbc877f7ad60dac682e57c52a7b90f108ebe3)) - Fix git-pack changelog to be stable ([`fd5b616`](https://github.com/Byron/gitoxide/commit/fd5b616d6ce8f353bd96b2c4994af9ba9c878b3e)) - prepar changelogs for cargo-smart-release release ([`8900d69`](https://github.com/Byron/gitoxide/commit/8900d699226eb0995be70d66249827ce348261df)) - thanks clippy ([`5a68d2f`](https://github.com/Byron/gitoxide/commit/5a68d2feffc551ad5f07e90efb2307e966d2636b)) - thanks clippy ([`1e051dc`](https://github.com/Byron/gitoxide/commit/1e051dc23fb298b0bfe3e9ffb85a95ecb9c0f93f)) - don't try to short-cut detection of large offsets when writing index files ([`ba92cc0`](https://github.com/Byron/gitoxide/commit/ba92cc09ba41fe4c9a9097bfeb8d18016408fcdf)) - refactor ([`e7fbd9f`](https://github.com/Byron/gitoxide/commit/e7fbd9f3700496ad7bb7e71226c4d25429f0ccd5)) - thanks clippy ([`7bd3ad3`](https://github.com/Byron/gitoxide/commit/7bd3ad3ab9f17eaf94490bea04a9b1297fa5fe64)) - thanks clippy ([`533a532`](https://github.com/Byron/gitoxide/commit/533a532c86bcf0dae27558e66b1a5cd2e52983df)) - Release git-chunk v0.2.0, safety bump 4 crates ([`b792fab`](https://github.com/Byron/gitoxide/commit/b792fabf9f5f93ab906ac5a5bb3e4f01c179290a)) - thanks clippy ([`35cf46f`](https://github.com/Byron/gitoxide/commit/35cf46f87ecc42cf033ca001acf1b5918b3fea1b)) - refactor ([`0032223`](https://github.com/Byron/gitoxide/commit/003222365bb2f8ce7d915240db6ff84ccbca6db4)) - Merge branch 'oknozor-feat/traversal-sort-by-committer-date' ([`6add377`](https://github.com/Byron/gitoxide/commit/6add3773c64a9155c236a36bd002099c218882eb)) - make fmt ([`066f3ff`](https://github.com/Byron/gitoxide/commit/066f3ffb8740f242c1b03e680c3c5c1a0e4c36c3)) - thanks clippy ([`4ca9e07`](https://github.com/Byron/gitoxide/commit/4ca9e07c7ac062d48d64ad7b516274e32dbc51c6)) - thanks clippy ([`7dd2313`](https://github.com/Byron/gitoxide/commit/7dd2313d980fe7c058319ae66d313b3097e3ae5f)) </details> ## 0.15.0 (2021-11-29) <csr-id-598698b88c194bc0e6ef69539f9fa7246ebfab70/> ### Changed (BREAKING) - <csr-id-e7526b2a7b51cbac4018e1ab3b623a85987fadc2/> parallel utilities now use `Send + Clone` instead of `Send + Sync`. This helps to assure that thread-local computations always work with the kind of types we provide. The ones that are carrying out actions are notably not `Sync` anymore. We cater to that by defining our bounds accordingly, but for those who want to use other utilities that need Sync, using types like `Repository` and `thread_local!()` is the only way to make this work. ### Commit Statistics <csr-read-only-do-not-edit/> - 10 commits contributed to the release over the course of 25 calendar days. - 12 days passed between releases. - 2 commits where understood as [conventional](https://www.conventionalcommits.org). - 2 unique issues were worked on: [#250](https://github.com/Byron/gitoxide/issues/250), [#263](https://github.com/Byron/gitoxide/issues/263) ### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> * **[#250](https://github.com/Byron/gitoxide/issues/250)** - Address FIXME related to git_pack::data::Object ([`96386fd`](https://github.com/Byron/gitoxide/commit/96386fd1379b32ce2333baf34f81133cb9817364)) - move loose header manipulation from git-pack to git-object ([`598698b`](https://github.com/Byron/gitoxide/commit/598698b88c194bc0e6ef69539f9fa7246ebfab70)) * **[#263](https://github.com/Byron/gitoxide/issues/263)** - fmt ([`fbeddeb`](https://github.com/Byron/gitoxide/commit/fbeddebcab999f4898f768a3184906091f8ce0b8)) - parallel utilities now use `Send + Clone` insted of `Send + Sync` ([`e7526b2`](https://github.com/Byron/gitoxide/commit/e7526b2a7b51cbac4018e1ab3b623a85987fadc2)) - A mad attempt to use thread-local everywhere and avoid Sync… ([`0af5077`](https://github.com/Byron/gitoxide/commit/0af5077e1f028c1c69bbdc098bb567e486282c37)) * **Uncategorized** - Release git-actor v0.7.0, git-config v0.1.9, git-object v0.16.0, git-diff v0.12.0, git-traverse v0.11.0, git-pack v0.15.0, git-odb v0.25.0, git-packetline v0.12.2, git-transport v0.14.0, git-protocol v0.13.0, git-ref v0.10.0, git-repository v0.13.0, cargo-smart-release v0.7.0 ([`d3f9227`](https://github.com/Byron/gitoxide/commit/d3f922781a81e8fbb81aa47afdbe9afeb06d666b)) - Release git-features v0.18.0, git-actor v0.7.0, git-config v0.1.9, git-object v0.16.0, git-diff v0.12.0, git-traverse v0.11.0, git-pack v0.15.0, git-odb v0.25.0, git-packetline v0.12.2, git-transport v0.14.0, git-protocol v0.13.0, git-ref v0.10.0, git-repository v0.13.0, cargo-smart-release v0.7.0, safety bump 12 crates ([`acd3737`](https://github.com/Byron/gitoxide/commit/acd37371dcd92ebac3d1f039224d02f2b4e9fa0b)) - Adjust changelogs prior to release ([`ec38950`](https://github.com/Byron/gitoxide/commit/ec3895005d141abe79764eaff7c0f04153e38d73)) - Merge branch 'git-loose-objects' of https://github.com/xmo-odoo/gitoxide into xmo-odoo-git-loose-objects ([`ee737cd`](https://github.com/Byron/gitoxide/commit/ee737cd237ad70bf9f2c5e0d3e4557909e495bca)) - Move "loose object header" ser/de to git-object ([`3d1565a`](https://github.com/Byron/gitoxide/commit/3d1565acfc336baf6487edccefd72d0226141a08)) </details> ## 0.14.0 (2021-11-16) <csr-id-e8b091943f0c9a26317da0003f7fcdf5a56ef21a/> An important bugfix to prevent assertion failures when writing thin packs. ### Bug Fixes - <csr-id-20b3994206aa5bc5e35cbbc9c8f8f99187077f79/> Adjust size-hints of resolving entries iterator and use the upper bound in delta tree. The delta-tree is a data structure that actually heavily relies on favorable allocation and a known amount of objects in order to provide front and back buffers. However, this is an implementation detail and they don't have to stay consistent at all especially after growing the buffer by pushing to it. Interestingly, the VecDeque internally over-allocates as well which definitely helps the example of `as_mut_slices()`, otherwise it could also suffer from the assertions that trigger here. ### Commit Statistics <csr-read-only-do-not-edit/> - 12 commits contributed to the release. - 27 days passed between releases. - 2 commits where understood as [conventional](https://www.conventionalcommits.org). - 3 unique issues were worked on: [#247](https://github.com/Byron/gitoxide/issues/247), [#254](https://github.com/Byron/gitoxide/issues/254), [#259](https://github.com/Byron/gitoxide/issues/259) ### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> * **[#247](https://github.com/Byron/gitoxide/issues/247)** - Rename gix->ein and gixp->gix ([`e8b0919`](https://github.com/Byron/gitoxide/commit/e8b091943f0c9a26317da0003f7fcdf5a56ef21a)) * **[#254](https://github.com/Byron/gitoxide/issues/254)** - Adjust changelogs prior to git-pack release ([`6776a3f`](https://github.com/Byron/gitoxide/commit/6776a3ff9fa5a283da06c9ec5723d13023a0b267)) - minor refactor ([`227c8b1`](https://github.com/Byron/gitoxide/commit/227c8b1859a6cbf96d48fd8564e575ef7e201db1)) - Adjust size-hints of resolving entries iterator and use the upper bound in delta tree ([`20b3994`](https://github.com/Byron/gitoxide/commit/20b3994206aa5bc5e35cbbc9c8f8f99187077f79)) * **[#259](https://github.com/Byron/gitoxide/issues/259)** - sketch a little more how packs could be accessed ([`3fce8f2`](https://github.com/Byron/gitoxide/commit/3fce8f2b35ec6c2076f66fdde16a5f99a68326ac)) - unify trait bounds for parallel code: prefer Clone over Sync ([`c805d0b`](https://github.com/Byron/gitoxide/commit/c805d0b231cf4d2f51dae7705bfbbc6562f86c32)) - remove trait bounds to allow single-threaded applications to exist ([`3c790e0`](https://github.com/Byron/gitoxide/commit/3c790e01de0dbd3ffa2683d5cf060723d11d64a5)) - Turns out the new `PolicyStore` can co-exist with existing one… ([`5e9250f`](https://github.com/Byron/gitoxide/commit/5e9250f5027e4b2c701ceae72a6038ac2a4a2093)) * **Uncategorized** - Release git-config v0.1.8, git-object v0.15.1, git-diff v0.11.1, git-traverse v0.10.1, git-pack v0.14.0, git-odb v0.24.0, git-packetline v0.12.1, git-transport v0.13.1, git-protocol v0.12.1, git-ref v0.9.1, git-repository v0.12.0, cargo-smart-release v0.6.0 ([`f606fa9`](https://github.com/Byron/gitoxide/commit/f606fa9a0ca338534252df8921cd5e9d3875bf94)) - Adjusting changelogs prior to release of git-config v0.1.8, git-object v0.15.1, git-diff v0.11.1, git-traverse v0.10.1, git-pack v0.14.0, git-odb v0.24.0, git-packetline v0.12.1, git-transport v0.13.1, git-protocol v0.12.1, git-ref v0.9.1, git-repository v0.12.0, cargo-smart-release v0.6.0, safety bump 5 crates ([`39b40c8`](https://github.com/Byron/gitoxide/commit/39b40c8c3691029cc146b893fa0d8d25d56d0819)) - Merge branch 'header-field-multi-improve' of https://github.com/xmo-odoo/gitoxide into xmo-odoo-header-field-multi-improve ([`d88e377`](https://github.com/Byron/gitoxide/commit/d88e377c21e566bf86c274d5e87eff06100698b9))