New Features
-
Add
easy::Tree::traverse()
platform -
Add
easy::Commit
object
It allows to more conveniently access commit information. -
easy::Oid::ancestors()
now supportssorting()
and iteration by first commit only
Especially the sorting is useful to avoid having to sort commits by
hand after collecting them. -
Use GITOXIDE_OBJECT_CACHE_MEMORY to control how much object cache is used
Note that this is mostly for debugging or quickly seeing if object
caches help with certain operations.Ideally the implementation knows themselves and sets up caches
accordingly, probably after trying it with these environment variables.
Changed (BREAKING)
-
rename
easy::Object
methods returningRef
objects to haveref
in their name
That way, it's more clear that theRef
versions are low-level ones
whereas theinto_
ones are higher-level ones that are part of the
easy
suite. -
Rename
OwnedObject
toDetachedObject
The latter more clearly indicates what the difference is to
Object
(which is attached and carries a lifetime) -
Remove easy::borrow::Error entirely; support for multiple objects per handle
This massive simplification finally allows any amounts of objects to be
created while adding support for reusing their data buffers thanks
to a simple free-list stored with the handle. -
rename
easy::Object
toOwnedObject
; removeRef
suffix fromObjectRef
andTreeRef
-
use
git_odb::Find*
traits in prelude, instead ofgit_pack::Find*
These are higher-level and generally more desirable.
The Find traits ingit-pack
are more useful internally when packs
have to be handled directly, for example when generating packs. -
rename easy::State to easy::Handle
As the first step to remove the 'Easy' abstraction. -
fully rely on OdbHandle in repository State
-
Rename
Repository::odb
toRepository::objects
This way it's more inline withRepository::refs
. -
remove Repository::refresh_object_database()
With the linked DB this is simply not possible anymore and we expect
these updates to happen automatically in future for greater convenience.For now, in order to refresh a repository, one has to reopen it.
-
Rename
Handle
toCache
Because this is exactly what it is effectively.
Also add some basic instantiation for the new object store. -
remove borrowing Repo as possible failure cause
Theeasy::Handle
is now a full (but shared) clone of the original
Rpeository with additional thread-local state, hence there is no more
need for a way to access the original repository. -
remove Easy… abstraction in favor of Handle
This great reduction of complexity allows for being multi-threading
capabie by default with the option to turn that off at compile time.All
to|into_easy…()
methods are removed in favor ofto_easy()
along with the removal of allEasy
types in favor of the single -
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
- 65 commits contributed to the release over the course of 51 calendar days.
- 55 days passed between releases.
- 18 commits where understood as conventional.
- 6 unique issues were worked on: #215, #266, #274, #279, #287, #293
Commit Details
view details
- #215
- #266
- Default handle refresh mode is the least surprising, with option to configure (1b74c14)
- refactor (b88f253)
- refactor (52a4dcd)
- A quick and dirty version index iteration (0384007)
- Use new store in git-repository (2f9e342)
- add docs for handle-related functions (cf1b1e6)
- use
git_odb::Find*
traits in prelude, instead ofgit_pack::Find*
(f9c0493) - fix git-repository docs (3496a97)
- remove borrowing Repo as possible failure cause (7a91212)
- Adjust object-acess to test new contains method (8488b41)
- remove Easy… abstraction in favor of Handle (b2cc0c6)
- rename easy::State to easy::Handle (83d7b31)
- Remove unnecessary error variants now that repo() is called less (afcd579)
- assure loops can't happen anymore (f04ff80)
- Use db handle for writing (053e7b6)
- Adapt to changes in git-repository (3ab9b03)
- fully rely on OdbHandle in repository State (5e7aa16)
- Rename
Repository::odb
toRepository::objects
(57de915) - Add odb handle to state (4e38da3)
- remove Repository::refresh_object_database() (93db4a5)
- remove pack-cache from
Find::try_find(…)
(ebc7f47) - 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)
- #274
- #279
- fix docs (b61a920)
- rename
easy::Object
methods returningRef
objects to haveref
in their name (6e3a745) - cargo fmt (8b9da35)
- Deal with changes to git-odb
Write
trait (4d67122) - adapt to changes to
git-odb
(5b0e2b9) - First pieces of header parsing; allow to respect multi-index desired hash kind in git-odb (1a2a049)
- refactor (4e89d8d)
- Respect
core.multiPackIndex
option (1495efc)
- #287
- basic output for 'repo verify' json only (9f8d61f)
- #293
- Uncategorized
- Release 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 (42ebb53)
- 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)
- 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)
- remove debug-helper (c243215)
- Don't use bleeding edge features (3de0ab1)
- reference statistics for stats example (83b99ce)
- Experiment with novel API idea around Tree breadthfirst traversal (2ee1890)
- Add
easy::Tree::traverse()
platform (667485e) - (change!: consistently use
object_hash
instead ofhash_kind
#279) (81bd453) - Release git-chunk v0.2.0, safety bump 4 crates (b792fab)
- Merge branch 'sync-db-draft' (7d2e20c)
- Tests for Commit object (1130928)
- Add
easy::Commit
object (8f650c0) - Episode 5 (8ba7fc8)
- episode 4 (e7e54a2)
- episode 3 (e107d9a)
- make fmt (066f3ff)