With changes to git-ref
, what follows is all the adjustments made to simplify the git-repository
implementation.
Changed (BREAKING)
-
file::Store::iter() is now a platform, with
.all()
and.prefixed(…)
respectively
This way, it's possible to keep shared ownership of the packed buffer
while allowing the exact same iterator machinery to work as before. -
file::Store::(try_)find(…, packed) was removed
The packed buffer is now handled internally while loading it on demand.
When compiled withgit-features/parallel
thefile::Store
remains
send and sync.The packed refs buffer is shared across clones and it's recommended
to clone onefile::Store
instance per thread, each of which can
use its own namespace. -
move
git_ref::file::WriteRefLog
togit_ref::store::WriteRefLog
Bug Fixes (BREAKING)
-
ref namespaces are now thread-local
Previously these were shared in the shared Repo instance, which makes
threaded applications impossible to remain deterministic across multiple
connections.Now they are local to the thread, which allowed some methods to remove
their Result<> as they cannot fail anymore, the reason for this being
a breaking change.
other (BREAKING)
- Reference::logs() -> Reference::log_iter()
The latter now returns a standard Platform to iterate over all
reflog entries from oldest to newest or vice versa.
refactor (BREAKING)
file::Store::base
is nowfile::Store::base()
and read-only
That way, file databases can't be repositioned anymore, it's recommended
to recreate it if that's desired.
Commit Statistics
- 15 commits contributed to the release over the course of 11 calendar days.
- 6 commits where understood as conventional.
- 2 unique issues were worked on: #259, #263
Thanks Clippy
Clippy helped 1 time to make code idiomatic.
Commit Details
view details
- #259
- Describe and propose fix for ref namespace-sharing issue (55773b8)
- #263
- Adjust to changes in git-ref (1e32855)
- Reference::logs() -> Reference::log_iter() (951c050)
- Adapt to new iteration Platform in git-ref (b5a749e)
- file::Store::iter() is now a platform, with
.all()
and.prefixed(…)
respectively (5d498a3) - Adjustments to match new signature of peel_to_ids_in_place (f87a11f)
- file::Store::(try_)find(…, packed) was removed (15d429b)
file::Store::base
is nowfile::Store::base()
and read-only (0e18753)- move
git_ref::file::WriteRefLog
togit_ref::store::WriteRefLog
(9524732) - ref namespaces are now thread-local (fc8e85c)
- Add cheap and sync loose ref DB directly to state (38c8146)
- Uncategorized
- 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)
- thanks clippy (a74f27c)
- Merge branch 'git-loose-objects' of https://github.com/xmo-odoo/gitoxide into xmo-odoo-git-loose-objects (ee737cd)