### New Features
- `Object::peel_to_tree()` as convenience method.
It's very common to try to work with trees, so let's make that easier.
- `interrupt::Iter` now allows accessing the inner iterator without consumption.
This is useful if these provide additional out-of-band information.
- Once a change is obtained, it's easy to obtain changes line by line.
- obtain a refmap after listing refs via `remote::Connection::list_refs_to_map()`.
With it it's possible to establish a relationship between what's about
to be fetched to local tracking branches as established by refspecs for
fetching.
- Add `permissions::Config::git_binary` field
When true, default false, inject the git installation configuration file
if present at the cost of one `git config` invocation.
Note that we rely on the underlying `git-config` crate to not load
duplicate files.
We also currently lie about the scope which is actually unclear - have
seen 'unknown' or normal scopes like `system`.
- add `prompt` to top level forwarding #450)
### Bug Fixes
- rev-spec parsing can now handle the empty tree as full hex hash.
Even though the empty-tree object can be found when searched via
`Repository::find_object()`, previously it was not locatable when
used during rev-spec parsing.
- `Reference::remote()` can produce remotes for URLs
### Refactor
- <csr-id-f5959edc1477573278afcfe23e9e52ddaacb37db/> use specific error type for `rev_parse_single()`
### Changed (BREAKING)
- upgrade `bstr` to `1.0.1`
### New Features (BREAKING)
- Add reference remote name type to make usage of `remote_name()` result clear
### Other (BREAKING)
- <csr-id-79c22557ce0aea1ee8f3a58192c2c76087ccd3d8/> `Tree::lookup_path()` -> `Tree::lookup_entry()`.
### Commit Statistics
- 95 commits contributed to the release over the course of 19 calendar days.
- 19 days passed between releases.
- 12 commits were understood as [conventional](https://www.conventionalcommits.org).
- 2 unique issues were worked on: #450, #470
### Thanks Clippy
[Clippy](https://github.com/rust-lang/rust-clippy) helped 6 times to make code idiomatic.
### Commit Details
* **#450**
- adapt to changes in `git-refspec` (91d1a3a)
- show fixes as well (2237495)
- Add method to allow replacing a Remote's refspecs entirely. (d8f1608)
- produce only a ref-map as it contains all data somebody would want. (c9ff885)
- adjust to changes in `git-config` (0f9833a)
- also provide the spec-index with the returned refmap. (910cedc)
- Provide all information generated by the handshake into the refmap result (3958d71)
- adjust to changes in `git-refspec` (ffa24a1)
- obtain a refmap after listing refs via `remote::Connection::list_refs_to_map()`. (7e96d18)
- A step closer to actually obtaining a validated ref-mapping. (777ba7f)
- A more concrete sketch of how the API for obtaining mappings should look like (6d1c372)
- sketch API for obtaining a reflist filtered by refspecs (5d5e211)
- Extract URL from transport to support custom remotes better and avoid error case (fac87d0)
- use Rust credential implementation (fb39608)
- upgrade `bstr` to `1.0.1` (99905ba)
- refactor (9e4e4c4)
- adjust to changes in `git-sec` (d6ef2ce)
- adjust to changes in `git-ref` (296f23f)
- adjust to changes in git-object (9aadac3)
- Select `gix` commands will now load the git installation configuration (23d2dec)
- Add `permissions::Config::git_binary` field (d51e7c9)
- A way to parse the first git-config file path (ea52e4e)
- first step towards efficiently obtaining git config information (cc78473)
- fix exports to allow error type to be visible publicly (b978619)
- Also provide prompt configuration to allow Cascade::invoke() to be called with all arguments (5b4cb83)
- Add reference remote name type to make usage of `remote_name()` result clear (2992b1b)
- refactor (93ac4c3)
- remark about improvements to the type system around certain remote names. (a872bf7)
- `Reference::remote()` can produce remotes for URLs (74ede20)
- refactor (4fa8a84)
- test our understanding of case-folding when matching urls (77c27eb)
- subdomain globbing works (5b19729)
- tests for domain globbing (60d8997)
- more default-port tests (eb34156)
- username matching works (b99e9d8)
- All but one test work after username handling refactor (64b6b30)
- better normalization and clear-list support (5aefe66)
- remove glob-matching as it's not correct (6f4e052)
- refactor (593e4a8)
- more tests for better host and protocol matching of http and https urls (2221778)
- Support for host-based matching (2d81b9f)
- basic url matching with a simple glob (1b19611)
- Make tests more robust; fix windows tests (1983fbc)
- tests as far as possible without implementing url matching (8c686e0)
- mark a difference in the way credential helper urls are validated (dc57b67)
- the first successful url matching test (beddce1)
* **#470**
- update changelogs prior to release (caa7a1b)
- `Object::peel_to_tree()` as convenience method. (0871a96)
- fix docs (593f57b)
- Add note on why we consume the tree for looking up an entry. (b285097)
- `Tree::lookup_path()` -> `Tree::lookup_entry()`. (79c2255)
- simplify looking up entries by path (15a18e4)
- a little more complexity for diff tests (5878ad1)
- `interrupt::Iter` now allows accessing the inner iterator without consumption. (1027be9)
- Once a change is obtained, it's easy to obtain changes line by line. (8c2e5c6)
- Slightly improved docs for traversal docs. (963055b)
- performance note (0670468)
- Support for Path tracking (64bbb3d)
- rev-spec parsing can now handle the empty tree as full hex hash. (ae38660)
- refactor (9d01fb4)
- refactor (90b9c90)
- fix docs (9b7aaa0)
- improved usability of the `Action` enum (d04807b)
- Support for file-name tracking (88c4a57)
- Provisions for tracking the location of a change. (7fd9b0e)
- first test for simple file modification detection (a9056fd)
- allow user callbacks to have any error (5be96b3)
- break through API surface and sketch delegate calling user-provided function (e51f3cd)
- diff platform for basic diff configuration (c857b9b)
- refactor (a938fe4)
- refactor (6ac7dbe)
* **Uncategorized**
- Release git-hash v0.9.10, git-features v0.22.5, git-date v0.2.0, git-actor v0.12.0, git-glob v0.4.0, git-path v0.5.0, git-quote v0.3.0, git-attributes v0.4.0, git-config-value v0.8.0, git-tempfile v2.0.5, git-validate v0.6.0, git-object v0.21.0, git-ref v0.16.0, git-sec v0.4.0, git-config v0.8.0, git-discover v0.5.0, git-traverse v0.17.0, git-index v0.5.0, git-worktree v0.5.0, git-testtools v0.9.0, git-command v0.1.0, git-prompt v0.1.0, git-url v0.9.0, git-credentials v0.5.0, git-diff v0.19.0, git-mailmap v0.4.0, git-chunk v0.3.2, git-pack v0.23.0, git-odb v0.33.0, git-packetline v0.13.0, git-transport v0.20.0, git-protocol v0.20.0, git-revision v0.5.0, git-refspec v0.2.0, git-repository v0.24.0, git-commitgraph v0.9.0, gitoxide-core v0.18.0, gitoxide v0.16.0, safety bump 28 crates (29a043b)
- thanks clippy (77ff8ae)
- make fmt (429cccc)
- avoid risking comparing two different current-time timestamps (389cb2a)
- thanks clippy (52fa247)
- Merge branch 'filter-refs' (fd14489)
- Merge branch 'index-from-tree' (172f73c)
- use specific error type for `rev_parse_single()` (f5959ed)
- use rev_parse_single() instead of rev_parse().single() (09948a5)
- new error for `rev_parse_single` (9491528)
- Merge branch 'git_date_relative' (83a3832)
- rev_parse_single (d9097ab)
- make fmt (535e967)
- thanks clippy (ab81525)
- add `prompt` to top level forwarding #450) (1c13f11)
- Merge branch 'main' into filter-refs-by-spec (9aa1d3d)
- Release git-features v0.22.4, git-url v0.8.0, safety bump 4 crates (1d4600a)
- thanks clippy (34bc1b3)
- Merge branch 'main' into filter-refs-by-spec (1f6e5ab)
- Merge branch 'git_date_parse' (75591fb)
- thanks clippy (82ee79e)
- thanks clippy (97e23dd)
- Release git-hash v0.9.9 (da0716f)
- Merge branch 'main' into filter-refs-by-spec (51dc828)