chore(deps): update rust crate gix to 0.67.0 #14762
Open
+143
−134
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.64.0
->0.67.0
Release Notes
GitoxideLabs/gitoxide (gix)
v0.67.0
: gix v0.67.0Compare Source
New Features
add
Repository::diff_tree_to_tree()
for greater similarity togit2
add
gix merge-file
with similar features asgit merge-file
add
Repository::blob_merge_options()
to obtain options for merging blobs andRepository::diff_algorithm()
Repository::merge_resource_cache()
to obtain the foundation for merging files directly.make implicit free-list more controllable
This is done by three new
Repository
methods:empty_reusable_buffer()
- hook into the free-list yourself.set_freelist()
- enable or initialize the free-list.without_freelist()
- a builder to disable the freelist from the start.Bug Fixes
GIT_WORK_TREE
variable work as expected.Now it's picked up durign initialization.
Previously the sorting wasn't accounted for, so an assumption about
the order of changes weren't actually true.
Previously it was possible that a non-bare repository that didn't have
worktree directory incorrectly claimed it had one.
Previously, we'd always add 'default' refspecs, even though ref-specs
might already have been present.
Now we only do this if there were no refspecs prior, and that might
still be more than Git does. I wonder where this requirement came from,
except that it might help with tests.
rev_walk
available even without therevision
feature.Technically it doesn't depend on it.
Other
Update gitoxide repository URLs
This updates
Byron/gitoxide
URLs toGitoxideLabs/gitoxide
in:Markdown documentation, except changelogs and other such files
where such changes should not be made.
Documentation comments (in .rs files).
Manifest (.toml) files, for the value of the
repository
key.The comments appearing at the top of a sample hook that contains
a repository URL as an example.
When making these changes, I also allowed my editor to remove
trailing whitespace in any lines in files already being edited
(since, in this case, there was no disadvantage to allowing this).
The gitoxide repository URL changed when the repository was moved
into the recently created GitHub organization
GitoxideLabs
, asdetailed in #1406. Please note that, although I believe updating
the URLs to their new canonical values is useful, this is not
needed to fix any broken links, since
Byron/gitoxide
URLsredirect (and hopefully will always redirect) to the coresponding
GitoxideLabs/gitoxide
URLs.While this change should not break any URLs, some affected URLs
were already broken. This updates them, but they are still broken.
They will be fixed in a subsequent commit.
This also does not update
Byron/gitoxide
URLs in test fixturesor test cases, nor in the
Makefile
. (It may make sense to changesome of those too, but it is not really a documentation change.)
New Features (BREAKING)
optional rename tracking for directories.
Depending on the source of the rename-information, items that are children
of renamed parents may be provided to enable rename tracking based on these
containers, instead of always resorting to tracking leaf nodes (i.e. blobs).
Support for 'fast-tracking' reaching the beginning of the commit-graph during traversals.
It's implemented by sorting commits oldest first when choosing the next one to traverse,
which can greatly reduce the time it takes to reach the first commit of a graph.
optionally store objects new objects in memory only.
The default object database changed to a version that allows to
keep objects in memory. This needs a mutable
Repository
instanceto setup.
Do not let
revision::walk::Platform
rely on plumbing crate types.This is a step towards a more stable API, but also, will allow using
different implementations.
Notably, this replaces
gix_traverse::commit::simple::Sorting
withgix::revision::walk::Sorting
.Bug Fixes (BREAKING)
improve error messages when failing to find references.
It's breaking due to changes in the error type.
unify location of error type of
Repository::diff_resource_cache()
.Tree::lookup_entry()
looses itsbuf
argument.The buffer will now be previded from the free-list of the repository.
remove all workspace dependencies
The problem is that with them, we don't notice anymore if the crate changes,
because a dependency changes. That also means that older versions of the dependency
may stay even though some other crates might pick up a newer version.
Ultimately, this will lead to drift and subtle incompatibilities.
We declare this breaking to enforce a proper re-release.
Refactor (BREAKING)
tree_with_rewrites
plumbing implementation.This merges
object::tree::diff::change::Event
intoobject::tree::diff::Change
as well.
Commit Statistics
Thanks Clippy
Clippy helped 1 time to make code idiomatic.
Commit Details
view details
977b81b
)3f7e8ee
)48aa74b
)GIT_WORK_TREE
variable work as expected. (e9b3db8
)b36d7ef
)206f5d7
)2622936
)e51fcd0
)c949030
)155b5e1
)53fa8ab
)ddc99b5
)795962b
)64ff0a7
)6487269
)diff::tree::ChangeDetached
(c18ebbe
)f8952e4
)37c1e4c
)3745212
)Repository::diff_tree_to_tree()
for greater similarity togit2
(2b81e6c
)743695f
)tree_with_rewrites
plumbing implementation. (45b7155
)gix-diff
(3fd9fab
)af03832
)gix-diff
(2bf1e5f
)7be142d
)gix-diff
(5c1f010
)5ffccd2
)gix merge-file
with similar features asgit merge-file
(3da2da9
)Repository::blob_merge_options()
to obtain options for merging blobs andRepository::diff_algorithm()
(c02adc7
)Repository::diff_resource_cache()
. (9e79ba3
)Repository::merge_resource_cache()
to obtain the foundation for merging files directly. (1937480
)e0b09d2
)2261de4
)WorktreeRoot
API provided bygix-diff
(25c6806
)20f9b3f
)14d6bb9
)612896d
)gix-protocol
(0d3b480
)73a7d15
)0cac690
)7c2af44
)694ebad
)c2bdda4
)b12c7c9
)22fbe70
)fe1eb97
)5242aad
)jj_realistic_needs_to_be_more_clever
on Windows (3adcfc5
)93e86f1
)012a754
)d69c617
)dfbc732
)Tree
andRepository
. (b279957
)Tree::lookup_entry()
looses itsbuf
argument. (c545d71
)1cfe577
)0fe5133
)gix-revwalk
(ea403a4
)750e268
)877f4d2
)649f588
)gix merge-base
for the CLI (7249291
)Repository::merge_base()
(3abf043
)gix-revision
(ce5a320
)beba720
)37ba461
)fc45c93
)2e0ce50
)c3a7dcf
)29ad2df
)f992fb7
)ec69c88
)e82f795
)revision::walk::Platform
rely on plumbing crate types. (d63ec06
)rev_walk
available even without therevision
feature. (c515edd
)46cd1ae
)1757377
)v0.66.0
: gix v0.66.0Compare Source
New Features
objects::tree::diff::Platform::stats()
to quickly obtain diff-stats.This function is inspired by
git2
which also makes it very simple to obtain.This works by providing
Change::detach()
andChangeDetached::attach()
.Reference::follow_to_object()
It's an equivalent to
git2::Reference::resolve()
.`Repository::diff_resource_cache_for_tree_diff()
Reference::peel_to_kind()
Make it easy to follow a ref and peel it to a given object type.
Additional
peel_to_<kind>()
shortcuts are also provided, withthe same name as in
git2
.Repository::find_*()
methods for every object type.Repository::compute_object_cache_size_for_tree_diffs()
.With it it's easier to obtain reasonable object cache sizes as optimized
for tree-diffs.
remote::Name::to_owned()
to get a static version of it.Also, add optional
serde
support.Reference::remote_name()
now also provides valid remote names for local tracking branches.Reference::peel_to_id_in_place_packed()
to allow passing a packed-buffer snapshot.This is useful for speeding up reference lookups as otherwise, it will have to validate the packed-buffer
snapshot didn't change internally each time a ref is peeled.
remote::Names
as shortcut to the value returned for all remote names.Bug Fixes
similarity detection
Previously it would incorrectly count only the last batch of removed bytes, and now it will count all of them. This leads to realistic results with complex diffs, even though it's probably still not en-par with Git which uses more complex heuristics.
prevent panic in
Repository::rev_parse_single()
whenHEAD
was invalid.When using a refspec like
HEAD:file
.do not automatically use a parallel directory walk.
This reduces dependencies and can speed-up typical ref-walks as these
don't benefit from this many threads - the overhead here usually outweighs
the benefit.
This can be turned back on based on the expected workload.
Other
git2
Bug Fixes (BREAKING)
better peeling performance for reference traversal.
This is done by keeping a packed-buffer around and reusing it, instead
of re-checking it every time.
For this to work, the
peeled()
function on thereference::Iter
can now failas it has to open a packed-refs snapshot.
Commit Statistics
Commit Details
view details
17bd32a
)jj
(7ef1e88
)4fe330e
)f2b522d
)a65a17f
)d19af16
)0f25841
)9ed2b24
)6990afd
)f8c5d9c
)ba72ee0
)242fedc
)f944e49
)objects::tree::diff::Platform::stats()
to quickly obtain diff-stats. (e079250
)b291de0
)Reference::follow_to_object()
(d986b2b
)Repository::diff_resource_cache_for_tree_diff()
(6c6f946
)Reference::peel_to_kind()
(cdaba84
)gix-ref
(d296ee8
)gix-ref
(5464bfb
)Repository::find_*()
methods for every object type. (98bcb14
)Repository::compute_object_cache_size_for_tree_diffs()
. (63c7a03
)git2
(26748dd
)7b7902e
)#[momo]
directive as it seems to prevent auto-completion in IDEs. (3a339da
)12251eb
)63936e5
)0b28297
)Repository::rev_parse_single()
whenHEAD
was invalid. (e74095e
)7dff447
)remote::Name::to_owned()
to get a static version of it. (8a27454
)29898e3
)Reference::remote_name()
now also provides valid remote names for local tracking branches. (6ac2867
)Reference::peel_to_id_in_place_packed()
to allow passing a packed-buffer snapshot. (c612440
)6f2eb91
)remote::Names
as shortcut to the value returned for all remote names. (7c8f409
)5871fb1
)9fd1090
)f6a4eb9
)33eacfb
)gix-dir
(37c2852
)v0.65.0
: gix v0.65.0Compare Source
New Features
objects::tree::diff::Platform::stats()
to quickly obtain diff-stats.This function is inspired by
git2
which also makes it very simple to obtain.This works by providing
Change::detach()
andChangeDetached::attach()
.Reference::follow_to_object()
It's an equivalent to
git2::Reference::resolve()
.`Repository::diff_resource_cache_for_tree_diff()
Reference::peel_to_kind()
Make it easy to follow a ref and peel it to a given object type.
Additional
peel_to_<kind>()
shortcuts are also provided, withthe same name as in
git2
.Repository::find_*()
methods for every object type.Repository::compute_object_cache_size_for_tree_diffs()
.With it it's easier to obtain reasonable object cache sizes as optimized
for tree-diffs.
remote::Name::to_owned()
to get a static version of it.Also, add optional
serde
support.Reference::remote_name()
now also provides valid remote names for local tracking branches.Reference::peel_to_id_in_place_packed()
to allow passing a packed-buffer snapshot.This is useful for speeding up reference lookups as otherwise, it will have to validate the packed-buffer
snapshot didn't change internally each time a ref is peeled.
remote::Names
as shortcut to the value returned for all remote names.Bug Fixes
similarity detection
Previously it would incorrectly count only the last batch of removed bytes, and now it will count all of them. This leads to realistic results with complex diffs, even though it's probably still not en-par with Git which uses more complex heuristics.
prevent panic in
Repository::rev_parse_single()
whenHEAD
was invalid.When using a refspec like
HEAD:file
.do not automatically use a parallel directory walk.
This reduces dependencies and can speed-up typical ref-walks as these
don't benefit from this many threads - the overhead here usually outweighs
the benefit.
This can be turned back on based on the expected workload.
Other
git2
Bug Fixes (BREAKING)
better peeling performance for reference traversal.
This is done by keeping a packed-buffer around and reusing it, instead
of re-checking it every time.
For this to work, the
peeled()
function on thereference::Iter
can now failas it has to open a packed-refs snapshot.
Commit Statistics
Commit Details
view details
17bd32a
)jj
(7ef1e88
)4fe330e
)f2b522d
)a65a17f
)d19af16
)0f25841
)9ed2b24
)6990afd
)f8c5d9c
)ba72ee0
)242fedc
)f944e49
)objects::tree::diff::Platform::stats()
to quickly obtain diff-stats. (e079250
)b291de0
)Reference::follow_to_object()
(d986b2b
)Repository::diff_resource_cache_for_tree_diff()
(6c6f946
)Reference::peel_to_kind()
(cdaba84
)gix-ref
(d296ee8
)gix-ref
(5464bfb
)Repository::find_*()
methods for every object type. (98bcb14
)Repository::compute_object_cache_size_for_tree_diffs()
. (63c7a03
)git2
(26748dd
)7b7902e
)#[momo]
directive as it seems to prevent auto-completion in IDEs. (3a339da
)12251eb
)63936e5
)0b28297
)Repository::rev_parse_single()
whenHEAD
was invalid. (e74095e
)7dff447
)remote::Name::to_owned()
to get a static version of it. (8a27454
)29898e3
)Reference::remote_name()
now also provides valid remote names for local tracking branches. (6ac2867
)Reference::peel_to_id_in_place_packed()
to allow passing a packed-buffer snapshot. (c612440
)6f2eb91
)remote::Names
as shortcut to the value returned for all remote names. (7c8f409
)5871fb1
)9fd1090
)f6a4eb9
)33eacfb
)gix-dir
(37c2852
)Configuration
📅 Schedule: Branch creation - "before 5am on the first day of the month" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.