fix(deps): update rust crate gix to 0.74.0 #277
+1
−1
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.68.0->0.74.0Release Notes
GitoxideLabs/gitoxide (gix)
v0.74.1Compare Source
v0.74.0: gix v0.74.0Compare Source
New Features
replace
Reference::peel_to_id_in_place_packedAlso, update documentation where it was still referring to deprecated
in_placemethods to refer to the new methods instead.ability to change the fetch url of a remote
The remote has a couple of "builder" methods to change
is fields, e.g.
push_urlfor setting the push url.A builder method for changing the fetch url of a remote
was missing. This makes it impossible to fully replicate
the functionality of
git remote set-url.replace
Head::(try_)peel_to_x_in_placewithHead::peel_to_x.The
_in_place()suffixed methods are now deprecated.Add
Repository::new_commitandRepository::new_commit_as()methods.add
Repository::blame_fileAdd
gix::discover_with_environment_overrides()support
diff.ignoreSubmodulesoverrides in statusBug Fixes
deprecate
Remote::push_url*()in favor ofRemote::with_push*().remove special handling for empty blob hash to match Git behaviour
This feature was recently introduced, but was never released.
empty blob hashes are now automatically considered present.
extend lifetime of iterators
Previously the iterators would return references with lifetimes that
were shorter than the actual lifetimes of the
gix::Referencethemselves. This was dues to a footgun with
'_(eliding the lifetime).When a function returns an elided lifetime, this lifetime usually is the
lifetime of the
&selfparameter, but sometimes it is the lifetime ofthe type itself (e.g.
Iter<'_>).I made the lifetimes explicit to ensure we were using the correct ones.
Commit Statistics
Commit Details
view details
89fb308)4da2927)b188a7d)6cc8464)9365cc3)838ff95)442f800)Reference::peel_to_id_in_place_packed(0380496)51f998f)Remote::push_url*()in favor ofRemote::with_push*(). (620d275)1d4a7f5)81c0c16)d302fa2)Head::(try_)peel_to_x_in_placewithHead::peel_to_x. (b6fbf05)3499050)ca99882)e60e253)b9c7a7e)e087960)f891c37)d4c2542)Repository::new_commitandRepository::new_commit_as()methods. (3c0b737)1a4c84d)689d839)2fc9dbe)42f8db5)gix-ref(44922d0)bd47fb5)blameto extras, and asssure it's tested separately on CI (3c54e5b)752d6dc)0e7aa81)gix-features, uselibz-rs-sysdirectly, skippingflate2(5a2361b)768164a)Repository::blame_file(cdb1100)gix-blameperformance regresion (8dc5e98)eee5199)888b763)ad1e2ed)8e451cf)c149116)gix tag listwhen JSON is requested (fb2766b)gix::discover_with_environment_overrides()(fa1287f)a4b0d2c)make_remote_config_reposarchive (c8c84e4)git configto make overlapping remotes in a test repo (4de96fc)git remotefailure clearer inmake_remote_config_repos(8cabd16)f3be6e3)gix-status(5da38e5)dc7343c)79ba9d0)651f9fa)4289ae6)d4dd783)453bb2c)diff.ignoreSubmodulesoverrides in status (6693ab9)04a18f3)d4130c3)ba563b0)202bc6d)d64f257)589d63e)007e3f6)91b3220)784c046)v0.73.0: gix v0.73.0Compare Source
New Features
repo.references().pseudo()for traversing refs likeHEADandFETCH_HEAD.Repository::committer_or_set_generic_fallback().That way one can always obtain a committer, even though it might
not represent the entity actually committing.
revision::walk::Platform::hide().This finally makes safe traversals possible and is what most people would want to use
instead of
boundary().gitoxide.parsePreciousconfiguration key to opt-in to precious file parsing.Repository::is_empty()to emulate the similargit2APIRepository::merge_bases_many()for simplified retrieval of multiple mergebases.tree::EntryRef::to_owned().That way it's in a more reasonable spot as sibling to
Entryand it's clearer how to convert noe into the other.EntryRef::kind()as shortcut forEntryRef::mode().kind().Bug Fixes
remote::Connection::ref_map()doesn't finish the handshakeRepository::branch_remote_ref_name()won't fail on short names anymore.Instead, these partial names are turned into branch names, which seems more
in line with what Git can do.
strict_configin conjunction withGIT_WORK_TREEno longer triggers an error.Other
Bug Fixes (BREAKING)
Repository::submodules()in an unborn repository.It's a breaking change merely because the error type changed.
Commit Statistics
Thanks Clippy
Clippy helped 1 time to make code idiomatic.
Commit Details
view details
strict_configin conjunction withGIT_WORK_TREEno longer triggers an error. (3f85bf5)remote::Connection::ref_map()doesn't finish the handshake (427274b)65037b5)60c29a5)43f92b5)repo.references().pseudo()for traversing refs likeHEADandFETCH_HEAD. (2affbab)5335c84)gix-diff(a0cef8b)dab97f7)a9a8ea1)3f2be40)-t bad(73a30f8)c2eb0c1)e8b7a4e)bfb1c34)554ce13)Repository::branch_remote_ref_name()won't fail on short names anymore. (a75b4a2)5cf6d05)Repository::committer_or_set_generic_fallback(). (d7db360)62e4bab)298f22e)b7c1f2c)92febae)revision::walk::Platform::hide(). (a9befb2)f8d7c0a)151e3a5)b199c6e)subomdule.<name>.ignore = allis handled correctly. (657dec4)40f5a56)gixmanifestrust-versionin all MSRV checks (654a8fa)5f9de52)gix-ignoreandgix-glob, and more. (4ef7806)gitoxide.parsePreciousconfiguration key to opt-in to precious file parsing. (85a24b3)7ae3797)Repository::is_empty()to emulate the similargit2API (b985766)Repository::submodules()in an unborn repository. (26ae766)648022b)f0ed2cc)c3f06ae)d2b4c44)fdfb239)Repository::merge_bases_many()for simplified retrieval of multiple mergebases. (f687cb1)7a33e2a):/baseline skip (b623bf1):/baseline skip from CI to local and extend (2400158)189d1a0)28935a5)tree::EntryRef::to_owned(). (3a5068e)800738a)4408166)EntryRef::kind()as shortcut forEntryRef::mode().kind(). (3ef6b55)8d4c4d1)v0.72.1: gix v0.72.1Compare Source
Commit Statistics
Commit Details
view details
5f7f805)v0.72.0: gix v0.72.0Compare Source
Bug Fixes
Adapt to changes in gix-actor
Use the committer date and author date that are now backed by bytes and
interpret these bytes into a
gix_date::Timeon demand.correctly handle safe.directory for worktrees
safe.directorynow applies to configuration as wellThis means that repo-local configuration that is considered safe, ideally with
safe.directory=safe/dir/*notation, will be usable for sensitive operations.make
fs::walkdir_sorted_new()sort entries by paths literallyThis follows up
7b1b5bf. Since packed-refsappears to be sorted by full ref name, loose-refs should also be emitted in
that order.
The comparison function is copied from gix::diff::object::tree::EntryRef.
Non-utf8 file names are simply mapped to "" on Windows. We could add some
fallback, but callers can't handle such file names anyway.
New Features (BREAKING)
RelativePathfor prefixed ref iteration.Its type captures the requirements better.
Commit Statistics
Thanks Clippy
Clippy helped 1 time to make code idiomatic.
Commit Details
view details
5396b2b)ca16517)safe.directorynow applies to configuration as well (24d235d)fs::walkdir_sorted_new()sort entries by paths literally (38b63c2)49fa9f3)db0b095)0bf84db)3b1bef7)c3c6504)6f009d7)gix-dateandgix-actor(afdf1a5)70097c0)b07f907)737bb49)359914c)9e075b9)96164c5)fdc06b1)294902e)RelativePathfor prefixed ref iteration. (a6d7d70)cd1a777)edb449c)3c16e53)5823b22)Cargo.tomlfiles in workspace togix-featuresbump (6315536)71275d1)gix-ref. (52142b4)57c9014)3aec7fb)9f1fbc7)b5e9059)68e6b2e)507d682)3ca6811)1612c73)fc5faf2)7502b4a)6307f57)8969245)420e730)v0.71.0: gix v0.71.0Compare Source
Changed
debug_assertionsThis should hopefully not be a breaking change, as the same code
could produce the same behaviour if compiled with different flags,
and the semantic meaning of the resulting configuration should be
the same. But Hyrum’s law is always lurking…
Documentation
New Features
Repository::checkout_options().It's a low-level set of options to drive (quite unsafe) checkouts.
They are unsafe as they may be configured to overwrite, and are in no
way similar to
git checkout.Repository::head_tree_id_or_empty()for convenience.Repository::workdir_path()to easily obtain aPathfor worktree items.Repository::workdir()as replacement forRepository::work_dir().Keep the latter as deprecated though.
filter::Pipeline::worktree_file_to_object()now can addCommittype objects.filter::Pipeline::worktree_file_to_object().That way it's easier to correctly add whole files into the object
database.
repofields public for ease of use.That way, functions or methods taking such a type as argument
have access to the underlying repository so it doesn't need
to be passed as separate argument.
blob::platform::Resource::intern_source_strip_newline_separators()That way it will be easier to have typical Git-style patches diffs around
files that don't end with a newline.
Repository::big_file_threshold()to easily learn what Git considers a big file.Bug Fixes
Don't panic when rev-parsing
^^^and similarfilter::Pipeline::convert_to_git()now also works on Windows under all circumstances.assure
Repository::commit_as()also uses the committer for reflogsPreviously it would retrieve the configured committer, or trigger an error
if there was none despite the commiter being provided to
commit_as().This als adds
Repository::edit_references_as(committer)to allow passinga given committer.
Other
Repository::commit()now explains how to create a commit without ref updates.Changed (BREAKING)
The hashing API has moved to
gix_hash::hasher, and we now usesha1-checkedunconditionally.Bug Fixes (BREAKING)
with_pruned()is doing by renaming it towith_boundary().This is how it acts, and it's not at all the same as
hide()ingit2.Commit Statistics
Thanks Clippy
Clippy helped 1 time to make code idiomatic.
Commit Details
view details
Repository::commit_as()also uses the committer for reflogs (9bec947)^^^and similar (aa8daf8)ada5a94)b41312b)38dff41)4660f7a)gix_object::{try_ =>}compute_hashusers (3d7e379)fbf6cc8)fd12ef8)cd96b64)gix-features(5f8bff8)32b54b3)5cb5337)gix_fs::stack::ToNormalPathComponentseverywhere. (1f98edb)implreturns in traits. (569c186)bfa3253)filter::Pipeline::convert_to_git()now also works on Windows under all circumstances. (dcdb8ea)7b17da6),just before)on same line in function calls (66a5ae1)01bd76d)7255a5f)5a1b3d6)316f113)5e618b6)8b1b55c)configcorruption" (9061fc4)configcorruption (d290ad9)0bf1d5b)dc8bd63)GIT_AUTHOR_NAMEorGIT_COMMITTER_NAMEare set (94dda22)Repository::checkout_options(). (5054780)Repository::head_tree_id_or_empty()for convenience. (02878c9)Repository::workdir_path()to easily obtain aPathfor worktree items. (776f9be)Repository::workdir()as replacement forRepository::work_dir(). (518fbbc)10e41ee)cf7f34d)debug_assertions(9800e9c)16a248b)8e96ed3)b4fe425)Repository::commit()now explains how to create a commit without ref updates. (866affd)503098d)5c327bb)filter::Pipeline::worktree_file_to_object()now can addCommittype objects. (27e62d7)c042813)filter::Pipeline::worktree_file_to_object(). (70ebd5f)repofields public for ease of use. (23d2bed)914bf28)blob::platform::Resource::intern_source_strip_newline_separators()(37582b0)daa6d4a)with_pruned()is doing by renaming it towith_boundary(). (b78e7dd)79cb655)d7ddbb7)687322b)1a69c40)Repository::big_file_threshold()to easily learn what Git considers a big file. (f3257f3)8df0db2)v0.70.0: gix v0.70.0Compare Source
Chore
rust-versionto 1.70That way clippy will allow to use the fantastic
Option::is_some_and()and friends.
New Features
Repository::upstream_branch_and_remote_name_for_tracking_branch()It's a way to learn about the Remote and upstream branch which would
match the given local tracking branch.
tree::Editor|editor::Cursor::get()to see if an entry is loaded at path.This can be useful to get a feeling for how far the tree was already made available,
even though it won't reveal if an entry was edited.
Repository::is_dirty()now also checks for tree/index changes.This copmpletes the
is_dirty()implementation.Repository::tree_index_status()to see the changes between a tree and an index.It also respects
status.renameandstatus.renameLimitto configure rename tracking.Tree::depthfirst()with a delegate.This allows a depth-first traversal with a delegate.
blameplumbing crate to the top-level.For now, it doesn't come with a simplified
gixAPI though.Bug Fixes
Repository::status()detects files added to the index in an unborn repository.Previously it wouldn't show them.
Respository::status()iterator won't fail in unborn directories.worktrees of submodules now know their correct worktree
Previously they would use a very incorrect worktree which would cause
the status to be calculated very wrongly.
status-iterator won't swallow legitimate modification during 'racy-git'.
When a modification is marked as being racy, then previously the iterator would have
kept the whole modification even though it should just have tracked the single change.
This made the legitimate modification disappear.
write_blob_stream()does not needSeektrait anymore.Internally, it has to turn it into a buffer so it's not needed anymore.
It also counteracts the idea of using a stream with arbitrarily big files.
Submodule::status()now konws about tree-index changes as well.This completes the status implementation.
remove unused fetch-error variants
Note that it's a breaking change, but it's on top of a previous breaking change
so folks would already have to update explicitly.
Other
Repository::worktrees()lists linked worktrees.Excluding the main worktree which isn't always present.
New Features (BREAKING)
add
status::Platform::into_iter()for obtaining a complete status.Note that it is still possible to disable the head-index status.
Types moved around, effectivey removing the
iter::module for mostmore general types, i.e. those that are quite genericlally useful in
a status.
Bug Fixes (BREAKING)
config::Snapshotaccess now uses the newKeytrait.That way one can officially use "section.name" strings or
&Section::NAME.Commit Statistics
Thanks Clippy
Clippy helped 1 time to make code idiomatic.
Commit Details
view details
Repository::status()detects files added to the index in an unborn repository. (cd8fabf)1f6390c)90e08f1)fe33fa7)4c8200f)47e44c5)Respository::status()iterator won't fail in unborn directories. (84019cb)Configuration
📅 Schedule: Branch creation - "after 1am every 3 weeks on Saturday" in timezone America/Los_Angeles, 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.