### New Features
- `Spec` with `Display` implementation to reproduce itself.
That way it can be parsed back perfectly after displaying itself, and
will work normally when used in backticks in the shell for simple
include patterns.
- Add `Spec` data strcuture to fully represent a revision specification
- Add support for `r1^@`
- Add support for `r1^!`
- support for `<rev>^-<n>` and `<rev>^-`
### Changed (BREAKING)
- More intuitive variants for `Spec`.
- rename various `Kind` variants to be more descrptive.
- Rename `Kind::Single` to `Include` and add `Exclude` kind.
So far I got ranges pretty wrong and was degenerating the `^rev` case
due to misinterpretation of the docs.
This summary corrected that: https://git-scm.com/docs/git-rev-parse#_revision_range_summary
### Commit Statistics
- 38 commits contributed to the release over the course of 23 calendar days.
- 26 days passed between releases.
- 8 commits where understood as [conventional](https://www.conventionalcommits.org).
- 2 unique issues were worked on: #427, #450
### Thanks Clippy
[Clippy](https://github.com/rust-lang/rust-clippy) helped 3 times to make code idiomatic.
### Commit Details
* **#427**
- make fmt (4b320e7)
- remove unused type (ad3475d)
- Better docs for `Spec` and `spec::Kind` (6b76c06)
- More intuitive variants for `Spec`. (42aea42)
- `Spec` with `Display` implementation to reproduce itself. (36c70e1)
- More fuzz success (f239796)
- fix panics discovered by fuzzer input (0f9e959)
- Add fuzz target (54108f4)
- Add support for `r1^@` (4bb2003)
- Add support for `r1^!` (7e5d31c)
- refactor (dd1a208)
- the first test for @^! syntax (b97677c)
- rename various `Kind` variants to be more descrptive. (487941c)
- Add all remainiing rev-spec kinds. (fcc737d)
- Assure parsing ends after special syntax sugar (661bf29)
- support for `<rev>^-<n>` and `<rev>^-` (fa1615d)
- a way to intercept which ref or prefix was set (b7a823b)
- first steps toward implementing ^-n (4b105f8)
- tests for `r1^-` and `r1^-n` syntactic sugar (5d983c6)
- Adjust RevSpec::range() to match changes in `git-revision` (05ea453)
- Omitted revisions after or before ../... are automatically defaulted to `HEAD`. (d6f481d)
- make it possible to see the ordering of calls (b04614c)
- Rename `Kind::Single` to `Include` and add `Exclude` kind. (baf34c4)
* **#450**
- add fuzz target and basic docs on how to run it (febf070)
* **Uncategorized**
- prepare changelogs prior to reelase (c06ae1c)
- Release git-hash v0.9.7, git-features v0.22.1 (232784a)
- Merge branch 'index-write-refactor' (805f432)
- adjust `git_date::parsea(str)` to use a str (0f8680a)
- Merge branch 'format_git_date_time' (99e12be)
- thanks clippy (4bd747c)
- raise `git-revision` to the status of 'usable' (09eb1a6)
- Merge branch 'write-index-files' into write-index-v2 (cddc2ca)
- Merge branch 'write-index-files' into rev-parse-delegate (370110d)
- Add `Spec` data strcuture to fully represent a revision specification (5038ffa)
- Merge branch 'main' into rev-parse-delegate (4ae2bed)
- thanks clippy (ca82265)
- thanks clippy (19db44a)
- Merge branch 'main' into rev-parse-delegate (6da8250)