New Features
- git_pack::Find::try_find_cached(…, pack_cache)
With this method it's easier to bypass local caches and control
the cache oneself entirely. - add linked::Store::rc_iter()
For completeness in case of single-threaded operations - linked::Store sorts bundles by modification date, newest first
- 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
- support Rust 1.52
- linked::Store now assures unique IDs across compound stores
Changed (BREAKING)
-
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. -
Change accessors named
hash_kind()
toobject_hash()
for consistency -
consistently use
object_hash
instead ofhash_kind
-
remove
Write::*(…, hash_kind)
Thehash_kind
is now intrinsic to the implementation of the write
trait and thus isn't passed along anymore in parameters.The
sink()
function now takes the kind of hash as parameter. -
various changes to the
loose::Store
.Change
path
field to read-onlypath()
method
addhash_kind
parameter toloose::Store::at(…, hash_kind)
-
move
sink::Sink
to the top-level exclusively -
move
loose::iter::Iter
toloose::Iter
-
remove
make_object_cache
parameter fromgit_pack::data::output::count::objects()
It now is an implementation detail of the Find trait. -
Rename
Handle
toCache
Because this is exactly what it is effectively.
Also add some basic instantiation for the new object store. -
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.
New Features (BREAKING)
Cache::inner
removed in favor ofDeref/Mut
andinto_inner()
Making theinner
field available allows changing it, which would make
it potentially incompatible with existing caches. The new
implementation makes it essentially read-only while allowing more
convenient access to methods oninner
.
Commit Statistics
- 163 commits contributed to the release over the course of 51 calendar days.
- 55 days passed between releases.
- 24 commits where understood as conventional.
- 6 unique issues were worked on: #260, #266, #279, #287, #293, #298
Thanks Clippy
Clippy helped 4 times to make code idiomatic.
Commit Details
view details
- #260
- linked::Store now assures unique IDs across compound stores (b605c1f)
- #266
- More explicit information about how much garbaged is in the slotmap (cfd36ee)
- assure stable handles can actually access the indices hey need (9474a43)
- a failing test to show the handle-stability doesn't quite work yet (5562e88)
- refactor (c499843)
- docs for dynamic object store (2c2a2e9)
- Default handle refresh mode is the least surprising, with option to configure (1b74c14)
- remove unused dependencies (c800fdd)
- refactor (b88f253)
- refactor (52a4dcd)
- refactor (3da91ce)
- move
sink::Sink
to the top-level exclusively (ab4e726) - dynamic store module cleanu (494772c)
- adapt to changes in git-odb (a44dd4b)
- move
loose::iter::Iter
toloose::Iter
(8bb5c9a) - minor improvements to module layout, docs (0364f48)
- fix docs (360bf9d)
- Make single-threaded programs possible to use with git-repository (dde5c6b)
- A more suitable iterator implementation for general store (af0cc5f)
- A quick and dirty version index iteration (0384007)
- Use new store in git-repository (2f9e342)
- Use new odb in place of the old one and it works (8ad25c5)
- remaining methods of git-pack::Find (92b9764)
- Make find::Entry self-contained (ad36fb9)
- Remove iterator access in favor of fully owned data (62d3f10)
- It shows that we can't return anything referenced from the interior-mutable handle (b9f308b)
- refactor (6cb474e)
- prepare implementation of location-dependent methods (5de29f4)
- refactor (2c23f42)
- Impl git_odb::Write for general::Handle (b7a6ab7)
- cleanup (a4f3670)
- A way to predict the amount of slots needed for smooth operation (a3a16d6)
- finding objects and dynamically loading packs seems to work (8f58c30)
- add docs for handle-related functions (cf1b1e6)
- first sketch of looking up objects with pack cache (a0aae84)
- add contains checks for libgit2 (c64a45a)
- Add MRU to contains() even faster contains checks (6525847)
- Load an index right after refreshing items from disk (0c40eb3)
- some more assertions for contains() regarding refresh mode (3f8c540)
- Try reusing mappings, but no LRU (bb602e8)
- try LRU-like contains implementation (2d6960f)
- Don't abort run into assertion unnecessarily… (4e87a56)
- Adjust object-acess to test new contains method (8488b41)
- Looks like 'contains()' is implemented well enough (c24015a)
- First successful loading of indices… (8cbef57)
- first stab at loading indices while dealing with inherent raciness (94be3a0)
- assure loops can't happen anymore (f04ff80)
- The first green test for loose object lookup (0c6b7b1)
- impl Write for Arc, Rc and shared borrows (5cdc27d)
- more clarity around generations; actually trash slots or unset them (7bce101)
- Adapt to changes in git-repository (3ab9b03)
- Create a new index snapshot and store it (41d91f9)
- Sort out race condition around slots that change identity (6e678e7)
- Uncover slightly disturbing races which make it hard to ever release/unload maps (cbf2d13)
- remaining comments about multi-pack-index handling (569c40b)
- handling of multi-pack index slot-map moves as they change (456f1e7)
- Also use object cache if there is no pack-cache (3e1ae25)
- prepare correct handling of multi-pack indices when the time comes (6388ba2)
- More thoughts about how to continue a search… (eac8c45)
- remove
make_object_cache
parameter fromgit_pack::data::output::count::objects()
(3f05fea) - get closer to actually setting up slots (55645ae)
- Cache-creators are indeed shared across threads, must be sync (c326cb3)
- Add load-pack method frame to not forget (e1ec535)
- Try to make Handle usable for pack creation (424c9b3)
- Some steps towards recording the disk state in the slot-map (5074f4c)
- make all handle caches and cache creators optional (3c30769)
- better errors for disk consolidation; setup loose object dbs (4c13e14)
- Make odb handle more general (2be6725)
- Detail the load-indices flow more (11d3325)
- Make slot-count configurable (c910af5)
- :Find for Arc and Rc (b1c82a7)
- Provide handle with a snapshot of the store's state (6e0cd6d)
- MultiPackIndex compatible pack::Find trait definition (5fa1a9d)
- refactor (d5565da)
- git_pack::Find::try_find_cached(…, pack_cache) (58c2edb)
- construct a handle from a linked store (9702ed4)
- refactor (ab14f70)
- A first tiny stab at Handle for linked store (ef08f7f)
- Support for metrics in general store handle (11b98b8)
- refactor (1361c31)
- first test to trigger all major code-paths (25b56c5)
- refactor (3310d8f)
- more trustworthy state-id hashing (4eb43d0)
- :Find implementation for linked::Store (9235106)
- Use handle registration to avoid unloading packs; fix state-id hash (a1070de)
- add linked::Store::rc_iter() (36fde72)
- Handle registration (df4e4eb)
- Use
Deref
instead of Borrow in linked ODB iterator (a96b1e5) - Bring in the slotmap (3a5cb5f)
- put down more types for loading of indices and refresh logic (9909eaf)
- remove pack-cache from
Find::try_find(…)
(ebc7f47) - Add all types the handle would have to store (e2f0cb0)
- linked::Store sorts bundles by modification date, newest first (a81b333)
- Rename
Handle
toCache
(580e96c) - First sketch of general store (fc1b640)
- move git_pack::data::Object to git_object::Data, massively alter git_odb::Find trait (2290d00)
- More affirmative notes about multi-pack indices (dceaea2)
- A simplified version of the
Find
trait (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)
- Adjust to new name/place of
bundle::Location
(1f8954d) - Add 'contains()' method to Find (dfdd6fb)
- #279
- add missing docs (4137327)
- cargo fmt (8b9da35)
- very first experimental support for multi-pack index verification (bb35c69)
- multi-index verify checksum (853d468)
- Another test to validate index stability (1fb08df)
- Change accessors named
hash_kind()
toobject_hash()
for consistency (2ef9a84) - refactor (a4ad5bf)
- handle 'move' of multi-pack indices (aec0895)
- trigger last portion of multi-index logic (b46979b)
- load slots early to avoid races with the 'generation' field (10bc3ab)
- Only open multi-pack indices if the mtime changed (efe2579)
- Add remaining Store docs (e440bcd)
- first odb lookup with multi-index works (a8773df)
- Generalize intra-pack offset lookup (dff05ef)
- consistently use
object_hash
instead ofhash_kind
(49998cc) - replace bare u32
data::Id
typedef (e0b8636) - A rough implementation of everything multi-index support would need… (56f174f)
- Make opened multi-pack indices representable (28e648d)
- first sketch towards reading in multi-indices (25eb157)
Cache::inner
removed in favor ofDeref/Mut
andinto_inner()
(bf73a94)- refactor (7331e99)
- adapt to changes in git-pack (28dba20)
- adjust to changes in git-pack (b8f109e)
- refactor (9b5451a)
- loose object iteration respects hash kind (72eb9da)
- remove
Write::*(…, hash_kind)
(67c42fb) - various changes to the
loose::Store
(ad1b9ea) - loose odb doesn't hard-code sha1 anymore for
find()
andcontains()
(68f1031) - First pieces of header parsing; allow to respect multi-index desired hash kind in git-odb (1a2a049)
- Respect
core.multiPackIndex
option (1495efc) - only load multi-pack indices if allowed (b22e146)
- #287
- basic output for 'repo verify' json only (9f8d61f)
- way nicer progress messages for repo verification (4b4f9f8)
- upgrade to prodash 17 (47860b7)
- better verify progress printing (4a464f2)
- refactor (831397c)
- refactor (38426a1)
- Very rough version of repository verification (80a4a7a)
- support for loose object statistics in odb store (53d835a)
- bare-bones loose object integrity check (3dfec81)
- frame for loose-db validation (a24307d)
- First basic validation of all packs within an odb store (d63176f)
- Don't reset generations, instead make them match the current one (1d995ef)
- frame for interity check on object store (b5dd059)
- cleanup and unify
verify_integrity()
method signature (91d0476)
- #293
- refactor (9b28b18)
- #298
- support Rust 1.52 (9c14de3)
- 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)
- 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)
- prepare changelogs for release (674ec73)
- prepar changelogs for cargo-smart-release release (8900d69)
- 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)
- Release git-chunk v0.2.0, safety bump 4 crates (b792fab)
- refactor (c09a44d)
- thanks clippy (bf4694c)
- thanks clippy (17af184)
- make fmt (066f3ff)
- thanks clippy (123a95e)
- thanks clippy (4ca9e07)