### New Features

 - Simple serialization for `Instruction` and `RefSpecRef` type.
   It's also a way to normalize input strings as there is only one way
   to serialize instructions, which themselves are already normalized
   towards what's possible.

### Changed (BREAKING)

 - reject all invalid negative refspec patterns.
   Git is more lenient, but will then fail to match against such patterns
   which seems like avoidable surprising behaviour.
 - upgrade `bstr` to `1.0.1`

### Commit Statistics

 - 72 commits contributed to the release over the course of 18 calendar days.
 - 22 days passed between releases.
 - 3 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 4 times to make code idiomatic. 

### Commit Details

 * **#450**
    - A more efficient representation for `validate::Fix` (e819fc6)
    - Make `specs` in `MatchGroup` public to reduce API surface. (2a7df32)
    - Allow `match_group::Fix` to be cloned. (85c49ec)
    - fix `match_group::Item` to make it uniform with how we typically name refs (21420da)
    - remote todo with note about our current understanding (9dc7a3f)
    - Actually assure we don't try to write into the HEAD ref, which git avoids as well (1335618)
    - Allow 'HEAD' based refspecs to match correctly (7432a2b)
    - tests to show that empty remotes actually work (2fdec73)
    - another test which doesn't manage to trigger a certain message from git. (4f48095)
    - fully drop 'funny' names (f137d60)
    - A first version of the 'funny name' sanitization (c81e418)
    - frame for testing of fixes (9148102)
    - refactor (d37fd04)
    - all baseline specs are tested and pass (afc0a3d)
    - the first test to validate conflict reporting (aef0a46)
    - sketch of validation API along with test suite integration (70a765e)
    - refactor (547129e)
    - sketch `Outcome` type which can be used for later sanitization and validation. (53e17c1)
    - prepare first test for conflicts and validation (508a33a)
    - just-in-time deduplication of mappings (8ed5d01)
    - adjust expectations to make first exclusion tests work (6e1b19b)
    - reject all invalid negative refspec patterns. (4c4f821)
    - basic negation implementation along with first failure. (e4931d0)
    - first tests for multiple refspecs (77db112)
    - refactor (4c73a19)
    - refactor (00401be)
    - improved glob matching (eaf36e7)
    - basic glob matching. (a93628c)
    - type-system supprots  glob matching (4b73d11)
    - more tests for simple 1:1 fetch and update specs (74de83c)
    - Make it easy to obtain the local and remote sides of RefSpecs (67506b1)
    - Don't reject object-id like heads on the receiving side. (6668c3f)
    - make object-ids in the source position type-safe (413051d)
    - prepare for dual-sided ref mapping to realize that it needs a special case. (7368fe4)
    - refactor (579e891)
    - support testing source-only object names (bb61c49)
    - preliminary matching of refs by name (426107f)
    - handle partial names as well (dc7f162)
    - generalize baseline assertion to support multiple input specs (b752e48)
    - first successful test (3625d5a)
    - top-level match-group loop without negation (c915a5f)
    - refactor to use a match-group instead. (4ba31c5)
    - not using a matchgroup right away seems like the wrong approach (7f3bc30)
    - actual expectation for first simple test (cec6905)
    - Get to the point where the matcher is invoked (cbbdf59)
    - Simple serialization for `Instruction` and `RefSpecRef` type. (abdf83f)
    - ground work for matcher tests (509764c)
    - tag specific tests (4f35485)
    - more tests to investigate conflict handling (192d4f7)
    - a more realistic sketch for `Matcher`, which will need a surrounding `MatchGroup` (dd1d824)
    - more robust baseline tests on windows (54ca267)
    - pares FETCH_HEAD (as specs without local sides); sketch `Match` type (44228a0)
    - restore full ref names for baseline (f6124db)
    - parse basline mapping (3000a14)
    - parse baseline reflist which serves as input to the matcher (fce877f)
    - frame for baseline for fetch-matching (2569da5)
    - upgrade `bstr` to `1.0.1` (99905ba)
    - prefer to represent instructions with Matchers (0887e2e)
    - more examples using fully spelled out object names as fetch destination (095a099)
    - get more clarity about `git ls-remote` and `git fetch` (1b15fe8)
    - a tiny sketch of a possible matching API (39d5ff3)
 * **#470**
    - update changelogs prior to release (caa7a1b)
 * **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)
    - make fmt (429cccc)
    - Merge branch 'index-from-tree' (172f73c)
    - thanks clippy (74a5f22)
    - thanks clippy (016cd1f)
    - thanks clippy (b8ac13e)
    - thanks clippy (73b405f)
    - make fmt (535e967)
    - Merge branch 'git_date_parse' (75591fb)
    - Release git-hash v0.9.9 (da0716f)