Tags

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

    ### New Features
    
     - more efficient distribution of tasks to threads during pack resolution.
       This clearly is a peak-performance optimization as it will now
       efficiently distribut tree-root nodes to threads one at a time by
       means of shared memory, which is accessed mutably yet safely.
       
       This change can also further reduce peak memory usage as it will not
       keep buffers of more resolved deltas then necessary, as it only handles
       one at a time per thread.
    
    ### Bug Fixes
    
     - reduce memory usage for pack resolution by 18%…
       …compared to where it started out before.
       
       This is the result of using u32 intead of usize where possible,
       leveraging the object limit of u32 in packs.
       
       This change makes the biggest difference by not keeping the decompressed
       memory of leaf nodes alive for longer than needed, at the cost of
       some code duplication which could be extracted into a function if one
       was inclined to deal with the boilerplate and lots of generics.
     - Allow verification of empty packs and indices.
       Empty packs are fine, even though the implementation should probably
       assure to not write them, or remove them after having been written.
     - increase pack-receive performance using a BufWriter
       Previously the NamedTempFile would receive every little write request
       for millions of objects, consuming considerable amounts of time.
       
       Now a buf writer alleviates this issue entirely.
     - `bundle::write::Error` is now publicly available
    
    ### Bug Fixes (BREAKING)
    
     - Reading and writing empty packs is explicitly allowed.
       This can happen when sending packs that don't actually contain changes,
       but need to be sent to conform to the protocol.
    
    ### Other (BREAKING)
    
     - <csr-id-b46347fd3d50886eeca500e31e1e12b354711309/> `index::write::Outcome::index_kind` -> `::index_version`.
     - <csr-id-591afd56d9862a6348ef8b3af61798004b36aa19/> `bundle::write::Options::index_kind` -> `::index_version`.
    
    ### Commit Statistics
    
     - 32 commits contributed to the release over the course of 20 calendar days.
     - 20 days passed between releases.
     - 8 commits were understood as [conventional](https://www.conventionalcommits.org).
     - 1 unique issue was worked on: #450
    
    ### Thanks Clippy
    
    [Clippy](https://github.com/rust-lang/rust-clippy) helped 2 times to make code idiomatic. 
    
    ### Commit Details
    
     * **#450**
        - prefix created pack files with `pack-` (e489b10)
        - increase pack-receive performance using a BufWriter (a745512)
        - `index::write::Outcome::index_kind` -> `::index_version`. (b46347f)
        - add test to show that empty packs won't be written as expected behaviour. (72ce7fd)
        - `bundle::write::Error` is now publicly available (0b6ed60)
        - `bundle::write::Options::index_kind` -> `::index_version`. (591afd5)
     * **Uncategorized**
        - prepare changelogs for release (d232567)
        - Merge branch 'fix-smart-release' (aa80b60)
        - make fmt (7b9c065)
        - Merge branch 'main' into new-http-impl (702a161)
        - Merge branch 'main' into clone (acb0738)
        - Merge branch 'delta-tree-parallelization' (cca2ad5)
        - Don't enforce Send bounds in serial version of `in_parallel_with_slice()` (dda661e)
        - thanks clippy (583f2ca)
        - more efficient distribution of tasks to threads during pack resolution. (6836cb1)
        - refactor (0e2ca47)
        - Try to use counters directly in delta-tree resolution (c6ded26)
        - reduce memory usage for pack resolution by 18%… (ec58bef)
        - Merge branch 'reduce-pack-resolve-mem-consumption' (a8ced57)
        - minor refactor after trying more memory foot-print related changes (5852334)
        - simplify size-related tests (fb2b2a8)
        - cut the size of bytes needed to store children in half for a lower footprint (38c96f2)
        - Merge branch 'crates-index-diff-fixes' (b09bad7)
        - thanks clippy (851bc79)
        - Allow verification of empty packs and indices. (49d168a)
        - refactor (38a7452)
        - Reading and writing empty packs is explicitly allowed. (5a75afe)
        - make fmt (53acf25)
        - Merge branch 'fetch-pack' (f47c891)
        - Merge branch 'fetch-pack' (3c49400)
        - Merge branch 'fix-git-features' (82fd251)
        - Merge branch 'diff' (25a7726)
  • git-mailmap-v0.5.0

    Maintenance release without user-facing changes.
    
    ### Commit Statistics
    
     - 4 commits contributed to the release over the course of 20 calendar days.
     - 20 days passed between releases.
     - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Commit Details
    
     * **Uncategorized**
        - prepare changelogs for release (d232567)
        - Merge branch 'main' into new-http-impl (702a161)
        - make fmt (53acf25)
        - Merge branch 'diff' (25a7726)
  • git-index-v0.6.0

    Maintenance release without user-facing changes.
    
    ### Commit Statistics
    
     - 5 commits contributed to the release over the course of 20 calendar days.
     - 20 days passed between releases.
     - 0 commits were 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**
        - prepare changelogs for release (d232567)
        - Merge branch 'main' into fetch-pack (d686020)
        - thanks clippy (b9937ad)
        - Merge branch 'fix-git-features' (82fd251)
        - Merge branch 'diff' (25a7726)
  • git-traverse-v0.18.0

    ### New Features
    
     - add `commit::Sorting::ByCommitTimeNewestFirstCutoffOlderThan(time)`.
       It allows to stop traversals early if all commmits to be traversed are
       older than a given time.
    
    ### Commit Statistics
    
     - 7 commits contributed to the release over the course of 20 calendar days.
     - 20 days passed between releases.
     - 1 commit was understood as [conventional](https://www.conventionalcommits.org).
     - 1 unique issue was worked on: #450
    
    ### Commit Details
    
     * **#450**
        - add `commit::Sorting::ByCommitTimeNewestFirstCutoffOlderThan(time)`. (86a99a9)
     * **Uncategorized**
        - prepare changelogs for release (d232567)
        - Merge branch 'main' into new-http-impl (702a161)
        - make fmt (53acf25)
        - Merge branch 'fetch-pack' (f47c891)
        - first test to validate new sort-by-date with cutoff sorting mode (breaking) (0699c7e)
        - Merge branch 'diff' (25a7726)
  • git-discover-v0.6.0

    Maintenance release without user-facing changes.
    
    ### Commit Statistics
    
     - 7 commits contributed to the release over the course of 20 calendar days.
     - 20 days passed between releases.
     - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
     - 1 unique issue was worked on: #544
    
    ### Commit Details
    
     * **#544**
        - Fix a test that assumed a non-worktree parent repo. (1908229)
     * **Uncategorized**
        - prepare changelogs for release (d232567)
        - Merge branch 'main' into new-http-impl (702a161)
        - Merge branch 'fix-544' (a0dd96b)
        - Merge branch 'main' into fetch-pack (93917cb)
        - Don't run typically failing MacOS specific test on CI anymore (6c9d18b)
        - Merge branch 'diff' (25a7726)
  • git-diff-v0.20.0

    Maintenance release without user-facing changes.
    
    ### Commit Statistics
    
     - 4 commits contributed to the release over the course of 20 calendar days.
     - 20 days passed between releases.
     - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Commit Details
    
     * **Uncategorized**
        - prepare changelogs for release (d232567)
        - Merge branch 'main' into new-http-impl (702a161)
        - make fmt (53acf25)
        - Merge branch 'diff' (25a7726)
  • git-credentials-v0.6.0

    Maintenance release without user-facing changes.
    
    ### Commit Statistics
    
     - 2 commits contributed to the release over the course of 20 calendar days.
     - 20 days passed between releases.
     - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Commit Details
    
     * **Uncategorized**
        - prepare changelogs for release (d232567)
        - Merge branch 'diff' (25a7726)
  • git-url-v0.10.0

    ### New Features
    
     - `Url::try_from(path: &std::path::Path)` for more convenient instantiation.
     - (mostly) lossless roundtripping of scp-like urls.
       Previously `git@host:path` would turn into `ssh://git@host/path`,
       which now remains exactly as is.
     - lossless serialization of file urls.
       Previously a url like `/path/to/repo` would serialize to
       `file:///path/to/repo`, preventing round-trips.
       
       Now it serializes like it was parsed. This also means that
       `file://path` still serializes as `file://path`.
    
    ### Commit Statistics
    
     - 8 commits contributed to the release over the course of 20 calendar days.
     - 20 days passed between releases.
     - 3 commits were understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Commit Details
    
     * **Uncategorized**
        - prepare changelogs for release (d232567)
        - Merge branch 'clone' (507dc7e)
        - `Url::try_from(path: &std::path::Path)` for more convenient instantiation. (22d3b37)
        - more assurance we understand how relative paths in scp-like urls work (5926322)
        - (mostly) lossless roundtripping of scp-like urls. (39ce98b)
        - lossless serialization of file urls. (58a6000)
        - Merge branch 'fix-git-features' (82fd251)
        - Merge branch 'diff' (25a7726)
  • git-config-v0.9.0

    ### New Features
    
     - add `parse::section::header::is_valid_subsection()` function.
       It can be useful to validate subsection names without having to
       construct an entire `Header` (which also includes a name).
     - Add various methods to iterate sections along with their id, and mutate them.
       As section names are not unique, it was previously not possible to
       iterate sections and then mutate them as one wouldn't be able to refer
       to the exact section that was just traversed, after all, there can be
       many sections named `remote "origin"`.
       
       With the new methods it's possible to uniquely refer to each section
       for mutation and removal.
    
    ### Bug Fixes
    
     - greatly improve whitespace handling when removing values.
       Previously, newlines would remain past a value, and whitespace could
       remain before one.
       
       Now both are removed to simulate removing an actual line.
     - `File::remove_section()` was fixed to allow re-adding a similarly named section.
       We also add `File::remove_section_by_id()` to make it possible to remove
       specific sections.
    
    ### Commit Statistics
    
     - 14 commits contributed to the release over the course of 20 calendar days.
     - 20 days passed between releases.
     - 4 commits were understood as [conventional](https://www.conventionalcommits.org).
     - 1 unique issue was worked on: #450
    
    ### Commit Details
    
     * **#450**
        - adapt to changes in `git-ref` (d40beb3)
     * **Uncategorized**
        - prepare changelogs for release (d232567)
        - Merge branch 'fix-smart-release' (aa80b60)
        - make fmt (7b9c065)
        - Merge branch 'clone' (507dc7e)
        - add `parse::section::header::is_valid_subsection()` function. (aa5d66f)
        - greatly improve whitespace handling when removing values. (9c1e639)
        - Add various methods to iterate sections along with their id, and mutate them. (5df2a2a)
        - `File::remove_section()` was fixed to allow re-adding a similarly named section. (e533993)
        - improve clarity docs related to mutating sections (769e897)
        - Merge branch 'main' into new-http-impl (702a161)
        - Merge branch 'fetch-pack' (3c49400)
        - Merge branch 'fix-git-features' (82fd251)
        - Merge branch 'diff' (25a7726)
  • git-sec-v0.4.1

    Maintenance release without user-facing changes.
    
    ### Commit Statistics
    
     - 3 commits contributed to the release over the course of 20 calendar days.
     - 20 days passed between releases.
     - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Commit Details
    
     * **Uncategorized**
        - prepare changelogs for release (d232567)
        - Merge branch 'fix-git-features' (82fd251)
        - Merge branch 'diff' (25a7726)
  • git-ref-v0.17.0

    ### New Features
    
     - `transaction::Change::new_value()` to get easy access to new values of references.
       That's more convenient than matching on the enum.
     - `FullName::try_from(&BString)` for convenience.
       Sometimes when matching one only has a `&BString`, and it's hard to
       convert it to `&BStr` without an extra line of code, it's cumbersome,
       so we workaround by adding another conversion.
    
    ### Changed (BREAKING)
    
     - `file::Transaction::prepare()` now takes two `git_lock::acquisition::Fail` instances.
       This allows to configure the file-ref lock failure mode differently from
       the packed-refs lock failure mode, which is exactly what `git` does as
       well defaulting them to 100ms and 1000ms till lock acquisition gives up.
    
    ### Commit Statistics
    
     - 10 commits contributed to the release over the course of 20 calendar days.
     - 20 days passed between releases.
     - 3 commits were understood as [conventional](https://www.conventionalcommits.org).
     - 1 unique issue was worked on: #450
    
    ### Commit Details
    
     * **#450**
        - `transaction::Change::new_value()` to get easy access to new values of references. (370ed3d)
        - `file::Transaction::prepare()` now takes two `git_lock::acquisition::Fail` instances. (e699291)
        - `FullName::try_from(&BString)` for convenience. (658c125)
        - Improve docs slightly (4850202)
     * **Uncategorized**
        - prepare changelogs for release (d232567)
        - Merge branch 'main' into new-http-impl (702a161)
        - make fmt (53acf25)
        - Merge branch 'fetch-pack' (3c49400)
        - Merge branch 'fix-git-features' (82fd251)
        - Merge branch 'diff' (25a7726)
  • git-object-v0.22.0

    ### New Features
    
     - add `tree::EntryMode::is_blob()` to quickly determine if an entry is a blob.
    
    ### Bug Fixes
    
     - don't panic if broken loose objects are encountered.
       Previously a loose object could advertise any object size and cause a
       panic if it was shorter than advertised.
       Now an error will be returned.
    
    ### Commit Statistics
    
     - 10 commits contributed to the release over the course of 20 calendar days.
     - 20 days passed between releases.
     - 2 commits were understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Commit Details
    
     * **Uncategorized**
        - prepare changelogs for release (d232567)
        - Merge branch 'main' into new-http-impl (702a161)
        - Merge branch 'main' into fetch-pack (93917cb)
        - Merge branch 'fix-loose-parsing' (1dc2a5d)
        - don't panic if broken loose objects are encountered. (2df3c73)
        - Don't panic on too short loose object (c89c7ff)
        - Merge branch 'fix-git-features' (82fd251)
        - Merge branch 'main' into fix-odb-race (30712dc)
        - add `tree::EntryMode::is_blob()` to quickly determine if an entry is a blob. (5095df9)
        - Merge branch 'diff' (25a7726)
  • git-attributes-v0.5.0

    Maintenance release without user-facing changes.
    
    ### Commit Statistics
    
     - 3 commits contributed to the release over the course of 20 calendar days.
     - 20 days passed between releases.
     - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Commit Details
    
     * **Uncategorized**
        - prepare changelogs for release (d232567)
        - Merge branch 'fix-git-features' (82fd251)
        - Merge branch 'diff' (25a7726)
  • git-actor-v0.13.0

    Maintenance release without user-facing changes.
    
    ### Commit Statistics
    
     - 3 commits contributed to the release over the course of 20 calendar days.
     - 20 days passed between releases.
     - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Commit Details
    
     * **Uncategorized**
        - prepare changelogs for release (d232567)
        - Merge branch 'fix-git-features' (82fd251)
        - Merge branch 'diff' (25a7726)
  • git-features-v0.23.0

    ### New Features
    
     - perfect granularity for threads processing with `in_parallel_with_slice()`
     - add `progress::Step|StepShared` as types of `prodash`
       This may help to use the `Progress::counter()` method as part of method
       signatures, being an `Option<progress::StepShared>`.
    
    ### Changed (BREAKING)
    
     - remove `fs-jwalk-single-threaded` in favor of `fs-walkdir-parallel`.
       This way, `jwalk` and the dependencies (and troubles) it brings have to
       be opted in, but also allow other users to actually opt out while
       allowing the `parallel` feature to be in effect.
       
       In other words, previously the `parallel` feature conflated `jwalk`
       dependencies into the tree, which isn't the case anymore.
    
    ### New Features (BREAKING)
    
     - make jwalk fully optional
    
    ### Commit Statistics
    
     - 13 commits contributed to the release over the course of 20 calendar days.
     - 20 days passed between releases.
     - 4 commits were understood as [conventional](https://www.conventionalcommits.org).
     - 0 issues like '(#ID)' where seen in commit messages
    
    ### Commit Details
    
     * **Uncategorized**
        - prepare changelogs for release (d232567)
        - remove `fs-jwalk-single-threaded` in favor of `fs-walkdir-parallel`. (38446dc)
        - make jwalk fully optional (3b29fc1)
        - Merge branch 'main' into new-http-impl (702a161)
        - Merge branch 'main' into clone (acb0738)
        - Merge branch 'delta-tree-parallelization' (cca2ad5)
        - Don't enforce Send bounds in serial version of `in_parallel_with_slice()` (dda661e)
        - Allow discarding the state which could otherwise be used for aggregation. (56792fb)
        - allow input for `in_parallel_with_slice` to be mutable. (e928bf7)
        - perfect granularity for threads processing with `in_parallel_with_slice()` (a7c11d2)
        - add `progress::Step|StepShared` as types of `prodash` (ff1db66)
        - Merge branch 'fix-git-features' (82fd251)
        - Merge branch 'diff' (25a7726)
  • git-hash-v0.9.11

    Maintenance release without user-facing changes.
    
    ### Commit Statistics
    
     - 4 commits contributed to the release over the course of 20 calendar days.
     - 20 days passed between releases.
     - 0 commits were 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**
        - prepare changelogs for release (d232567)
        - Merge branch 'main' into fetch-pack (d686020)
        - thanks clippy (b9937ad)
        - Merge branch 'diff' (25a7726)
  • v0.16.0

    ### Changed
    
     - `ein tool hours -s` was split into `-f|--file-stats` and `-l|line-stats`.
       That way more information is generated at increasingly high costs.
    
    ### New Features
    
     - `ein tool hours --stat` to collect additional statistics per author.
       Note that these are expensive and unconditionally use threads to speed
       up these computations.
     - `ein tool hours -b` ignores bots.
       For now it only considers bots with names containing `[bot]`.
    
    ### Commit Statistics
    
     - 26 commits contributed to the release over the course of 27 calendar days.
     - 27 days passed between releases.
     - 3 commits were understood as [conventional](https://www.conventionalcommits.org).
     - 2 unique issues were worked on: #450, #470
    
    ### Commit Details
    
     * **#450**
        - refactor (11851f3)
        - option to print server information about the connection (4720666)
        - show fixes as well (2237495)
        - Correct printing of tag information (even though it doesn't look great) (f4d8198)
        - wire up the `ref-map` sub-command. (94c2b78)
        - Select `gix` commands will now load the git installation configuration (23d2dec)
        - refactor (7abc0a3)
        - Add sketch of `gix credential` (642e21f)
     * **#470**
        - `ein tool hours -s` was split into `-f|--file-stats` and `-l|line-stats`. (3c7c9a7)
        - upgrade to prodash 20.1 for `Progress::counter()` feature (0ac4a2c)
        - `ein tool hours --stat` to collect additional statistics per author. (28c4cae)
     * **Uncategorized**
        - use rev-specs instead of ref-names (cf7182e)
        - `ein tool hours -b` ignores bots. (5d0332f)
        - Merge branch 'index-from-tree' (172f73c)
        - make fmt (535e967)
        - Merge branch 'main' into filter-refs-by-spec (9aa1d3d)
        - Merge branch 'main' into filter-refs-by-spec (1f6e5ab)
        - Merge branch 'git_date_parse' (75591fb)
        - Merge branch 'main' into filter-refs-by-spec (51dc828)
        - Merge branch 'macos-exfat' (f256f8f)
        - Merge branch 'main' into filter-refs-by-spec (56ba481)
        - A basic implementation of rev-list without anything fancy (791dd66)
        - Merge branch 'main' into filter-refs-by-spec (a36c05d)
        - Merge branch 'main' into filter-refs-by-spec (cef0b51)
        - Merge branch 'main' into filter-refs-by-spec (dbfa328)
        - Merge branch 'main' into filter-refs-by-spec (cfa1440)
  • gitoxide-core-v0.18.0

    ### Changed
    
     - `ein tool hours -s` was split into `-f|--file-stats` and `-l|line-stats`.
       That way more information is generated at increasingly high costs.
    
    ### New Features
    
     - `ein tool hours -s` shows statistics about files added/removed/modified.
     - `ein tool hours --stat` to collect additional statistics per author.
       Note that these are expensive and unconditionally use threads to speed
       up these computations.
     - `ein tool hours` is (even) faster and uses half the peak memory.
       On the linux kernel, this causes a peak memory usage of 120MB, whereas
       git hovers at 1.4GB.
     - `ein tool hours -b` ignores bots.
       For now it only considers bots with names containing `[bot]`.
     - `ein tool hours -p` now shows the percentage of hours worked as well.
       That way it's easier to tell how much time was invested per author.
     - `protocol::Context::to_bstring()`, and use it in `example/git-credential-lite`
    
    ### New Features (BREAKING)
    
     - `git-diff` is now included by default as part of core functionality
    
    ### Commit Statistics
    
     - 70 commits contributed to the release over the course of 27 calendar days.
     - 27 days passed between releases.
     - 8 commits were understood as [conventional](https://www.conventionalcommits.org).
     - 3 unique issues were worked on: #450, #470, #XXX
    
    ### Commit Details
    
     * **#450**
        - refactor (11851f3)
        - option to print server information about the connection (4720666)
        - don't print tags as target, as it's misleading (098961f)
        - nicer printing of fixes (fec6db8)
        - adapt to changes in `git-refspec` (91d1a3a)
        - show fixes as well (2237495)
        - Correct printing of tag information (even though it doesn't look great) (f4d8198)
        - better refmap printing (6f60a79)
        - first basic implementation of `ref-map` (4dbfa4c)
        - wire up the `ref-map` sub-command. (94c2b78)
        - adjust to changes in `git-protocol` (06d45ff)
        - remove quick-error in favor of thiserror (ea84e62)
        - Use repository configuration for calling credential helper (8e07784)
        - refactor (7abc0a3)
        - Add sketch of `gix credential` (642e21f)
        - `protocol::Context::to_bstring()`, and use it in `example/git-credential-lite` (15f1afc)
        - adjust to deal with changes to git-repository (b99b6bf)
        - adjust to changes in `git-credentials` (dc32898)
        - adjust to changes in `git-credentials` (cabe40a)
     * **#470**
        - update changelogs prior to release (caa7a1b)
        - percentages for files and lines added (bf63a13)
        - only diff files that are probably not a binary file (as per extension). (2a3c5b0)
        - replace `flume` with `crossbeam-channel` as it's already in the dependency graph (e27b65a)
        - refactor (e3e3211)
        - make stat extractions interruptable (cb53324)
        - collect changes lines as well (84eb777)
        - show discovered file chnages in real-time (0614318)
        - `ein tool hours -s` was split into `-f|--file-stats` and `-l|line-stats`. (3c7c9a7)
        - avoid binary search if there is nothing to find (ffd4f0f)
        - `ein tool hours -s` shows statistics about files added/removed/modified. (b8f2f8b)
        - working progress printing (67ec2c7)
        - First attempt to get progress information from stat worker. (0947c70)
        - `ein tool hours --stat` to collect additional statistics per author. (28c4cae)
     * **#XXX**
        - `git-diff` is now included by default as part of core functionality (e090f84)
     * **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)
        - Speed up `ein t hours` even more by optimizing `git-mailmap`. (2549195)
        - `ein tool hours` is (even) faster and uses half the peak memory. (4d0977d)
        - ein t hours: introduce string heap for cutting peak memory in half (d79133b)
        - prepare for deduplicating strings (98465a6)
        - remove rayon in favor of a simple worker thread (5d70f87)
        - use rev-specs instead of ref-names (cf7182e)
        - make fmt (429cccc)
        - `ein tool hours -b` ignores bots. (5d0332f)
        - `ein tool hours -p` now shows the percentage of hours worked as well. (f28783b)
        - Merge branch 'filter-refs' (fd14489)
        - Merge branch 'index-from-tree' (172f73c)
        - use rev_parse_single() instead of rev_parse().single() (09948a5)
        - Merge branch 'git_date_relative' (83a3832)
        - Merge branch 'filter-refs' (e10554d)
        - remove explicit `git-features` crate (c41c94b)
        - remove `git-config` dependency (cf63d87)
        - remove unnecessary git-date dependency (cbc9ba9)
        - gix rev parse uses ISO8601 time format. (efefac4)
        - make fmt (535e967)
        - 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)
        - Merge branch 'main' into filter-refs-by-spec (1f6e5ab)
        - Merge branch 'git_date_parse' (75591fb)
        - Merge branch 'main' into filter-refs-by-spec (51dc828)
        - Release git-diff v0.18.1, git-discover v0.4.2, git-traverse v0.16.4, git-repository v0.23.1 (2571831)
        - Merge branch 'macos-exfat' (f256f8f)
        - Merge branch 'main' into filter-refs-by-spec (56ba481)
        - Make sure we start out at a commit for the traversal to work (ce01093)
        - A basic implementation of rev-list without anything fancy (791dd66)
        - Merge branch 'main' into filter-refs-by-spec (a36c05d)
        - Merge branch 'main' into filter-refs-by-spec (cef0b51)
        - Release git-object v0.20.3, git-ref v0.15.4, git-config v0.7.1, git-diff v0.18.0, git-traverse v0.16.3, git-pack v0.22.0, git-odb v0.32.0, git-url v0.7.3, git-transport v0.19.3, git-protocol v0.19.1, git-refspec v0.1.1, git-repository v0.23.0, safety bump 6 crates (85a3bed)
        - Release git-features v0.22.3, git-revision v0.4.4 (c2660e2)
        - Merge branch 'main' into filter-refs-by-spec (dbfa328)
        - Merge branch 'main' into filter-refs-by-spec (cfa1440)
  • git-commitgraph-v0.9.0

    ### Changed (BREAKING)
    
     - upgrade `bstr` to `1.0.1`
    
    ### Commit Statistics
    
     - 8 commits contributed to the release over the course of 24 calendar days.
     - 27 days passed between releases.
     - 1 commit was understood as [conventional](https://www.conventionalcommits.org).
     - 2 unique issues were worked on: #450, #470
    
    ### Commit Details
    
     * **#450**
        - upgrade `bstr` to `1.0.1` (99905ba)
     * **#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)
        - Merge branch 'index-from-tree' (172f73c)
        - Release git-features v0.22.4, git-url v0.8.0, safety bump 4 crates (1d4600a)
        - Merge branch 'git_date_parse' (75591fb)
        - Release git-hash v0.9.9 (da0716f)
        - Release git-features v0.22.3, git-revision v0.4.4 (c2660e2)
  • git-repository-v0.24.0

    ### 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)