Tags

Tags give the ability to mark specific points in history as being important
  • git-refspec-v0.0.0

    Initial release for name reservation.
    
    ### Commit Statistics
    
     - 2 commits contributed to the release.
     - 0 commits where understood as [conventional](https://www.conventionalcommits.org).
     - 1 unique issue was worked on: #450
    
    ### Commit Details
    
     * **#450**
        - prepare git-refspec changelog prior to release (3383408)
        - empty `git-refspec` crate for name reservation prior to implementation (871a3c0)
  • v0.13.0

    ### New Features
    
     - `gix config` with section and sub-section filtering.
     - `gix config` lists all entries of all configuration files git considers.
       Filters allow to narrow down the output.
    
    ### Commit Statistics
    
     - 37 commits contributed to the release over the course of 101 calendar days.
     - 107 days passed between releases.
     - 2 commits where understood as [conventional](https://www.conventionalcommits.org).
     - 3 unique issues were worked on: #301, #331, #427
    
    ### Thanks Clippy
    
    [Clippy](https://github.com/rust-lang/rust-clippy) helped 3 times to make code idiomatic. 
    
    ### Commit Details
    
     * **#301**
        - Allow reading patterns from stdin (0c597fe)
        - Add `--show-ignore-patterns` to `gix repo exclude query` (09f904b)
        - Basic prefix support as well the first working version of `exclude query` (9cb8385)
        - Support for overrides on the command-line (7d98b21)
        - fix build (cb56f12)
        - refactor (3ff991d)
        - frame for `gix repo exclude query` (a331314)
        - make fmt (50ff7aa)
     * **#331**
        - fix journey tests after `gix` restructuring (59b95c9)
        - `gix config` with section and sub-section filtering. (eda39ec)
        - `gix config` lists all entries of all configuration files git considers. (d99453e)
        - refactor (a437abe)
        - move 'exclude' up one level and dissolve 'repo' subcommand (8e5b796)
        - move 'mailmap' up one level (5cf08ce)
        - move 'odb' up one level (0ed65da)
        - move 'tree' up one level (38a8350)
        - move 'commit' up one level (72876f1)
        - move 'verify' up one level (ac7d99a)
        - move 'revision' one level up (c9c78e8)
        - move 'remote' to 'free' (8967fcd)
        - move commitgraph to 'free' (f99c3b2)
        - move index to 'free' (83585bd)
        - move 'pack' to 'free' (1cdecbc)
        - migrate mailmap to the new 'free' section (141c5f1)
        - first step towards moving all repository-commands one level up. (f4e1810)
        - make obvious what plumbing and porcelain really are (faaf791)
        - adjustments due to breaking changes in `git_path` (4420ae9)
     * **#427**
        - basic infrastructure for delegate implementation (d3c0bc6)
        - Hookup explain command (1049b00)
        - frame for `gix repo rev explain` (12e6277)
     * **Uncategorized**
        - thanks clippy (48b3f4a)
        - make fmt (0700b09)
        - Use git_path::realpath in all places that allow it right now (229dc91)
        - make fmt (251b6df)
        - Merge branch 'git_includeif' of https://github.com/svetli-n/gitoxide into svetli-n-git_includeif (0e01da7)
        - thanks clippy (056e8d2)
        - thanks clippy (fdec111)
  • gitoxide-core-v0.15.0

    ### Changed (BREAKING)
    
     - remove local-time-support feature toggle.
       We treat local time as default feature without a lot of fuzz, and
       will eventually document that definitive support needs a compile
       time switch in the compiler (`--cfg unsound_local_offset` or something).
       
       One day it will perish. Failure is possible anyway and we will write
       code to deal with it while minimizing the amount of system time
       fetches when asking for the current local time.
     - Associate `file::Metadata` with each `File`.
       This is the first step towards knowing more about the source of each
       value to filter them based on some properties.
       
       This breaks various methods handling the instantiation of configuration
       files as `file::Metadata` typically has to be provided by the caller
       now or be associated with each path to read configuration from.
    
    ### New Features
    
     - `gix config` with section and sub-section filtering.
     - `gix config` lists all entries of all configuration files git considers.
       Filters allow to narrow down the output.
     - Use `git-config` to write config file on initialization, including `logallrefupdates` and `precomposeunicode`.
    
    ### Bug Fixes
    
     - `ein tool organize` now ignores worktrees.
       Previously it would report an error due to invalid assumptions.
       The new behaviour acknowledges that worktrees are placed by hand
       and moving them is almost always not what the user would want,
       even ignoring the added complexity in doing so correctly.
    
    ### Commit Statistics
    
     - 63 commits contributed to the release over the course of 101 calendar days.
     - 107 days passed between releases.
     - 6 commits where understood as [conventional](https://www.conventionalcommits.org).
     - 3 unique issues were worked on: #301, #331, #427
    
    ### Thanks Clippy
    
    [Clippy](https://github.com/rust-lang/rust-clippy) helped 2 times to make code idiomatic. 
    
    ### Commit Details
    
     * **#301**
        - fix build (d7dac11)
        - refactor (7b5fe1d)
        - adjust to changes in git-repository (e1dbf85)
        - fix build (40b8d4c)
        - Allow reading patterns from stdin (0c597fe)
        - Add `--show-ignore-patterns` to `gix repo exclude query` (09f904b)
        - Basic prefix support as well the first working version of `exclude query` (9cb8385)
        - Support for overrides on the command-line (7d98b21)
        - preliminary access to a fully configured exclusion cache (259d015)
        - fix build (cb56f12)
        - sketch `open_index()` on `Worktree`, but… (ff76261)
        - a sketch of basic Worktree support (732f6fb)
        - refactor (3ff991d)
        - frame for `gix repo exclude query` (a331314)
        - adapt to changes in git-path (cc2d810)
        - Use `git-path` crate instead of `git_features::path` (47e607d)
        - fix build (ffe92ca)
        - Make attributes and ignore configuration possible, but… (8a75fd7)
        - make fmt (50ff7aa)
     * **#331**
        - Group similarly named sections together more by not separating them with newline (4c69541)
        - Make lossy-configuration configurable (b0e4da6)
        - update README with `gix config` information (c19d9fd)
        - remove local-time-support feature toggle. (89a41bf)
        - `gix config` with section and sub-section filtering. (eda39ec)
        - `gix config` lists all entries of all configuration files git considers. (d99453e)
        - Associate `file::Metadata` with each `File`. (6f4eea9)
        - Use `git-config` to write config file on initialization, including `logallrefupdates` and `precomposeunicode`. (7f67b23)
        - adjust to changes in `git-config` (c52cb95)
     * **#427**
        - Handle 'kind' changes which completes 'explain' (45022a0)
        - Support for explaining all navitation (ace9c89)
        - start navigation implementation (ea1c009)
        - Implement `Revision` anchors (a1f0e3d)
        - basic infrastructure for delegate implementation (d3c0bc6)
        - Hookup explain command (1049b00)
     * **Uncategorized**
        - Release git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0 (aa639d8)
        - Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
        - prepare changelog prior to release (3c50625)
        - make fmt (0700b09)
        - fix build after changes to `git-url` and `git-config` (1f02420)
        - Merge branch 'main' into cont_include_if (daa71c3)
        - Merge branch 'main' into cont_include_if (0e9df36)
        - Merge branch 'main' into cont_include_if (41ea8ba)
        - Release git-path v0.3.0, safety bump 14 crates (400c9be)
        - Release git-date v0.0.1, git-hash v0.9.5, git-features v0.21.1, git-actor v0.10.1, git-path v0.2.0, git-attributes v0.2.0, git-ref v0.14.0, git-sec v0.2.0, git-config v0.5.0, git-credentials v0.2.0, git-discover v0.2.0, git-pack v0.20.0, git-odb v0.30.0, git-url v0.6.0, git-transport v0.18.0, git-protocol v0.17.0, git-revision v0.2.1, git-worktree v0.3.0, git-repository v0.19.0, safety bump 13 crates (a417177)
        - update changelogs prior to release (bb424f5)
        - Merge branch 'main' into svetli-n-cont_include_if (315c87e)
        - Refact. (a342e53)
        - `ein tool organize` now ignores worktrees. (5667a7c)
        - Revert "ignore worktrees in 'organize', but…" (f59471f)
        - ignore worktrees in 'organize', but… (e501c9e)
        - Merge branch 'davidkna-admin-sec' (3d0e2c2)
        - Release git-path v0.1.3, git-discover v0.1.2, git-repository v0.18.1, cargo-smart-release v0.10.1 (b7399cc)
        - Merge branch 'davidkna-discover-x-fs' (9abaeda)
        - Release git-path v0.1.2, git-sec v0.1.1, git-config v0.4.0, git-discover v0.1.1, git-pack v0.19.1, git-repository v0.18.0, cargo-smart-release v0.10.0, safety bump 2 crates (ceb6dff)
        - fix most of docs (1fe053f)
        - refactor (07e0f5e)
        - Release git-hash v0.9.4, git-features v0.21.0, git-actor v0.10.0, git-glob v0.3.0, git-path v0.1.1, git-attributes v0.1.0, git-sec v0.1.0, git-config v0.3.0, git-credentials v0.1.0, git-validate v0.5.4, git-object v0.19.0, git-diff v0.16.0, git-lock v2.1.0, git-ref v0.13.0, git-discover v0.1.0, git-index v0.3.0, git-mailmap v0.2.0, git-traverse v0.15.0, git-pack v0.19.0, git-odb v0.29.0, git-packetline v0.12.5, git-url v0.5.0, git-transport v0.17.0, git-protocol v0.16.0, git-revision v0.2.0, git-worktree v0.2.0, git-repository v0.17.0, safety bump 20 crates (654cf39)
        - make fmt (e043807)
        - make fmt (251b6df)
        - Merge branch 'git_includeif' of https://github.com/svetli-n/gitoxide into svetli-n-git_includeif (0e01da7)
        - thanks clippy (d011d4e)
        - thanks clippy (fdec111)
        - Release git-glob v0.2.0, safety bump 3 crates (ab6bed7)
  • git-commitgraph-v0.8.0

    A maintenance release without user-facing changes.
    
    ### Commit Statistics
    
     - 10 commits contributed to the release over the course of 99 calendar days.
     - 110 days passed between releases.
     - 0 commits where understood as [conventional](https://www.conventionalcommits.org).
     - 1 unique issue was worked on: #384
    
    ### Commit Details
    
     * **#384**
        - No need to isolate archives by crate name (19d46f3)
        - add archive files via git-lfs (7202a1c)
        - auto-set commit.gpgsign=false when executing git (c23feb6)
     * **Uncategorized**
        - Release git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0 (aa639d8)
        - Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
        - prepare changelog prior to release (3c50625)
        - assure document-features are available in all 'usable' and 'early' crates (238581c)
        - Release git-date v0.0.1, git-hash v0.9.5, git-features v0.21.1, git-actor v0.10.1, git-path v0.2.0, git-attributes v0.2.0, git-ref v0.14.0, git-sec v0.2.0, git-config v0.5.0, git-credentials v0.2.0, git-discover v0.2.0, git-pack v0.20.0, git-odb v0.30.0, git-url v0.6.0, git-transport v0.18.0, git-protocol v0.17.0, git-revision v0.2.1, git-worktree v0.3.0, git-repository v0.19.0, safety bump 13 crates (a417177)
        - update changelogs prior to release (bb424f5)
        - Release git-hash v0.9.4, git-features v0.21.0, git-actor v0.10.0, git-glob v0.3.0, git-path v0.1.1, git-attributes v0.1.0, git-sec v0.1.0, git-config v0.3.0, git-credentials v0.1.0, git-validate v0.5.4, git-object v0.19.0, git-diff v0.16.0, git-lock v2.1.0, git-ref v0.13.0, git-discover v0.1.0, git-index v0.3.0, git-mailmap v0.2.0, git-traverse v0.15.0, git-pack v0.19.0, git-odb v0.29.0, git-packetline v0.12.5, git-url v0.5.0, git-transport v0.17.0, git-protocol v0.16.0, git-revision v0.2.0, git-worktree v0.2.0, git-repository v0.17.0, safety bump 20 crates (654cf39)
  • git-repository-v0.20.0

    ### New Features
    
     - respect `safe.directory`.
       In practice, this code will rarely be hit as it would require very
       strict settings that forbid any operation within a non-owned git
       directory.
     - permissions for configuration.
       It provides fine-grained control over what sources to load.
     - `git-config` is now accessible in `git-repository::config`.
     - `gix config` lists all entries of all configuration files git considers.
       Filters allow to narrow down the output.
     - repository now initializes global configuration files and resolves includes
     - resolve includes in local repository configuration
     - `config::Snapshot::trusted_path()` to obtain trustworthy paths.
       We also apply trust-based config query during initialization to assure
       we don't use paths which aren't owned by the current user.
     - `Repository::config_snapshot()` to access configuration values.
     - Use `git-config` to write config file on initialization, including `logallrefupdates` and `precomposeunicode`.
     - respect `core.logallrefupdates` configuration setting.
    
    ### Changed (BREAKING)
    
     - Make `SignatureRef<'_>` mandatory for editing reference changelogs.
       If defaults are desired, these can be set by the caller.
     - `Repository::committer()` now returns an `Option`, see `::committer_or_default()` for a method that doesn't.
     - remove local-time-support feature toggle.
       We treat local time as default feature without a lot of fuzz, and
       will eventually document that definitive support needs a compile
       time switch in the compiler (`--cfg unsound_local_offset` or something).
       
       One day it will perish. Failure is possible anyway and we will write
       code to deal with it while minimizing the amount of system time
       fetches when asking for the current local time.
     - Associate `file::Metadata` with each `File`.
       This is the first step towards knowing more about the source of each
       value to filter them based on some properties.
       
       This breaks various methods handling the instantiation of configuration
       files as `file::Metadata` typically has to be provided by the caller
       now or be associated with each path to read configuration from.
    
    ### New Features (BREAKING)
    
     - Support for `lossy` load mode.
       There is a lot of breaking changes as `file::from_paths::Options` now
       became `file::init::Options`, and the same goes for the error type.
     - change mostily internal uses of [u8] to BString/BStr
    
    ### Commit Statistics
    
     - 72 commits contributed to the release over the course of 33 calendar days.
     - 39 days passed between releases.
     - 16 commits where understood as [conventional](https://www.conventionalcommits.org).
     - 1 unique issue was worked on: #331
    
    ### Thanks Clippy
    
    [Clippy](https://github.com/rust-lang/rust-clippy) helped 5 times to make code idiomatic. 
    
    ### Commit Details
    
     * **#331**
        - Make lossy-configuration configurable (b0e4da6)
        - tests for author/committer/user (6d2e53c)
        - refactor (4dc6594)
        - default user signature now with 'now' time, like advertised. (ad40202)
        - Make `SignatureRef<'_>` mandatory for editing reference changelogs. (68f4bc2)
        - `Repository::committer()` now returns an `Option`, see `::committer_or_default()` for a method that doesn't. (f932cea)
        - first sketch of using configuration and environment variables for author/committer (330d0a1)
        - remove local-time-support feature toggle. (89a41bf)
        - a first sketch on how identity management could look like. (780f14f)
        - refactor (4f61312)
        - respect `safe.directory`. (1b765ec)
        - permissions for configuration. (840d9a3)
        - `git-config` is now accessible in `git-repository::config`. (6570808)
        - `gix config` lists all entries of all configuration files git considers. (d99453e)
        - adapt to changes in `git-config` (b52b540)
        - adapt to changes in `git-config` (3c57344)
        - adjust to changes in `git-config` for greater efficiency (e9afede)
        - adapt to changes in git-config (14ba883)
        - refactor (95ed219)
        - repository now initializes global configuration files and resolves includes (ebedd03)
        - adapt to changes in git-config (627a0e1)
        - only a select few early config attributes must be repo-local (be0971c)
        - resolve includes in local repository configuration (de8572f)
        - Adjust to changes in `git-config` (30cbe29)
        - solve cycle between config and ref-store (1679d56)
        - adapt to changes in `git-config` (7f41f1e)
        - prepare for resolving a complete config… (9be1dd6)
        - Allow to configure a different filter for configuration section. (e512ab0)
        - adjust to changes in `git-config` (ca89d0d)
        - refactor (5723730)
        - load configuration with trust information, needs cleanup (d8e41e2)
        - Add remaining config access, and an escape hatch. (81715ff)
        - `config::Snapshot::trusted_path()` to obtain trustworthy paths. (d5a48b8)
        - `Debug` for `config::Snapshot`. (2c21956)
        - `Repository::config_snapshot()` to access configuration values. (5f9bfa8)
        - adapt to changes in `git-config` (c9423db)
        - Support for `lossy` load mode. (d003c0f)
        - Associate `file::Metadata` with each `File`. (6f4eea9)
        - adjust to changes in `git-config` (81e63cc)
        - Use `git-config` to write config file on initialization, including `logallrefupdates` and `precomposeunicode`. (7f67b23)
        - respect `core.logallrefupdates` configuration setting. (e263e13)
        - adapt to breaking changes in `git-config` (a02d575)
        - adapt to changes in `git-config` (858dc8b)
        - adjustments due to breaking changes in `git-config` (924f148)
        - adjustments for breaking changes in `git-config` (d3841ee)
        - adjust to changes in `git-config` (c52cb95)
        - adjustments due to breaking changes in `git-config` (07bf647)
        - adapt to changes in `git-config` (363a826)
        - adjust to changes in `git-config` (920d56e)
        - adjustments required due to changed in `git-config` (41bfd3b)
        - adjust to breaking changes in `git-config` (5b66202)
        - adjustments due to breaking changes in `git_path` (4420ae9)
     * **Uncategorized**
        - Release git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0 (aa639d8)
        - Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
        - prepare changelog prior to release (3c50625)
        - thanks clippy (fddc720)
        - thanks clippy (0346aaa)
        - thanks clippy (b630543)
        - thanks clippy (d9eb34c)
        - avoid extra copies of paths using `PathCursor` tool during repo init (5771721)
        - make fmt (0700b09)
        - change mostily internal uses of [u8] to BString/BStr (311d4b4)
        - Merge branch 'main' into cont_include_if (daa71c3)
        - Merge branch 'normalize-values' (4e8cc7a)
        - thanks clippy (e1003d5)
        - Merge branch 'main' into cont_include_if (0e9df36)
        - Use git_path::realpath in all places that allow it right now (229dc91)
        - fix build warnings (84109f5)
        - Make a note to be sure we use the home-dir correctly in git-repository; avoid `dirs` crate (0e8cf19)
        - adjust to changes in git-config (7a1678d)
        - Merge branch 'main' into cont_include_if (41ea8ba)
        - Release git-path v0.3.0, safety bump 14 crates (400c9be)
  • git-worktree-v0.4.0

    This is a maintenance release with no functional changes.
    
    ### Commit Statistics
    
     - 5 commits contributed to the release over the course of 33 calendar days.
     - 39 days passed between releases.
     - 0 commits where understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Commit Details
    
     * **Uncategorized**
        - Release git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0 (aa639d8)
        - Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
        - prepare changelog prior to release (3c50625)
        - make it harder to forget documentation in git-worktree (15d87ee)
        - Release git-path v0.3.0, safety bump 14 crates (400c9be)
  • git-revision-v0.3.0

    This is a maintenance release with no functional changes.
    
    ### Commit Statistics
    
     - 9 commits contributed to the release over the course of 38 calendar days.
     - 39 days passed between releases.
     - 0 commits where understood as [conventional](https://www.conventionalcommits.org).
     - 1 unique issue was worked on: #427
    
    ### Thanks Clippy
    
    [Clippy](https://github.com/rust-lang/rust-clippy) helped 1 time to make code idiomatic. 
    
    ### Commit Details
    
     * **#427**
        - Support for explaining all navitation (ace9c89)
        - Handle lonely tilde gracefully (6fb834e)
        - refactor (1a15e12)
     * **Uncategorized**
        - Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
        - prepare changelog prior to release (3c50625)
        - make fmt (0700b09)
        - assure document-features are available in all 'usable' and 'early' crates (238581c)
        - Merge branch 'normalize-values' (4e8cc7a)
        - thanks clippy (e1003d5)
  • git-protocol-v0.18.0

    This is a maintenance release with no functional changes.
    
    ### Commit Statistics
    
     - 3 commits contributed to the release over the course of 33 calendar days.
     - 39 days passed between releases.
     - 0 commits where understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Commit Details
    
     * **Uncategorized**
        - Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
        - prepare changelog prior to release (3c50625)
        - Release git-path v0.3.0, safety bump 14 crates (400c9be)
  • git-transport-v0.19.0

    This is a maintenance release with no functional changes.
    
    ### Commit Statistics
    
     - 5 commits contributed to the release over the course of 33 calendar days.
     - 39 days passed between releases.
     - 0 commits where understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Thanks Clippy
    
    [Clippy](https://github.com/rust-lang/rust-clippy) helped 1 time to make code idiomatic. 
    
    ### Commit Details
    
     * **Uncategorized**
        - Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
        - prepare changelog prior to release (3c50625)
        - Merge branch 'normalize-values' (4e8cc7a)
        - thanks clippy (e1003d5)
        - Release git-path v0.3.0, safety bump 14 crates (400c9be)
  • git-url-v0.7.0

    ### Changed (BREAKING)
    
     - `From<&[u8]>` is now `From<&BStr>`
       This better represents the meaning of the input, and simplifies
       interactions with `git-config`.
    
    ### Commit Statistics
    
     - 5 commits contributed to the release over the course of 33 calendar days.
     - 39 days passed between releases.
     - 1 commit where understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Commit Details
    
     * **Uncategorized**
        - Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
        - prepare changelog prior to release (3c50625)
        - assure document-features are available in all 'usable' and 'early' crates (238581c)
        - `From<&[u8]>` is now `From<&BStr>` (ffc4a85)
        - Release git-path v0.3.0, safety bump 14 crates (400c9be)
  • git-odb-v0.31.0

    This is a maintenance release with no functional changes.
    
    ### Commit Statistics
    
     - 7 commits contributed to the release over the course of 33 calendar days.
     - 39 days passed between releases.
     - 0 commits where understood as [conventional](https://www.conventionalcommits.org).
     - 1 unique issue was worked on: #331
    
    ### Commit Details
    
     * **#331**
        - adjustments due to breaking changes in `git_path` (4420ae9)
     * **Uncategorized**
        - Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
        - prepare changelog prior to release (3c50625)
        - make fmt (0700b09)
        - assure document-features are available in all 'usable' and 'early' crates (238581c)
        - Use git_path::realpath in all places that allow it right now (229dc91)
        - Release git-path v0.3.0, safety bump 14 crates (400c9be)
  • git-pack-v0.21.0

    This is a maintenance release with no functional changes.
    
    ### Commit Statistics
    
     - 4 commits contributed to the release over the course of 33 calendar days.
     - 39 days passed between releases.
     - 0 commits where understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Commit Details
    
     * **Uncategorized**
        - Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
        - prepare changelog prior to release (3c50625)
        - assure document-features are available in all 'usable' and 'early' crates (238581c)
        - Release git-path v0.3.0, safety bump 14 crates (400c9be)
  • git-traverse-v0.16.0

    This is a maintenance release with no functional changes.
    
    ### Commit Statistics
    
     - 2 commits contributed to the release.
     - 64 days passed between releases.
     - 0 commits where understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Commit Details
    
     * **Uncategorized**
        - Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
        - prepare changelog prior to release (3c50625)
  • git-mailmap-v0.3.0

    This is a maintenance release with no functional changes.
    
    ### Commit Statistics
    
     - 2 commits contributed to the release.
     - 64 days passed between releases.
     - 0 commits where understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Commit Details
    
     * **Uncategorized**
        - Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
        - prepare changelog prior to release (3c50625)
  • git-index-v0.4.0

    This is a maintenance release with no functional changes.
    
    ### Commit Statistics
    
     - 2 commits contributed to the release.
     - 64 days passed between releases.
     - 0 commits where understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Commit Details
    
     * **Uncategorized**
        - Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
        - prepare changelog prior to release (3c50625)
  • git-discover-v0.3.0

    ### New Features
    
     - add `DOT_GIT_DIR` constant, containing the name ".git".
    
    ### Commit Statistics
    
     - 7 commits contributed to the release over the course of 33 calendar days.
     - 39 days passed between releases.
     - 1 commit where understood as [conventional](https://www.conventionalcommits.org).
     - 1 unique issue was worked on: #331
    
    ### Commit Details
    
     * **#331**
        - add `DOT_GIT_DIR` constant, containing the name ".git". (0103501)
        - adjustments due to breaking changes in `git_path` (4420ae9)
     * **Uncategorized**
        - Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
        - prepare changelog prior to release (3c50625)
        - Remove another special case on windows due to canonicalize() (61abb0b)
        - Use git_path::realpath in all places that allow it right now (229dc91)
        - Release git-path v0.3.0, safety bump 14 crates (400c9be)
  • git-diff-v0.17.0

    This is a maintenance release with no functional changes.
    
    ### Commit Statistics
    
     - 5 commits contributed to the release over the course of 30 calendar days.
     - 64 days passed between releases.
     - 0 commits where understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Commit Details
    
     * **Uncategorized**
        - Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
        - prepare changelog prior to release (3c50625)
        - Merge branch 'main' into cont_include_if (daa71c3)
        - Merge branch 'main' into cont_include_if (0e9df36)
        - generally avoid using `target_os = "windows"` in favor of `cfg(windows)` and negations (91d5402)
  • git-credentials-v0.3.0

    This is a maintenance release with no functional changes.
    
    ### Commit Statistics
    
     - 4 commits contributed to the release over the course of 33 calendar days.
     - 39 days passed between releases.
     - 0 commits where understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Commit Details
    
     * **Uncategorized**
        - Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
        - prepare changelog prior to release (3c50625)
        - assure document-features are available in all 'usable' and 'early' crates (238581c)
        - Release git-path v0.3.0, safety bump 14 crates (400c9be)
  • git-config-v0.6.0

    ### New Features
    
     - following includes is now non-fatal by default
       Otherwise it would be relatively easy to fail gitoxide startup,
       and we want to be closer to the behaviour in git which ignores
       most of the errors.
     - `File::from_git_dir()` as comfortable way to instantiate most complete git configuration.
     - `File` now compares actual content, ignoring whitespace and comments.
     - `File::new_environment_overrides()` to easily instantiate overrides from the environment.
     - `File::new_globals()` can instantiate non-local configuration with zero-configuration.
     - `Source::storage_location()` to know where files should be located.
     - `file::ValueMut::(section|into_section_mut)()` to go from value to the owning section.
       This can be useful if the value was obtained using `raw_value_mut()`.
     - `Source::is_in_repository()` to find out if a source is in the repository.
     - `parse::key` to parse a `remote.origin.url`-like key to identify a value
     - Add `File::detect_newline_style()`, which does at it says.
     - `File::frontmatter()` and `File::sections_and_postmatter()`.
     - `parse::Event::to_bstr_lossy()` to get a glimpse at event content.
     - `File::append()` can append one file to another rather losslessly.
       The loss happens as we, maybe for the wrong reasons, automatically
       insert newlines where needed which can only be done while we still know
       the file boundaries.
     - `file::Section::meta()` to access a section's metadata.
     - `File::sections()` to obtain an iterator over all sections, in order.
     - place spaces around `key = value` pairs, or whatever is used in the source configuration.
     - proper escaping of value bytes to allow round-tripping after mutation
     - whitespace in newly pushed keys is derived from first section value.
       That way, newly added key-value pairs look like they should assuming
       all keys have the same indentation as the first key in the section.
       
       If there is no key, then the default whitespace will be double-tabs
       like what's commmon in git.
     - `File::from_str()` implementation, to support `let config: File = "[core]".parse()?`
     - whitespace in mutable sections can be finely controlled, and is derived from existing sections
     - `parse::Header::new(…)` with sub-section name validation
     - Add `parse::(Event|section::Header|Comment)::write_to(…)`.
       Now it's possible to serialize these types in a streaming fashion and
       without arbitrarily enforcing UTF-8 on it
     - `serde1` feature to add limited serde support
    
    ### Bug Fixes
    
     - maintain insertion order of includes on per-section basis at least.
       Note that git inserts values right after the include directive,
       'splitting' the section, but we don't do that and insert new values
       after the section. Probably no issue in practice while keeping
       our implementation simple.
     - maintain newline format depending on what's present or use platform default.
       Previously implicit newlines when adding new sections or keys to
       sections was always `\n` which isn't correct on windows.
       
       Now the newline style is detected and used according to what's present,
       or in the lack of content, defaults to what's correct for the platform.
     - validate incoming conifguration keys when interpreting envirnoment variables.
     - `Boolean` can use numbers to indicate true or false, drops support for `one` and `zero`.
     - `file::MutableSection::remove()` now actually removes keys _and_ values.
     - `file::MutableMultiValue` escapes input values and maintains key separator specific whitespace.
     - value normalization (via `value::normalize()` handles escape sequences.
       The latter ones are `\n`, `\t` and `\b` which are the only supported
       ones in values of git-config files.
     - stable sort order for `File::sections_by_name_with_header()`
     - count newlines (for error display) in multi-line values as well
     - auto-normalize string values to support quote removal in case of strings.
       Related to https://github.com/starship/starship/pull/3883 .
    
    ### Other
    
     - <csr-id-32d5b3c695d868ba93755123a25b276bfbe55e0a/> :Events::from_bytes()` with `filter` support.
    
    ### Changed (BREAKING)
    
     - add `File::resolve_includes()` and move its error type to `file::includes`.
     - add `File::from_bytes_owned()` and remove `File::from_path_with_buf()`
     - remove `File::from_env_paths()`.
       It's replaced by its more comfortable `new_globals()`.
     - untangle `file::init::…` `Option` and `Error` types.
       This moves types to where they belong which is more specific instead
       of having a catch-all `Error` and `Options` type.
     - rename `parse::Comment::(comment_tag|comment)` to `::tag|text` and `parse::Section::section_header` to `::header`.
     - Associate `file::Metadata` with each `File`.
       This is the first step towards knowing more about the source of each
       value to filter them based on some properties.
       
       This breaks various methods handling the instantiation of configuration
       files as `file::Metadata` typically has to be provided by the caller
       now or be associated with each path to read configuration from.
     - rename `file::SectionBody` to `file::section::Body`.
     - Remove `File::sections_by_name_with_header()` as `::sections_by_name()` now returns entire sections.
     - create `resolve_includes` options to make space for more options when loading paths.
     - rename `path::Options` into `path::Context`.
       It's not an option if it's required context to perform a certain
       operation.
     - All accessors in `File` are now using `impl AsRef<str>` where possible for added comfort.
     - Much more comfortable API `file::*Mut` types thanks to `impl Into/AsRef`.
     - Rename `Mutable*` into `$1Mut` for consistency.
     - conform APIs of `file::MutableValue` and `file::MutableMultiValue`.
       There are more renames and removals than worth mentioning here given the
       current adoption of the crate.
     - rename `file::MutableSection::set_leading_space()` to `set_leading_whitespace()`.
       The corresponding getter was renamed as well to `leading_whitespace()`.
     - Enforce `parse::section::Header::new()` by making its fields private.
     - Add `File::write_to()` and `File::to_bstring()`; remove some `TryFrom` impls.
       Now `File` can be serialized in a streaming fashion and without the
       possibility for UTF8 conversion issues.
       
       Note that `Display` is still imlpemented with the usual caveats.
     - remove `Integer::to_bstring()` as well as some `TryFrom` impls.
       Note that it can still display itself like before via
       `std::fmt::Display`.
     - remove `Boolean::to_bstring()` along with a few `From` impls.
       These were superfluous and aren't useful in practice.
       Note that serialization is still implemented via `Display`.
     - allocation free `File::sections_by_name()` and `File::sections_by_name_with_header()`.
     - `Path::interpolate()` now takes `path::interpolate::Options` instead of three parameters.
     - remove `String` type in favor of referring to the `File::string()` method.
       The wrapper had no effect whatsoever except for adding complexity.
     - Simplify `Boolean` to be a wrapper around `bool`.
       Previously it tried hard not to degenerate information, making it a
       complicated type.
       
       However, in practice nobody cares about the exact makeup of the boolean,
       and there is no need to serialize a boolean faithfully either.
       
       Instead, those who want to set a value just set any value as a string,
       no need for type safety there, and we take care of escaping values
       properly on write.
     - Use bitflags for `color::Attribute` instead of `Vec` of enums.
       This is less wasteful and sufficient for git, so it should be sufficient
       for us, especially since attributes are indeed a set and declaring
       one twice has no effect.
     - simplify `Color` API.
       For now we only parse and serialize for display, but more uses are
       enabled when needed and trivially.
     - remove `parse::Events::from_path` and `File::at`
       The latter has been replaced with `File::from_path_with_buf(…)` and
       is a low-level way to load just a single config file, purposefully
       uncomfortable as it will not resolve includes.
       
       The initialization API will need some time to stabilize.
     - Slim down API surface of `parse::Events`.
       It's more of a 'dumb' structure now than before, merely present
       to facilitate typical parsing than something special on its own.
     - remove `File::new()` method in favor of `File::default()`.
     - rename `parse::event::List` to `parse::Events`
     - rename `parse::State` to `parse::event::List`
     - move `value::*` into the crate root, except for `Error` and `normalize_*()`.
     - rename `value::parse::Error` to `value::Error`.
     - rename `value::TrueVariant` to `value::boolean::True`
     - rename `IntegerSuffix` to `integer::Suffix`
     - rename `value::Color(Attribute|Value)` to `value::color::Attribute` and `value::color::Name`.
     - Turn `parse::ParseOrIoError` into `parse::state::from_path::Error`
     - rename `parse::ParsedComment` into `parse::Comment`
     - rename `parse::Section*` related types.
       These are now located in `section::*`.
     - rename `parse::Parser` to `parse::State`.
       Furthermore, make `State` the entry point for all parsing, removing
       all free-standing functions that returned a `State`.
     - rename `parser` module to `parse`
     - rename `normalize_cow()` to `normalize()` and move all `normalize*` functions from `values` to the `value` module
     - move `Path` from `values` to `value` module
     - Move `Boolean` and `String` from `values` into `value` module
     - move `values::Integer` into `value` module
     - move `Color` to own `value` module
     - remove `values::Bytes` - use `values::String` instead.
       Note that these values are always normalized and it's only possible
       to get a raw values using the `raw_value()` API.
    
    ### New Features (BREAKING)
    
     - Support for `lossy` load mode.
       There is a lot of breaking changes as `file::from_paths::Options` now
       became `file::init::Options`, and the same goes for the error type.
     - add `_filter()` versions to most access methods.
       That way it's possible to filter values by their origin.
       
       Note that the `remove_section()` methods now return the entire
       removed section, not just the body, which yields more information
       than before including section metadata.
     - section names are now validated.
     - filtering supportort for `parse::Events`.
       That way it's possible to construct Files which are not destined to be
       written back as they only keep events necessary for value access,
       greatly reducing allocations.
     - change mostily internal uses of [u8] to BString/BStr
     - Path-interpolation makes `home-dir` configurable.
       That way the caller has full control over how the environment is used,
       which also allows more fine-grained control over which config files
       can be included.
    
    ### Bug Fixes (BREAKING)
    
     - Simplify specifying keys when mutating config values.
     - `File::rename_section()` with validation of input arguments.
     - improve normalization; assure no extra copies are made on query.
       We now return our own content, rather than the originals with their
       lifetimes, meaning we bind lifetimes of returned values to our own
       `File` instance. This allows them to be referenced more often, and
       smarter normalization assures we don't copy in the simple cases
       either.
       
       More tests were added as well.
       This is breaking as lifetime changes can cause distruptions, and
       `values?_as()` was removed as well as it's somewhat duplicate
       to higher-level APIs and it wasn't tested at all.
     - Remove `git-config` test utilities from `git-path`.
    
    ### Other (BREAKING)
    
     - <csr-id-9cd99337333f5ef4b30e0ec9461fc087699576e6/> `File::raw_multi_value()` to `File::raw_values()`
     - <csr-id-0076dcf9b37f1d633bdad5573b40d34a9fbaba90/> `File::raw_multi_value_mut()` to `File::raw_values_mut()`
     - <csr-id-a8604a237782f8d60a185d4730db57bad81424a6/> `File::multi_value()` to `File::values()`.
       The latter is better in line with `string()/strings()`
    
    ### Commit Statistics
    
     - 314 commits contributed to the release over the course of 33 calendar days.
     - 39 days passed between releases.
     - 93 commits where understood as [conventional](https://www.conventionalcommits.org).
     - 1 unique issue was worked on: #331
    
    ### Thanks Clippy
    
    [Clippy](https://github.com/rust-lang/rust-clippy) helped 19 times to make code idiomatic. 
    
    ### Commit Details
    
     * **#331**
        - final documentation review + adjustments prior to release candidate (06b86e0)
        - refactor (4dc6594)
        - exclude particular assertion which fails on the linux CI. (5e0f889)
        - first sketch of using configuration and environment variables for author/committer (330d0a1)
        - remove `Permissions` as there is no need for that here. (1954ef0)
        - following includes is now non-fatal by default (1bc96bf)
        - Allow to skip non-existing input paths without error (989603e)
        - `File::from_git_dir()` as comfortable way to instantiate most complete git configuration. (f9ce1b5)
        - Add a way to load multiple configuration files without allocating a read buffer (acb4520)
        - refactor (ec21e95)
        - move `Env` test utility into `git-testtools` (bd3f4d0)
        - refactor (b073e29)
        - another failing tests that can't be fixed without a refactor (e4d8fd7)
        - an attempt to hack newline handling into place for windows newlines (dac1463)
        - Serialize lossily-read configuration files correctly anyway. (cfda0c3)
        - multi-path include test (3d89a46)
        - refactor (8a7fb15)
        - fix windows tests (fbcf40e)
        - finally proper whitespace handling in all the right places for perfect roundtripping to/from string (97e5ede)
        - serializations maintains some invariants about whitespace where possible. (ee10dd5)
        - refactor (9c248ee)
        - `File` now compares actual content, ignoring whitespace and comments. (14a68a6)
        - maintain insertion order of includes on per-section basis at least. (6c1588f)
        - allow insertion of sections while preserving order (f5580a3)
        - a test showing that include ordering isn't correct compared to the including config. (4e47df5)
        - add `File::resolve_includes()` and move its error type to `file::includes`. (17c83d5)
        - add `File::from_bytes_owned()` and remove `File::from_path_with_buf()` (5221676)
        - make it necessary to deal with the possibility of no-input in `from_paths_metadata()` . (612645f)
        - Don't fail on empty input on the comfort level (61ecaca)
        - `File::new_environment_overrides()` to easily instantiate overrides from the environment. (7dadfd8)
        - prepare for supporting comfortable version of environment overrides (45c964a)
        - remove `File::from_env_paths()`. (98d45c2)
        - `File::new_globals()` can instantiate non-local configuration with zero-configuration. (146eeb0)
        - Classify `Source` in accordance for what git actually does. (97374e4)
        - `Source::storage_location()` to know where files should be located. (e701e05)
        - `file::ValueMut::(section|into_section_mut)()` to go from value to the owning section. (fff0884)
        - `Source::is_in_repository()` to find out if a source is in the repository. (f5f2d9b)
        - `parse::key` to parse a `remote.origin.url`-like key to identify a value (91e718f)
        - maintain newline format depending on what's present or use platform default. (f7bd2ca)
        - prepare for passing through newline (3c06f88)
        - Add `File::detect_newline_style()`, which does at it says. (26147a7)
        - fix docs (78e85d9)
        - a test for lossy File parsing (5e8127b)
        - 'lossy' is now inherited by includes processing (88c6b18)
        - untangle `file::init::…` `Option` and `Error` types. (230a523)
        - Support for `lossy` load mode. (d003c0f)
        - :Events::from_bytes()` with `filter` support. (32d5b3c)
        - try to fix attributes, once more (a50a396)
        - `File::frontmatter()` and `File::sections_and_postmatter()`. (0ad1c9a)
        - add `_filter()` versions to most access methods. (1ea26d8)
        - even better handling of newlines (50c1753)
        - refactor (df94c67)
        - rename `parse::Comment::(comment_tag|comment)` to `::tag|text` and `parse::Section::section_header` to `::header`. (3f3ff11)
        - `parse::Event::to_bstr_lossy()` to get a glimpse at event content. (fc7e311)
        - finally fix newline behaviour (c70e135)
        - Be smarter about which newline style to use by guessing it based onprior events (25ed92e)
        - `File::append()` can append one file to another rather losslessly. (09966a8)
        - A test to validate frontmatter isn't currently handled correctly when appending (4665e87)
        - `file::Section::meta()` to access a section's metadata. (56ae574)
        - refactor (d60025e)
        - `File::sections()` to obtain an iterator over all sections, in order. (6f97bf0)
        - Associate `file::Metadata` with each `File`. (6f4eea9)
        - rename `file::SectionBody` to `file::section::Body`. (b672ed7)
        - Remove `File::sections_by_name_with_header()` as `::sections_by_name()` now returns entire sections. (3bea26d)
        - A way to more easily set interpolation even without following includes. (9aa5acd)
        - create `resolve_includes` options to make space for more options when loading paths. (41b3e62)
        - rename `path::Options` into `path::Context`. (cabc8ef)
        - try to fix attributes, once more (207e483)
        - validate incoming conifguration keys when interpreting envirnoment variables. (0d07ef1)
        - try to fix filter settings, but it doesn't seem to work (9750b7a)
        - sketch new section and metadata (9cb9acb)
        - add `Source` type to allow knowing where a particular value is from. (c92d5c6)
        - `Boolean` can use numbers to indicate true or false, drops support for `one` and `zero`. (6b90184)
        - All accessors in `File` are now using `impl AsRef<str>` where possible for added comfort. (3de0cfd)
        - Much more comfortable API `file::*Mut` types thanks to `impl Into/AsRef`. (3d25fe6)
        - Rename `Mutable*` into `$1Mut` for consistency. (393b392)
        - `file::MutableSection::remove()` now actually removes keys _and_ values. (94dde44)
        - many more tests for MutableSection (ac843cb)
        - refactor (701266e)
        - conform APIs of `file::MutableValue` and `file::MutableMultiValue`. (0a7391a)
        - `file::MutableMultiValue` escapes input values and maintains key separator specific whitespace. (048b925)
        - place spaces around `key = value` pairs, or whatever is used in the source configuration. (5418bc7)
        - avoid extra copies when setting values and escaping them (a7eff01)
        - refactor (15cd1d2)
        - more empty-value tests (511985a)
        - default space is just a single tab, not two ones (7e03b83)
        - proper escaping of value bytes to allow round-tripping after mutation (8118644)
        - refactor (afa736a)
        - a few tests for `MutableValue` showing that it's too buggy right now (5e6f9d9)
        - rename `file::MutableSection::set_leading_space()` to `set_leading_whitespace()`. (83a0922)
        - whitespace in newly pushed keys is derived from first section value. (9f59356)
        - `File::from_str()` implementation, to support `let config: File = "[core]".parse()?` (db1f34d)
        - whitespace in mutable sections can be finely controlled, and is derived from existing sections (9157717)
        - refactor (c88eea8)
        - refactor (a0d6caa)
        - auto-compute whitespace for sections, even though it probably needs to be better than that (ee9ac95)
        - validation for Keys and header names (59ec7f7)
        - Simplify specifying keys when mutating config values. (a93a156)
        - `File::rename_section()` with validation of input arguments. (895ce40)
        - re-add newlines after multi-line values (9a2f597)
        - more header escaping tests (12cf005)
        - Enforce `parse::section::Header::new()` by making its fields private. (219cf7a)
        - `parse::Header::new(…)` with sub-section name validation (ae3895c)
        - section names are now validated. (cfd974f)
        - prepare for validation of `parse::section::Header` (00592f6)
        - basic escaping of subsection names during serialization (00d1a9b)
        - refactor (9fac8e0)
        - new roundtrip test on file level (78bb93c)
        - Add `File::write_to()` and `File::to_bstring()`; remove some `TryFrom` impls. (4f6cd8c)
        - remove `Integer::to_bstring()` as well as some `TryFrom` impls. (0e392f8)
        - remove `Boolean::to_bstring()` along with a few `From` impls. (b22732a)
        - Add `parse::(Event|section::Header|Comment)::write_to(…)`. (d087f12)
        - fix tests on windows (3d7fc18)
        - value normalization (via `value::normalize()` handles escape sequences. (f911707)
        - refactor normalization and more tests (cf3bf4a)
        - more escape characters for normalization (b92bd58)
        - review docs of `file::mutating` (2d5703e)
        - stable sort order for `File::sections_by_name_with_header()` (44dfec0)
        - review `file::raw` module (6acf4a4)
        - don't over-normalize in comfort layer - all values are normalized now (b979a3b)
        - docs for comfort level File API (eafc6ce)
        - review and refactor 'File::value' module (7aa8a0b)
        - allocation free `File::sections_by_name()` and `File::sections_by_name_with_header()`. (65c520c)
        - refactor (2abffd6)
        - refactor (539c2f6)
        - refactor (f1668e9)
        - refactor (2599680)
        - refactor (879fad5)
        - fix docs (b2b82da)
        - once again zero-allocation for SectionBodyIter (ba69124)
        - refactor (33efef6)
        - docs and refactor (700d6aa)
        - `Path::interpolate()` now takes `path::interpolate::Options` instead of three parameters. (ac57c44)
        - refactor `from_env` (c8693f9)
        - make fmt (a7d7751)
        - more doc adjustments (95fc20a)
        - review docs of 'parse' module; refactor (a361c7f)
        - refactor (8e84fda)
        - `File::raw_multi_value()` to `File::raw_values()` (9cd9933)
        - `File::raw_multi_value_mut()` to `File::raw_values_mut()` (0076dcf)
        - `File::multi_value()` to `File::values()`. (a8604a2)
        - remove `String` type in favor of referring to the `File::string()` method. (0915051)
        - fix docs (8fa7600)
        - refactor (b78e3fa)
        - change! Add `home_for_user` in `Path::interpolate(…)`. (f9e0ef3)
        - Simplify `Boolean` to be a wrapper around `bool`. (9cadc6f)
        - Use bitflags for `color::Attribute` instead of `Vec` of enums. (703922d)
        - A bitflag version of color attributes (23ec673)
        - refactor (4f21d1e)
        - simplify `Color` API. (3fc4ac0)
        - deduplicate (c1b9cd4)
        - first tests for colors specifically; fix space between tokens (e2bd055)
        - count newlines (for error display) in multi-line values as well (1ea919d)
        - zero-copy for section names (25b9760)
        - prepare for copy-on-write subsections (7474997)
        - another normalization case (637fe8f)
        - allow backspaces in value parser (199e546)
        - another failing test pointing at issues with normalization/escaping in parser (3c29321)
        - found failing test with complex multi-line value (117401d)
        - review `git-config::File` docs and rename some internal symbols (5a8b111)
        - more correctness for sub-section parsing (910af94)
        - reduce top-level docs (cdfb13f)
        - refactor; remove unnecessary docs (c95e0b9)
        - assure no important docs are missed (f5026fb)
        - filtering supportort for `parse::Events`. (6ba2f80)
        - deduplicate events instantiation (ead757c)
        - unclutter lifetime declarations (e571fdb)
        - remove redundant documentation about errors (183c7ae)
        - adjust to changes in `git-config` (c52cb95)
        - remove `parse::Events::from_path` and `File::at` (14149ee)
        - try to strike a balance between allocations and memory footprint (52bd1e7)
        - allocation-free parsing as callback is passed through (ed00e22)
        - foundation for allocation free (and smallvec free) parsing (307c1af)
        - Slim down API surface of `parse::Events`. (73adcee)
        - remove `File::new()` method in favor of `File::default()`. (2e47167)
        - a greatly simplified Events->File conversion (c5c4398)
        - fix docs (5022be3)
        - about 30% faster parsing due to doing no less allocations for section events (050d0f0)
        - allocation-free fuzzing, with optimized footprints (2e149b9)
        - allocation-free sections (d3a0c53)
        - allocation-free frontmatter (6c3f326)
        - remove last duplicate of top-level parse function (cd7a21f)
        - workaround lack of GAT! (4fb327c)
        - remove duplication of top-level parser (0f5c99b)
        - a minimally invasive sketch of a parse Delegate (5958ffb)
        - fix docs (2186456)
        - fix fuzz crash in parser (86e1a76)
        - rename `parse::event::List` to `parse::Events` (ea67650)
        - rename `parse::State` to `parse::event::List` (89f5fca)
        - update fuzz instructions and make it work (19300d5)
        - improve normalization; assure no extra copies are made on query. (4a01d98)
        - refactor; assure `normalize` doesn't copy unnecessarily (ce069ca)
        - normalize values in all the right places (91ba2dd)
        - avoid unnecessary clones (e684488)
        - adapt to changes in `git-config` (363a826)
        - move `value::*` into the crate root, except for `Error` and `normalize_*()`. (3cdb089)
        - rename `value::parse::Error` to `value::Error`. (748d921)
        - rename `value::TrueVariant` to `value::boolean::True` (7e8a225)
        - rename `IntegerSuffix` to `integer::Suffix` (8bcaec0)
        - rename `value::Color(Attribute|Value)` to `value::color::Attribute` and `value::color::Name`. (d085037)
        - refactor (a0f7f44)
        - refactor (0845c84)
        - keep str in value API (ef5b48c)
        - Keep BStr even though str could be used. (aeca6cc)
        - Turn `parse::ParseOrIoError` into `parse::state::from_path::Error` (a0f6252)
        - rename `parse::ParsedComment` into `parse::Comment` (b6b31e9)
        - Allocation-free hashing for section keys and names (44d0061)
        - allocation-free case-inequality tests for section keys and names (94608db)
        - rename `parse::Section*` related types. (239cbfb)
        - adjustments required due to changed in `git-config` (41bfd3b)
        - rename `parse::Parser` to `parse::State`. (60af4c9)
        - rename `parser` module to `parse` (3724850)
        - fix docs (b05aed1)
        - refactor (8bd9cd6)
        - refactor (90dd2ce)
        - fix docs (0d1be2b)
        - rename `normalize_cow()` to `normalize()` and move all `normalize*` functions from `values` to the `value` module (58b2215)
        - Documentation for feature flags (26e4a9c)
        - `serde1` feature to add limited serde support (5a8f242)
        - remove unused serde feature (66a8237)
        - move `Path` from `values` to `value` module (767bedc)
        - Move `Boolean` and `String` from `values` into `value` module (6033f3f)
        - move `values::Integer` into `value` module (d4444e1)
        - move `Color` to own `value` module (38f3117)
        - Make symlink tests so that they test real-path conversion (d4fbf2e)
        - adjustments due to breaking changes in `git_path` (4420ae9)
        - a test to validate relative includepaths aren't valid for includeIf (7d27dd5)
        - reuse the initialized environment for a little speed (6001613)
        - Also test against git baseline (adcddb0)
        - refactor (0229e25)
        - prevent race when calling `git` around `GIT_CONFIG_*` env vars (53efbf5)
        - remove duplicate gitdir tests that don't have a baseline (5c71394)
        - remove unmotivated forward-slash conversion (3af09e5)
        - improved slash/backslash handling on windows (a3b7828)
        - fix build warnings on windows (9d48b2f)
        - fix windows test (a922f0a)
        - refactor (d76aee2)
        - conforming subsection parsing handling backslashes like git (6366148)
        - Only copy pattern if required (b3a752a)
     * **Uncategorized**
        - Release git-hash v0.9.6, git-features v0.22.0, git-date v0.0.2, git-actor v0.11.0, git-glob v0.3.1, git-path v0.4.0, git-attributes v0.3.0, git-tempfile v2.0.2, git-object v0.20.0, git-ref v0.15.0, git-sec v0.3.0, git-config v0.6.0, git-credentials v0.3.0, git-diff v0.17.0, git-discover v0.3.0, git-index v0.4.0, git-mailmap v0.3.0, git-traverse v0.16.0, git-pack v0.21.0, git-odb v0.31.0, git-url v0.7.0, git-transport v0.19.0, git-protocol v0.18.0, git-revision v0.3.0, git-worktree v0.4.0, git-repository v0.20.0, git-commitgraph v0.8.0, gitoxide-core v0.15.0, gitoxide v0.13.0, safety bump 22 crates (4737b1e)
        - prepare changelog prior to release (3c50625)
        - thanks clippy (fddc720)
        - thanks fuzzy (15a379a)
        - thanks clippy (15fee74)
        - thanks clippy (0b05be8)
        - thanks clippy (693e304)
        - fix git-config/tests/.gitattributes (a741766)
        - Merge branch 'config-metadata' (453e9bc)
        - forced checkin to fix strange crlf issue (5d0a5c0)
        - thanks clippy (e5ba0f5)
        - thanks clippy (00bfbca)
        - thanks clippy (09e2374)
        - thanks clippy (e842633)
        - thanks clippy (3ca8027)
        - make fmt (aa9fdb0)
        - thanks clippy (c9a2390)
        - thanks clippy (badd00c)
        - make fmt (0700b09)
        - thanks clippy (b246f0a)
        - thanks clippy (08441de)
        - thanks clippy (8b29dda)
        - thanks clippy (cff6e01)
        - thanks clippy (f7be3b0)
        - thanks clippy (7a2a31e)
        - Allow backslashes in subsections (6f4f325)
        - fix build after changes to `git-url` and `git-config` (1f02420)
        - thanks clippy (9b6a67b)
        - remove `values::Bytes` - use `values::String` instead. (aa630ad)
        - change mostily internal uses of [u8] to BString/BStr (311d4b4)
        - Definitely don't unconditionally convert to forward slashes (146eb0c)
        - avoid panics and provide errors instead of just not matching (a0f842c)
        - try to fix git-config tests on windows even harder (16778d4)
        - try once more to get failing tests under control on windows (c26c2e9)
        - thanks clippy (27b2dde)
        - fix test with brute force; take some notes for later (2eda529)
        - Merge branch 'main' into cont_include_if (daa71c3)
        - Take GitEnv by ref. (937d7ee)
        - remove leftover debug printing (7d1cf34)
        - auto-normalize string values to support quote removal in case of strings. (1e71e71)
        - refactor (1d6ba9b)
        - avoid unwrap() more as the test code matures (c2d7e80)
        - refactor (b5c0b30)
        - Merge branch 'main' into cont_include_if (0e9df36)
        - make '..' related tests work (5f11318)
        - find a few cases that aren't according to spec by failing (and ignored) tests (f0e6ea9)
        - refactor (62e5396)
        - generally avoid using `target_os = "windows"` in favor of `cfg(windows)` and negations (91d5402)
        - Invoke git only when necessary (556c7cf)
        - Also use git_path::realpath() in other places that used canonicalize before (08af648)
        - Our own git_path::realpath doesn't have the questionmark? issue on windows (cfe196b)
        - fix windows tests (47f10fe)
        - more debugging for windows failures (e0a72e6)
        - no need for serial anymore (34bb715)
        - Make a note to be sure we use the home-dir correctly in git-repository; avoid `dirs` crate (0e8cf19)
        - finally all tests work without the need for dirs::home_dir() (180ce99)
        - refactor (00ba5d8)
        - refactor (0eb7ced)
        - Path-interpolation makes `home-dir` configurable. (edd2267)
        - refactor (aab9865)
        - Change last test to new simplified symlink  setup (a40e3c9)
        - refactor (67677b0)
        - assure the IDE doesn't confuse a module with a test (7be0b05)
        - refactor (1203a14)
        - refactor (a721efe)
        - refactor (2c8c6e5)
        - refactor (eb0ace1)
        - refactor (8f8f873)
        - Merge branch 'main' into cont_include_if (41ea8ba)
        - Release git-path v0.3.0, safety bump 14 crates (400c9be)
        - Remove `git-config` test utilities from `git-path`. (c9933c0)
        - Add repo_dir to EnvOverwrite. (ed5c442)
        - Use EnvOverwrite struct. (f2e124f)
        - tempdir lives long enough for sure. (a41002f)
        - Disable symlink tests on windows. (8de6b3d)
    
    
  • git-sec-v0.3.0

    ### New Features
    
     - Support for SUDO_UID as fallback for ownership check on unix.
    
    ### Bug Fixes
    
     - on windows, emit a `NotFound` io error, similar to what happens on unix.
       That way code relying on this behaviour will work the same on both
       platforms.
       
       On windows, this costs at an additional metadata check.
    
    ### Commit Statistics
    
     - 6 commits contributed to the release over the course of 33 calendar days.
     - 39 days passed between releases.
     - 2 commits where understood as [conventional](https://www.conventionalcommits.org).
     - 1 unique issue was worked on: #331
    
    ### Commit Details
    
     * **#331**
        - on windows, emit a `NotFound` io error, similar to what happens on unix. (9a1e982)
        - fix build after breaking changes in `git-path` (34aed2f)
     * **Uncategorized**
        - prepare changelog prior to release (3c50625)
        - assure document-features are available in all 'usable' and 'early' crates (238581c)
        - Support for SUDO_UID as fallback for ownership check on unix. (3d16c36)
        - Release git-path v0.3.0, safety bump 14 crates (400c9be)