Byron/gitoxide (gix)
### [`v0.64.0`](https://togithub.com/Byron/gitoxide/releases/tag/gix-v0.64.0): gix v0.64.0
[Compare Source](https://togithub.com/Byron/gitoxide/compare/gix-v0.63.0...gix-v0.64.0)
##### New Features
- enable tracing with the new `tracing` feature in the Cargo manifest.
That way, it's easier to directly enable tracing, instead of having to
resort to `gix-features`.
- add `config::section::filter()` for the default section filter.
Provide the default implementation to determine which configuration
sections should be trusted.
- provide `config::credential_helpers()` function to configure an invocation.
That way it's possible to use git credential helpers even without a Repository instance.
- export `gix_validate` as `validate`.
The crate appears in the public API of `gix_index::State::from_tree`
but it's types weren't readily available.
- add `PrepareFetch::with_ref_name()` to control which ref is checked out.
##### Bug Fixes
- make sure that `refs/heads/HEAD` isn't considered conflicting
- re-export `gix_validate` as it's now part of the public API.
This allows calling `State::from_tree()`.
- don't attempt negotiation without any refspec-mappings
Previously, when a shallow operation was specified, it was possible
to skip past the no-change test and attempt to negotiate even though
there was nothing to want.
This is now 'fixed' by simply aborting early if there is no refspec
mapping at all.
Further, it aborts as early as possible with a nicer error message,
after all, there is no use in having no mapping.
Note that it's explicitly implemented such that obtaining such an empty
refmap is fine, but trying to receive it is not. That way, the user can
obtain information about the server without anything being an error.
##### Other
- gate parking_lot behind interrupt feature
##### New Features (BREAKING)
- `gix-config` convenience initiative
A new `gix_config::AsKey` trait allows all `gix_config::File` methods
to receive an implementation of `AsKey` instead of the tuple of
`(section, subsection, value_name)`. This is the default, and all
methods that take a tuple have been renamed to `_by()`, note the `_by` suffix.
The terminology was reworked so that `key` is now only used to identify a value.
This change also affects the public API of `gix`, which provides
ways to set values on configuration snapshots which now by default
will only take a `AsKey` implementation.
Note that `gix::config::tree::*` keys now also implement `AsKey`,
which allows them to be used more conveniently when setting values,
too.
##### Commit Statistics
- 52 commits contributed to the release over the course of 58 calendar days.
- 62 days passed between releases.
- 10 commits were understood as [conventional](https://www.conventionalcommits.org).
- 2 unique issues were worked on: [#1405](https://togithub.com/Byron/gitoxide/issues/1405), [#1428](https://togithub.com/Byron/gitoxide/issues/1428)
##### Thanks Clippy
[Clippy](https://togithub.com/rust-lang/rust-clippy) helped 2 times to make code idiomatic.
##### Commit Details
view details
- **[#1405](https://togithub.com/Byron/gitoxide/issues/1405)**
- Don't attempt negotiation without any refspec-mappings ([`a146d14`](https://togithub.com/Byron/gitoxide/commit/a146d14))
- **[#1428](https://togithub.com/Byron/gitoxide/issues/1428)**
- Make sure that `refs/heads/HEAD` isn't considered conflicting ([`40d1881`](https://togithub.com/Byron/gitoxide/commit/40d1881))
- **Uncategorized**
- Release gix-actor v0.31.5, gix-filter v0.11.3, gix-fs v0.11.2, gix-commitgraph v0.24.3, gix-revwalk v0.13.2, gix-traverse v0.39.2, gix-worktree-stream v0.13.1, gix-archive v0.13.2, gix-config-value v0.14.7, gix-tempfile v14.0.1, gix-ref v0.45.0, gix-sec v0.10.7, gix-config v0.38.0, gix-prompt v0.8.6, gix-url v0.27.4, gix-credentials v0.24.3, gix-ignore v0.11.3, gix-index v0.33.1, gix-worktree v0.34.1, gix-diff v0.44.1, gix-discover v0.33.0, gix-pathspec v0.7.6, gix-dir v0.6.0, gix-mailmap v0.23.5, gix-negotiate v0.13.2, gix-pack v0.51.1, gix-odb v0.61.1, gix-transport v0.42.2, gix-protocol v0.45.2, gix-revision v0.27.2, gix-refspec v0.23.1, gix-status v0.11.0, gix-submodule v0.12.0, gix-worktree-state v0.11.1, gix v0.64.0, gix-fsck v0.4.1, gitoxide-core v0.39.0, gitoxide v0.37.0 ([`6232824`](https://togithub.com/Byron/gitoxide/commit/6232824))
- Release gix-glob v0.16.4, gix-attributes v0.22.3, gix-command v0.3.8, gix-filter v0.11.3, gix-fs v0.11.2, gix-commitgraph v0.24.3, gix-revwalk v0.13.2, gix-traverse v0.39.2, gix-worktree-stream v0.13.1, gix-archive v0.13.2, gix-config-value v0.14.7, gix-tempfile v14.0.1, gix-ref v0.45.0, gix-sec v0.10.7, gix-config v0.38.0, gix-prompt v0.8.6, gix-url v0.27.4, gix-credentials v0.24.3, gix-ignore v0.11.3, gix-index v0.33.1, gix-worktree v0.34.1, gix-diff v0.44.1, gix-discover v0.33.0, gix-pathspec v0.7.6, gix-dir v0.6.0, gix-mailmap v0.23.5, gix-negotiate v0.13.2, gix-pack v0.51.1, gix-odb v0.61.1, gix-transport v0.42.2, gix-protocol v0.45.2, gix-revision v0.27.2, gix-refspec v0.23.1, gix-status v0.11.0, gix-submodule v0.12.0, gix-worktree-state v0.11.1, gix v0.64.0, gix-fsck v0.4.1, gitoxide-core v0.39.0, gitoxide v0.37.0 ([`a1b73a6`](https://togithub.com/Byron/gitoxide/commit/a1b73a6))
- Update manifests (by cargo-smart-release) ([`0470df3`](https://togithub.com/Byron/gitoxide/commit/0470df3))
- Prepare changelog prior to release ([`99c00cc`](https://togithub.com/Byron/gitoxide/commit/99c00cc))
- Merge branch 'fixes' ([`b4dba1c`](https://togithub.com/Byron/gitoxide/commit/b4dba1c))
- Add more tests for remote name validation ([`1267712`](https://togithub.com/Byron/gitoxide/commit/1267712))
- Thanks clippy ([`113cbcc`](https://togithub.com/Byron/gitoxide/commit/113cbcc))
- Release gix-path v0.10.9 ([`15f1cf7`](https://togithub.com/Byron/gitoxide/commit/15f1cf7))
- Merge branch 'fix-1428' ([`caae926`](https://togithub.com/Byron/gitoxide/commit/caae926))
- Merge branch 'fix-1440' ([`f87322e`](https://togithub.com/Byron/gitoxide/commit/f87322e))
- Adapt to changes in `gix-testtools` ([`f5a9884`](https://togithub.com/Byron/gitoxide/commit/f5a9884))
- Release gix-actor v0.31.4, gix-object v0.42.3 ([`bf3d82a`](https://togithub.com/Byron/gitoxide/commit/bf3d82a))
- Merge branch 'heredocs' ([`7330844`](https://togithub.com/Byron/gitoxide/commit/7330844))
- Regenerate archives ([`a4bb7b9`](https://togithub.com/Byron/gitoxide/commit/a4bb7b9))
- Use `<<` rather than `<<-` heredoc operator ([`2641f8b`](https://togithub.com/Byron/gitoxide/commit/2641f8b))
- Release gix-actor v0.31.3, gix-mailmap v0.23.4 ([`1e79c5c`](https://togithub.com/Byron/gitoxide/commit/1e79c5c))
- Allow `use_http_path` to be set in `config::credential_helpers()` ([`55cbc1b`](https://togithub.com/Byron/gitoxide/commit/55cbc1b))
- Enable tracing with the new `tracing` feature in the Cargo manifest. ([`41e018d`](https://togithub.com/Byron/gitoxide/commit/41e018d))
- Merge branch 'config-globals' ([`929744a`](https://togithub.com/Byron/gitoxide/commit/929744a))
- Merge pull request [#1430](https://togithub.com/Byron/gitoxide/issues/1430) from klensy/deps ([`ab02aa9`](https://togithub.com/Byron/gitoxide/commit/ab02aa9))
- Gate parking_lot behind interrupt feature ([`d9a813f`](https://togithub.com/Byron/gitoxide/commit/d9a813f))
- Add `config::section::filter()` for the default section filter. ([`5c7e744`](https://togithub.com/Byron/gitoxide/commit/5c7e744))
- Provide `config::credential_helpers()` function to configure an invocation. ([`478bbc1`](https://togithub.com/Byron/gitoxide/commit/478bbc1))
- Release gix-mailmap v0.23.3 ([`0c5d1ff`](https://togithub.com/Byron/gitoxide/commit/0c5d1ff))
- Release gix-path v0.10.8 ([`8d89b86`](https://togithub.com/Byron/gitoxide/commit/8d89b86))
- Merge branch 'various-fixes' ([`f71b7a0`](https://togithub.com/Byron/gitoxide/commit/f71b7a0))
- Re-export `gix_validate` as it's now part of the public API. ([`c8c56ae`](https://togithub.com/Byron/gitoxide/commit/c8c56ae))
- Export `gix_validate` as `validate`. ([`afc6e25`](https://togithub.com/Byron/gitoxide/commit/afc6e25))
- Release gix-date v0.8.7, gix-mailmap v0.23.2 ([`c1d7c02`](https://togithub.com/Byron/gitoxide/commit/c1d7c02))
- Merge branch 'tar-only' ([`1dfa90d`](https://togithub.com/Byron/gitoxide/commit/1dfa90d))
- Remove binary files in favor of `tar` files ([`dcab79a`](https://togithub.com/Byron/gitoxide/commit/dcab79a))
- Merge branch 'config-key' ([`5663a2c`](https://togithub.com/Byron/gitoxide/commit/5663a2c))
- `gix-config` convenience initiative ([`0ec2389`](https://togithub.com/Byron/gitoxide/commit/0ec2389))
- Addditional fixes on top of the merge commit ([`dbe1f22`](https://togithub.com/Byron/gitoxide/commit/dbe1f22))
- Merge branch 'main' into config-key-take-2 ([`9fa1054`](https://togithub.com/Byron/gitoxide/commit/9fa1054))
- Merge branch 'feat/checkout-other-refs' ([`ecfde07`](https://togithub.com/Byron/gitoxide/commit/ecfde07))
- Thanks clippy ([`f36b9bd`](https://togithub.com/Byron/gitoxide/commit/f36b9bd))
- Improve documentation of `PrepareCheckout` and make it easier to use ([`39180b4`](https://togithub.com/Byron/gitoxide/commit/39180b4))
- Add `PrepareFetch::with_ref_name()` to control which ref is checked out. ([`acbfa6f`](https://togithub.com/Byron/gitoxide/commit/acbfa6f))
- Squash 11 commits that get started with allowing to checkout a particular branch ([`0912a46`](https://togithub.com/Byron/gitoxide/commit/0912a46))
- Merge branch 'status' ([`2f9f0ac`](https://togithub.com/Byron/gitoxide/commit/2f9f0ac))
- Merge pull request [#1407](https://togithub.com/Byron/gitoxide/issues/1407) from jsimonrichard/06-19-add_rela_path_to_Item ([`2856434`](https://togithub.com/Byron/gitoxide/commit/2856434))
- Add rela_path to crate::status::index_worktree::iter::Item ([`1dc4568`](https://togithub.com/Byron/gitoxide/commit/1dc4568))
- Merge pull request [#1361](https://togithub.com/Byron/gitoxide/issues/1361) from EliahKagan/freebsd ([`9c65d98`](https://togithub.com/Byron/gitoxide/commit/9c65d98))
- Regenerate archives for changed scripts ([`ea12fc2`](https://togithub.com/Byron/gitoxide/commit/ea12fc2))
- Make bash script shebangs more portable ([`68cbea8`](https://togithub.com/Byron/gitoxide/commit/68cbea8))
- Release gix-fs v0.11.1, gix-glob v0.16.3 ([`2cefe77`](https://togithub.com/Byron/gitoxide/commit/2cefe77))
- Merge pull request [#1385](https://togithub.com/Byron/gitoxide/issues/1385) from Byron/fix-gix-ref ([`8da55a3`](https://togithub.com/Byron/gitoxide/commit/8da55a3))
- Release gix-ref v0.44.1 ([`2d0a352`](https://togithub.com/Byron/gitoxide/commit/2d0a352))
- Release gix-archive v0.13.1 ([`bd32c7a`](https://togithub.com/Byron/gitoxide/commit/bd32c7a))
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), 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.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
0.63.0
->0.64.0
Release Notes
Byron/gitoxide (gix)
### [`v0.64.0`](https://togithub.com/Byron/gitoxide/releases/tag/gix-v0.64.0): gix v0.64.0 [Compare Source](https://togithub.com/Byron/gitoxide/compare/gix-v0.63.0...gix-v0.64.0) ##### New Features - enable tracing with the new `tracing` feature in the Cargo manifest. That way, it's easier to directly enable tracing, instead of having to resort to `gix-features`. - add `config::section::filter()` for the default section filter. Provide the default implementation to determine which configuration sections should be trusted. - provide `config::credential_helpers()` function to configure an invocation. That way it's possible to use git credential helpers even without a Repository instance. - export `gix_validate` as `validate`. The crate appears in the public API of `gix_index::State::from_tree` but it's types weren't readily available. - add `PrepareFetch::with_ref_name()` to control which ref is checked out. ##### Bug Fixes - make sure that `refs/heads/HEAD` isn't considered conflicting - re-export `gix_validate` as it's now part of the public API. This allows calling `State::from_tree()`. - don't attempt negotiation without any refspec-mappings Previously, when a shallow operation was specified, it was possible to skip past the no-change test and attempt to negotiate even though there was nothing to want. This is now 'fixed' by simply aborting early if there is no refspec mapping at all. Further, it aborts as early as possible with a nicer error message, after all, there is no use in having no mapping. Note that it's explicitly implemented such that obtaining such an empty refmap is fine, but trying to receive it is not. That way, the user can obtain information about the server without anything being an error. ##### Other -view details
- **[#1405](https://togithub.com/Byron/gitoxide/issues/1405)** - Don't attempt negotiation without any refspec-mappings ([`a146d14`](https://togithub.com/Byron/gitoxide/commit/a146d14)) - **[#1428](https://togithub.com/Byron/gitoxide/issues/1428)** - Make sure that `refs/heads/HEAD` isn't considered conflicting ([`40d1881`](https://togithub.com/Byron/gitoxide/commit/40d1881)) - **Uncategorized** - Release gix-actor v0.31.5, gix-filter v0.11.3, gix-fs v0.11.2, gix-commitgraph v0.24.3, gix-revwalk v0.13.2, gix-traverse v0.39.2, gix-worktree-stream v0.13.1, gix-archive v0.13.2, gix-config-value v0.14.7, gix-tempfile v14.0.1, gix-ref v0.45.0, gix-sec v0.10.7, gix-config v0.38.0, gix-prompt v0.8.6, gix-url v0.27.4, gix-credentials v0.24.3, gix-ignore v0.11.3, gix-index v0.33.1, gix-worktree v0.34.1, gix-diff v0.44.1, gix-discover v0.33.0, gix-pathspec v0.7.6, gix-dir v0.6.0, gix-mailmap v0.23.5, gix-negotiate v0.13.2, gix-pack v0.51.1, gix-odb v0.61.1, gix-transport v0.42.2, gix-protocol v0.45.2, gix-revision v0.27.2, gix-refspec v0.23.1, gix-status v0.11.0, gix-submodule v0.12.0, gix-worktree-state v0.11.1, gix v0.64.0, gix-fsck v0.4.1, gitoxide-core v0.39.0, gitoxide v0.37.0 ([`6232824`](https://togithub.com/Byron/gitoxide/commit/6232824)) - Release gix-glob v0.16.4, gix-attributes v0.22.3, gix-command v0.3.8, gix-filter v0.11.3, gix-fs v0.11.2, gix-commitgraph v0.24.3, gix-revwalk v0.13.2, gix-traverse v0.39.2, gix-worktree-stream v0.13.1, gix-archive v0.13.2, gix-config-value v0.14.7, gix-tempfile v14.0.1, gix-ref v0.45.0, gix-sec v0.10.7, gix-config v0.38.0, gix-prompt v0.8.6, gix-url v0.27.4, gix-credentials v0.24.3, gix-ignore v0.11.3, gix-index v0.33.1, gix-worktree v0.34.1, gix-diff v0.44.1, gix-discover v0.33.0, gix-pathspec v0.7.6, gix-dir v0.6.0, gix-mailmap v0.23.5, gix-negotiate v0.13.2, gix-pack v0.51.1, gix-odb v0.61.1, gix-transport v0.42.2, gix-protocol v0.45.2, gix-revision v0.27.2, gix-refspec v0.23.1, gix-status v0.11.0, gix-submodule v0.12.0, gix-worktree-state v0.11.1, gix v0.64.0, gix-fsck v0.4.1, gitoxide-core v0.39.0, gitoxide v0.37.0 ([`a1b73a6`](https://togithub.com/Byron/gitoxide/commit/a1b73a6)) - Update manifests (by cargo-smart-release) ([`0470df3`](https://togithub.com/Byron/gitoxide/commit/0470df3)) - Prepare changelog prior to release ([`99c00cc`](https://togithub.com/Byron/gitoxide/commit/99c00cc)) - Merge branch 'fixes' ([`b4dba1c`](https://togithub.com/Byron/gitoxide/commit/b4dba1c)) - Add more tests for remote name validation ([`1267712`](https://togithub.com/Byron/gitoxide/commit/1267712)) - Thanks clippy ([`113cbcc`](https://togithub.com/Byron/gitoxide/commit/113cbcc)) - Release gix-path v0.10.9 ([`15f1cf7`](https://togithub.com/Byron/gitoxide/commit/15f1cf7)) - Merge branch 'fix-1428' ([`caae926`](https://togithub.com/Byron/gitoxide/commit/caae926)) - Merge branch 'fix-1440' ([`f87322e`](https://togithub.com/Byron/gitoxide/commit/f87322e)) - Adapt to changes in `gix-testtools` ([`f5a9884`](https://togithub.com/Byron/gitoxide/commit/f5a9884)) - Release gix-actor v0.31.4, gix-object v0.42.3 ([`bf3d82a`](https://togithub.com/Byron/gitoxide/commit/bf3d82a)) - Merge branch 'heredocs' ([`7330844`](https://togithub.com/Byron/gitoxide/commit/7330844)) - Regenerate archives ([`a4bb7b9`](https://togithub.com/Byron/gitoxide/commit/a4bb7b9)) - Use `<<` rather than `<<-` heredoc operator ([`2641f8b`](https://togithub.com/Byron/gitoxide/commit/2641f8b)) - Release gix-actor v0.31.3, gix-mailmap v0.23.4 ([`1e79c5c`](https://togithub.com/Byron/gitoxide/commit/1e79c5c)) - Allow `use_http_path` to be set in `config::credential_helpers()` ([`55cbc1b`](https://togithub.com/Byron/gitoxide/commit/55cbc1b)) - Enable tracing with the new `tracing` feature in the Cargo manifest. ([`41e018d`](https://togithub.com/Byron/gitoxide/commit/41e018d)) - Merge branch 'config-globals' ([`929744a`](https://togithub.com/Byron/gitoxide/commit/929744a)) - Merge pull request [#1430](https://togithub.com/Byron/gitoxide/issues/1430) from klensy/deps ([`ab02aa9`](https://togithub.com/Byron/gitoxide/commit/ab02aa9)) - Gate parking_lot behind interrupt feature ([`d9a813f`](https://togithub.com/Byron/gitoxide/commit/d9a813f)) - Add `config::section::filter()` for the default section filter. ([`5c7e744`](https://togithub.com/Byron/gitoxide/commit/5c7e744)) - Provide `config::credential_helpers()` function to configure an invocation. ([`478bbc1`](https://togithub.com/Byron/gitoxide/commit/478bbc1)) - Release gix-mailmap v0.23.3 ([`0c5d1ff`](https://togithub.com/Byron/gitoxide/commit/0c5d1ff)) - Release gix-path v0.10.8 ([`8d89b86`](https://togithub.com/Byron/gitoxide/commit/8d89b86)) - Merge branch 'various-fixes' ([`f71b7a0`](https://togithub.com/Byron/gitoxide/commit/f71b7a0)) - Re-export `gix_validate` as it's now part of the public API. ([`c8c56ae`](https://togithub.com/Byron/gitoxide/commit/c8c56ae)) - Export `gix_validate` as `validate`. ([`afc6e25`](https://togithub.com/Byron/gitoxide/commit/afc6e25)) - Release gix-date v0.8.7, gix-mailmap v0.23.2 ([`c1d7c02`](https://togithub.com/Byron/gitoxide/commit/c1d7c02)) - Merge branch 'tar-only' ([`1dfa90d`](https://togithub.com/Byron/gitoxide/commit/1dfa90d)) - Remove binary files in favor of `tar` files ([`dcab79a`](https://togithub.com/Byron/gitoxide/commit/dcab79a)) - Merge branch 'config-key' ([`5663a2c`](https://togithub.com/Byron/gitoxide/commit/5663a2c)) - `gix-config` convenience initiative ([`0ec2389`](https://togithub.com/Byron/gitoxide/commit/0ec2389)) - Addditional fixes on top of the merge commit ([`dbe1f22`](https://togithub.com/Byron/gitoxide/commit/dbe1f22)) - Merge branch 'main' into config-key-take-2 ([`9fa1054`](https://togithub.com/Byron/gitoxide/commit/9fa1054)) - Merge branch 'feat/checkout-other-refs' ([`ecfde07`](https://togithub.com/Byron/gitoxide/commit/ecfde07)) - Thanks clippy ([`f36b9bd`](https://togithub.com/Byron/gitoxide/commit/f36b9bd)) - Improve documentation of `PrepareCheckout` and make it easier to use ([`39180b4`](https://togithub.com/Byron/gitoxide/commit/39180b4)) - Add `PrepareFetch::with_ref_name()` to control which ref is checked out. ([`acbfa6f`](https://togithub.com/Byron/gitoxide/commit/acbfa6f)) - Squash 11 commits that get started with allowing to checkout a particular branch ([`0912a46`](https://togithub.com/Byron/gitoxide/commit/0912a46)) - Merge branch 'status' ([`2f9f0ac`](https://togithub.com/Byron/gitoxide/commit/2f9f0ac)) - Merge pull request [#1407](https://togithub.com/Byron/gitoxide/issues/1407) from jsimonrichard/06-19-add_rela_path_to_Item ([`2856434`](https://togithub.com/Byron/gitoxide/commit/2856434)) - Add rela_path to crate::status::index_worktree::iter::Item ([`1dc4568`](https://togithub.com/Byron/gitoxide/commit/1dc4568)) - Merge pull request [#1361](https://togithub.com/Byron/gitoxide/issues/1361) from EliahKagan/freebsd ([`9c65d98`](https://togithub.com/Byron/gitoxide/commit/9c65d98)) - Regenerate archives for changed scripts ([`ea12fc2`](https://togithub.com/Byron/gitoxide/commit/ea12fc2)) - Make bash script shebangs more portable ([`68cbea8`](https://togithub.com/Byron/gitoxide/commit/68cbea8)) - Release gix-fs v0.11.1, gix-glob v0.16.3 ([`2cefe77`](https://togithub.com/Byron/gitoxide/commit/2cefe77)) - Merge pull request [#1385](https://togithub.com/Byron/gitoxide/issues/1385) from Byron/fix-gix-ref ([`8da55a3`](https://togithub.com/Byron/gitoxide/commit/8da55a3)) - Release gix-ref v0.44.1 ([`2d0a352`](https://togithub.com/Byron/gitoxide/commit/2d0a352)) - Release gix-archive v0.13.1 ([`bd32c7a`](https://togithub.com/Byron/gitoxide/commit/bd32c7a))Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), 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.