Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.38.0 (2023-10-12)

A maintenance release without user-facing changes.

Commit Statistics

  • 3 commits contributed to the release over the course of 6 calendar days.
  • 17 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

0.37.0 (2023-09-24)

A maintenance release without user-facing changes.

Commit Statistics

  • 2 commits contributed to the release.
  • 16 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-features v0.35.0, gix-actor v0.27.0, gix-object v0.37.0, gix-glob v0.13.0, gix-attributes v0.19.0, gix-filter v0.5.0, gix-fs v0.7.0, gix-commitgraph v0.21.0, gix-revwalk v0.8.0, gix-traverse v0.33.0, gix-worktree-stream v0.5.0, gix-archive v0.5.0, gix-tempfile v10.0.0, gix-lock v10.0.0, gix-ref v0.37.0, gix-config v0.30.0, gix-url v0.24.0, gix-credentials v0.20.0, gix-diff v0.36.0, gix-discover v0.25.0, gix-ignore v0.8.0, gix-index v0.25.0, gix-mailmap v0.19.0, gix-negotiate v0.8.0, gix-pack v0.43.0, gix-odb v0.53.0, gix-pathspec v0.3.0, gix-transport v0.37.0, gix-protocol v0.40.0, gix-revision v0.22.0, gix-refspec v0.18.0, gix-status v0.1.0, gix-submodule v0.4.0, gix-worktree v0.26.0, gix-worktree-state v0.3.0, gix v0.54.0, gitoxide-core v0.32.0, gitoxide v0.30.0, safety bump 37 crates (7891fb1)
    • Prepare changelogs prior to release (8a60d5b)

0.36.0 (2023-09-08)

Bug Fixes (BREAKING)

  • use dyn trait where possible. This reduces compile time due to avoiding duplication.

Commit Statistics

  • 7 commits contributed to the release over the course of 17 calendar days.
  • 17 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-date v0.8.0, gix-hash v0.13.0, gix-features v0.34.0, gix-actor v0.26.0, gix-object v0.36.0, gix-path v0.10.0, gix-glob v0.12.0, gix-attributes v0.18.0, gix-packetline-blocking v0.16.6, gix-filter v0.4.0, gix-fs v0.6.0, gix-commitgraph v0.20.0, gix-hashtable v0.4.0, gix-revwalk v0.7.0, gix-traverse v0.32.0, gix-worktree-stream v0.4.0, gix-archive v0.4.0, gix-config-value v0.14.0, gix-tempfile v9.0.0, gix-lock v9.0.0, gix-ref v0.36.0, gix-sec v0.10.0, gix-config v0.29.0, gix-prompt v0.7.0, gix-url v0.23.0, gix-credentials v0.19.0, gix-diff v0.35.0, gix-discover v0.24.0, gix-ignore v0.7.0, gix-index v0.24.0, gix-macros v0.1.0, gix-mailmap v0.18.0, gix-negotiate v0.7.0, gix-pack v0.42.0, gix-odb v0.52.0, gix-pathspec v0.2.0, gix-packetline v0.16.6, gix-transport v0.36.0, gix-protocol v0.39.0, gix-revision v0.21.0, gix-refspec v0.17.0, gix-submodule v0.3.0, gix-worktree v0.25.0, gix-worktree-state v0.2.0, gix v0.53.0, safety bump 39 crates (8bd0456)
    • Prepare changelogs for release (375db06)
    • Merge branch dynification (f658fcc)
    • Use dyn trait where possible. (072ee32)
    • Merge branch ‘adjustments-for-cargo’ (b7560a2)
    • Release gix-date v0.7.4, gix-index v0.23.0, safety bump 5 crates (3be2b1c)
    • Merge branch ‘gix-submodule’ (363ee77)

0.35.0 (2023-08-22)

Chore

  • switch nom to winnow in remaining uses in gix-object, gix-ref, and gix-actor for ~20% more performance. It's likely that over time, these parsers will get even faster due to improvements to winnow. Thanks, Ed Page, for single-handedly performing this transition.

Commit Statistics

  • 21 commits contributed to the release over the course of 4 calendar days.
  • 15 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-date v0.7.3, gix-hash v0.12.0, gix-features v0.33.0, gix-actor v0.25.0, gix-object v0.35.0, gix-path v0.9.0, gix-glob v0.11.0, gix-quote v0.4.7, gix-attributes v0.17.0, gix-command v0.2.9, gix-packetline-blocking v0.16.5, gix-filter v0.3.0, gix-fs v0.5.0, gix-commitgraph v0.19.0, gix-hashtable v0.3.0, gix-revwalk v0.6.0, gix-traverse v0.31.0, gix-worktree-stream v0.3.0, gix-archive v0.3.0, gix-config-value v0.13.0, gix-tempfile v8.0.0, gix-lock v8.0.0, gix-ref v0.35.0, gix-sec v0.9.0, gix-config v0.28.0, gix-prompt v0.6.0, gix-url v0.22.0, gix-credentials v0.18.0, gix-diff v0.34.0, gix-discover v0.23.0, gix-ignore v0.6.0, gix-bitmap v0.2.7, gix-index v0.22.0, gix-mailmap v0.17.0, gix-negotiate v0.6.0, gix-pack v0.41.0, gix-odb v0.51.0, gix-pathspec v0.1.0, gix-packetline v0.16.5, gix-transport v0.35.0, gix-protocol v0.38.0, gix-revision v0.20.0, gix-refspec v0.16.0, gix-submodule v0.2.0, gix-worktree v0.24.0, gix-worktree-state v0.1.0, gix v0.52.0, gitoxide-core v0.31.0, gitoxide v0.29.0, safety bump 41 crates (30b2761)
    • Update changelogs prior to release (f23ea88)
    • Merge branch ‘gix-submodule’ (8f3f358)
    • Cleanup gix-ref-tests (e0c64fd)
    • Just fmt (0d258f4)
    • Switch nom to winnow in remaining uses in gix-object, gix-ref, and gix-actor for ~20% more performance. (ef54aab)
    • Upgrade winnow to latest patch release (8c41848)
    • Switch errors to StrContext (df226dd)
    • Show more error details in parse tests failures (266864f)
    • Upgrade to Winnow 0.5 (3f8c91f)
    • Simplify parsers (12f03db)
    • Simplify LineRef parser (2fb4a54)
    • Resolve 0.4 not-quite deprecations (f0cbf81)
    • Resolve 0.4 deprecations (9ed7df0)
    • Upgrade to Winnow 0.4 (86ea47f)
    • Parse explicitly in prep for 0.4 (b3f0418)
    • Resolve remaining winnow 0.3 deprecations (fee441d)
    • Prefer Parser inherent parsers (b37a909)
    • Prefer built-in Winnow parsers (ac0e81c)
    • Simplify winnow ErrMode construction (86d7fd1)
    • Switch gix to winnow 0.3 (ee75de1)

0.34.0 (2023-08-07)

A maintenance release without user-facing changes.

Commit Statistics

  • 6 commits contributed to the release over the course of 3 calendar days.
  • 4 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-glob v0.10.2, gix-date v0.7.2, gix-validate v0.8.0, gix-object v0.34.0, gix-ref v0.34.0, gix-config v0.27.0, gix-commitgraph v0.18.2, gix-revwalk v0.5.0, gix-revision v0.19.0, gix-refspec v0.15.0, gix-submodule v0.1.0, safety bump 18 crates (4604f83)
    • Prepare changelogs prior to release of gix-submodule (f3c4311)
    • Merge branch ‘submodules’ (b629f8a)
    • Adjust to changes in gix-validate (a8bc0de)
    • Merge branch ‘dev-on-linux’ (6b4a303)
    • Fix various tests to run properly on linux (ef8ccd9)

0.33.3 (2023-08-02)

Other

  • improve documentation about the Change type. Further, we update internal logic to decide when to write a reflog for symrefs. Now we will always do it when possible, i.e. there is object ids available.

Commit Statistics

  • 5 commits contributed to the release over the course of 2 calendar days.
  • 9 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-actor v0.24.2, gix-object v0.33.2, gix-ref v0.33.3, gix-config v0.26.2, gix-prompt v0.5.5, gix-odb v0.50.2, gix-transport v0.34.2, gix-protocol v0.37.0, gix-worktree v0.23.1, gix v0.51.0, safety bump 3 crates (231ac1c)
    • Prepare additional changelogs (db63815)
    • Prepare changelogs (e4d2890)
    • Merge branch ‘fixes-and-improvements’ (f8b1f55)
    • Improve documentation about the Change type. (5f6cf22)

0.33.2 (2023-07-24)

A maintenance release without user-facing changes.

Commit Statistics

  • 4 commits contributed to the release.
  • 1 day passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-archive v0.2.1, gix-ref v0.33.2, gix-pack v0.40.2, gix v0.50.1 (13883e5)
    • Prepare changelogs (735c206)
    • Merge branch ‘fetch-head-tests’ (eb2b513)
    • Add tests specifically for FETCH_HEAD (bdeb1f7)

0.33.1 (2023-07-22)

A maintenance release without user-facing changes.

Commit Statistics

  • 6 commits contributed to the release over the course of 1 calendar day.
  • 3 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-tempfile v7.0.2, gix-utils v0.1.5, gix-lock v7.0.2, gix-ref v0.33.1, gix-sec v0.8.4, gix-prompt v0.5.4, gix-url v0.21.1, gix-credentials v0.17.1, gix-diff v0.33.1, gix-discover v0.22.1, gix-ignore v0.5.1, gix-bitmap v0.2.6, gix-index v0.21.1, gix-mailmap v0.16.1, gix-negotiate v0.5.1, gix-pack v0.40.1, gix-odb v0.50.1, gix-packetline v0.16.4, gix-transport v0.34.1, gix-protocol v0.36.1, gix-revision v0.18.1, gix-refspec v0.14.1, gix-worktree v0.23.0, gix v0.50.0 (107a64e)
    • Release gix-features v0.32.1, gix-actor v0.24.1, gix-validate v0.7.7, gix-object v0.33.1, gix-path v0.8.4, gix-glob v0.10.1, gix-quote v0.4.6, gix-attributes v0.16.0, gix-command v0.2.8, gix-packetline-blocking v0.16.4, gix-filter v0.2.0, gix-fs v0.4.1, gix-chunk v0.4.4, gix-commitgraph v0.18.1, gix-hashtable v0.2.4, gix-revwalk v0.4.1, gix-traverse v0.30.1, gix-worktree-stream v0.2.0, gix-archive v0.2.0, gix-config-value v0.12.5, gix-tempfile v7.0.1, gix-utils v0.1.5, gix-lock v7.0.2, gix-ref v0.33.1, gix-sec v0.8.4, gix-prompt v0.5.4, gix-url v0.21.1, gix-credentials v0.17.1, gix-diff v0.33.1, gix-discover v0.22.1, gix-ignore v0.5.1, gix-bitmap v0.2.6, gix-index v0.21.1, gix-mailmap v0.16.1, gix-negotiate v0.5.1, gix-pack v0.40.1, gix-odb v0.50.1, gix-packetline v0.16.4, gix-transport v0.34.1, gix-protocol v0.36.1, gix-revision v0.18.1, gix-refspec v0.14.1, gix-worktree v0.23.0, gix v0.50.0, safety bump 5 crates (16295b5)
    • Prepare more changelogs (c4cc5f2)
    • Release gix-date v0.7.1, gix-hash v0.11.4, gix-trace v0.1.3, gix-features v0.32.0, gix-actor v0.24.0, gix-validate v0.7.7, gix-object v0.33.0, gix-path v0.8.4, gix-glob v0.10.0, gix-quote v0.4.6, gix-attributes v0.15.0, gix-command v0.2.7, gix-packetline-blocking v0.16.3, gix-filter v0.1.0, gix-fs v0.4.0, gix-chunk v0.4.4, gix-commitgraph v0.18.0, gix-hashtable v0.2.4, gix-revwalk v0.4.0, gix-traverse v0.30.0, gix-worktree-stream v0.2.0, gix-archive v0.2.0, gix-config-value v0.12.4, gix-tempfile v7.0.1, gix-utils v0.1.5, gix-lock v7.0.2, gix-ref v0.33.0, gix-sec v0.8.4, gix-prompt v0.5.3, gix-url v0.21.0, gix-credentials v0.17.0, gix-diff v0.33.0, gix-discover v0.22.0, gix-ignore v0.5.0, gix-bitmap v0.2.6, gix-index v0.21.0, gix-mailmap v0.16.0, gix-negotiate v0.5.0, gix-pack v0.40.0, gix-odb v0.50.0, gix-packetline v0.16.4, gix-transport v0.34.0, gix-protocol v0.36.0, gix-revision v0.18.0, gix-refspec v0.14.0, gix-worktree v0.22.0, gix v0.49.1 (5cb3589)
    • Update changelogs prior to release (2fc66b5)
    • Update license field following SPDX 2.1 license expression standard (9064ea3)

0.33.0 (2023-07-19)

A maintenance release without user-facing changes.

Commit Statistics

  • 3 commits contributed to the release.
  • 19 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-features v0.32.0, gix-actor v0.24.0, gix-glob v0.10.0, gix-attributes v0.15.0, gix-commitgraph v0.18.0, gix-config-value v0.12.4, gix-fs v0.4.0, gix-object v0.33.0, gix-ref v0.33.0, gix-config v0.26.0, gix-command v0.2.7, gix-url v0.21.0, gix-credentials v0.17.0, gix-diff v0.33.0, gix-discover v0.22.0, gix-filter v0.1.0, gix-ignore v0.5.0, gix-revwalk v0.4.0, gix-traverse v0.30.0, gix-index v0.21.0, gix-mailmap v0.16.0, gix-negotiate v0.5.0, gix-pack v0.40.0, gix-odb v0.50.0, gix-transport v0.34.0, gix-protocol v0.36.0, gix-revision v0.18.0, gix-refspec v0.14.0, gix-worktree v0.22.0, gix v0.49.0 (68ae3ff)
    • Adjust package versions (by cargo-smart-release) (c70e54f)
    • Prepare changelogs prior to release (e4dded0)

0.32.1 (2023-06-29)

A maintenance release without user-facing changes.

Commit Statistics

  • 3 commits contributed to the release.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-glob v0.9.1, gix-attributes v0.14.1, gix-config-value v0.12.3, gix-ref v0.32.1, gix-sec v0.8.3, gix-config v0.25.1, gix-url v0.20.1, gix-credentials v0.16.1, gix-discover v0.21.1, gix-ignore v0.4.1, gix-pack v0.39.1, gix-odb v0.49.1, gix-worktree v0.21.1, gix v0.48.0 (69c6a36)
    • Prepare changelogs prior to release (c143cf4)
    • Align usage of gix-path across all crates (73c1292)

0.32.0 (2023-06-29)

A maintenance release without user-facing changes.

Commit Statistics

  • 3 commits contributed to the release over the course of 6 calendar days.
  • 6 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-date v0.7.0, gix-trace v0.1.2, gix-actor v0.23.0, gix-commitgraph v0.17.1, gix-utils v0.1.4, gix-object v0.32.0, gix-ref v0.32.0, gix-config v0.25.0, gix-diff v0.32.0, gix-discover v0.21.0, gix-hashtable v0.2.3, gix-revwalk v0.3.0, gix-traverse v0.29.0, gix-index v0.20.0, gix-mailmap v0.15.0, gix-negotiate v0.4.0, gix-pack v0.39.0, gix-odb v0.49.0, gix-protocol v0.35.0, gix-revision v0.17.0, gix-refspec v0.13.0, gix-worktree v0.21.0, gix v0.48.0, safety bump 20 crates (27e8c18)
    • Prepare changelogs prior to release (00f96fb)
    • Upgrade memmap2 and fastrand dependencies (6fc7497)

0.31.0 (2023-06-22)

Chore

  • Add clippy::redundant-closure-for-method-calls lint

Commit Statistics

  • 9 commits contributed to the release over the course of 11 calendar days.
  • 15 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-date v0.6.0, gix-hash v0.11.3, gix-trace v0.1.1, gix-features v0.31.0, gix-actor v0.22.0, gix-path v0.8.2, gix-glob v0.9.0, gix-quote v0.4.5, gix-attributes v0.14.0, gix-chunk v0.4.3, gix-commitgraph v0.17.0, gix-config-value v0.12.2, gix-fs v0.3.0, gix-tempfile v7.0.0, gix-utils v0.1.3, gix-lock v7.0.0, gix-validate v0.7.6, gix-object v0.31.0, gix-ref v0.31.0, gix-sec v0.8.2, gix-config v0.24.0, gix-command v0.2.6, gix-prompt v0.5.2, gix-url v0.20.0, gix-credentials v0.16.0, gix-diff v0.31.0, gix-discover v0.20.0, gix-hashtable v0.2.2, gix-ignore v0.4.0, gix-bitmap v0.2.5, gix-revwalk v0.2.0, gix-traverse v0.28.0, gix-index v0.19.0, gix-mailmap v0.14.0, gix-negotiate v0.3.0, gix-pack v0.38.0, gix-odb v0.48.0, gix-packetline v0.16.3, gix-transport v0.33.0, gix-protocol v0.34.0, gix-revision v0.16.0, gix-refspec v0.12.0, gix-worktree v0.20.0, gix v0.47.0, gitoxide-core v0.29.0, gitoxide v0.27.0, safety bump 30 crates (ea9f942)
    • Prepare changelogs prior to release (18b0a37)
    • Merge branch ‘corpus’ (aa16c8c)
    • Change MSRV to 1.65 (4f635fc)
    • Merge branch ‘help-874-redundant-closures’ (fe59956)
    • Add clippy::redundant-closure-for-method-calls lint (bcad5c2)
    • Merge branch ‘future-dates’ (8d2e6a9)
    • Adapt to changes in gix-actor (4a80e86)
    • Adapt to changes in gix-date (d575336)

0.30.0 (2023-06-06)

A maintenance release without user-facing changes.

Commit Statistics

  • 15 commits contributed to the release over the course of 25 calendar days.
  • 38 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-date v0.5.1, gix-hash v0.11.2, gix-features v0.30.0, gix-actor v0.21.0, gix-path v0.8.1, gix-glob v0.8.0, gix-quote v0.4.4, gix-attributes v0.13.0, gix-chunk v0.4.2, gix-commitgraph v0.16.0, gix-config-value v0.12.1, gix-fs v0.2.0, gix-tempfile v6.0.0, gix-utils v0.1.2, gix-lock v6.0.0, gix-validate v0.7.5, gix-object v0.30.0, gix-ref v0.30.0, gix-sec v0.8.1, gix-config v0.23.0, gix-command v0.2.5, gix-prompt v0.5.1, gix-url v0.19.0, gix-credentials v0.15.0, gix-diff v0.30.0, gix-discover v0.19.0, gix-hashtable v0.2.1, gix-ignore v0.3.0, gix-bitmap v0.2.4, gix-traverse v0.26.0, gix-index v0.17.0, gix-mailmap v0.13.0, gix-revision v0.15.0, gix-negotiate v0.2.0, gix-pack v0.36.0, gix-odb v0.46.0, gix-packetline v0.16.2, gix-transport v0.32.0, gix-protocol v0.33.0, gix-refspec v0.11.0, gix-worktree v0.18.0, gix v0.45.0, safety bump 29 crates (9a9fa96)
    • Prepare changelogs prior to release (8f15cec)
    • Merge pull request #878 from blinxen/main (67da689)
    • Include missing changelog file in some crates (0269eed)
    • Merge branch ‘fix-docs’ (420553a)
    • Minor fixes (89a8cfe)
    • Cleaning up documentation (2578e57)
    • Merge branch ‘auto-clippy’ (dbf8aa1)
    • Autofix map-or-unwrap clippy lint (and manual fix what was left) (2087032)
    • Merge branch ‘main’ into auto-clippy (3ef5c90)
    • Auto-fix clippy to remove explicit iter looping (3eff567)
    • Merge branch ‘blinxen/main’ (9375cd7)
    • Include custom clippy settings (b057500)
    • Include license files in all crates (facaaf6)
    • Release gix-object v0.29.2 (4f879bf)

0.29.1 (2023-04-29)

Bug Fixes

  • symbolic refs are now written with a newline. #(836) This should help some tools to work correctly.

Commit Statistics

  • 2 commits contributed to the release.
  • 1 day passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-ref v0.29.1 (13e01f5)
    • Symbolic refs are now written with a newline. #(836) (79cc248)

0.29.0 (2023-04-27)

A maintenance release without user-facing changes.

Commit Statistics

  • 3 commits contributed to the release.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-path v0.8.0, gix-glob v0.7.0, gix-attributes v0.12.0, gix-config-value v0.12.0, gix-ref v0.29.0, gix-sec v0.8.0, gix-config v0.22.0, gix-prompt v0.5.0, gix-url v0.18.0, gix-credentials v0.14.0, gix-discover v0.18.0, gix-ignore v0.2.0, gix-pack v0.35.0, gix-odb v0.45.0, gix-transport v0.31.0, gix-protocol v0.32.0, gix-refspec v0.10.1, gix-worktree v0.17.0, gix v0.44.1 (7ebc9f7)
    • Prepare changelogs prior to release (0135158)
    • Bump gix-path v0.8.0, safety bump 20 crates (gix set to 0.44.1 manually) (43ebaf2)

0.28.0 (2023-04-26)

Bug Fixes

  • speed up finding references by avoiding double-lookup. Previously it would try to find <root>/HEAD twice due to a logic issue.
  • avoid unnecessary check for remotes/HEAD if we are looking for HEAD. This is because we already looked for that in the previous loop, and HEAD/HEAD makes no sense as this case is made for things like origin as partial name.

New Features (BREAKING)

  • Rename serde1 cargo feature to serde and use the weak-deps cargo capability. With it it's possible to not automatically declare all optional dependencies externally visible features, and thus re-use feature names that oterwise are also a crate name.

    Previously I thought that serde1 is for future-proofing and supporting multiple serde versions at the same time. However, it‘s most definitely a burden I wouldn’t want anyway, so using serde seems to be the way to go into the future.

  • remove types that are now available in gix-os

Commit Statistics

  • 16 commits contributed to the release over the course of 14 calendar days.
  • 29 days passed between releases.
  • 4 commits were understood as conventional.
  • 1 unique issue was worked on: #814

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

  • #814
    • Rename serde1 cargo feature to serde and use the weak-deps cargo capability. (b83ee36)
  • Uncategorized
    • Release gix-hash v0.11.1, gix-path v0.7.4, gix-glob v0.6.0, gix-attributes v0.11.0, gix-config-value v0.11.0, gix-fs v0.1.1, gix-tempfile v5.0.3, gix-utils v0.1.1, gix-lock v5.0.1, gix-object v0.29.1, gix-ref v0.28.0, gix-sec v0.7.0, gix-config v0.21.0, gix-prompt v0.4.0, gix-url v0.17.0, gix-credentials v0.13.0, gix-diff v0.29.0, gix-discover v0.17.0, gix-hashtable v0.2.0, gix-ignore v0.1.0, gix-bitmap v0.2.3, gix-traverse v0.25.0, gix-index v0.16.0, gix-mailmap v0.12.0, gix-pack v0.34.0, gix-odb v0.44.0, gix-packetline v0.16.0, gix-transport v0.30.0, gix-protocol v0.31.0, gix-revision v0.13.0, gix-refspec v0.10.0, gix-worktree v0.16.0, gix v0.44.0, safety bump 7 crates (91134a1)
    • Prepare changelogs prior to release (30a1a71)
    • Merge branch ‘faster-discovery’ (282a1a3)
    • Speed up finding references by avoiding double-lookup. (3e93141)
    • Avoid unnecessary check for remotes/HEAD if we are looking for HEAD. (0c79bdf)
    • Merge branch ‘fix-823’ (6ebd61e)
    • Thanks clippy (14e64e7)
    • Release gix-utils v0.1.0, gix-hash v0.11.0, gix-date v0.5.0, gix-features v0.29.0, gix-actor v0.20.0, gix-object v0.29.0, gix-archive v0.1.0, gix-fs v0.1.0, safety bump 25 crates (8dbd0a6)
    • Merge branch ‘main’ into dev (cdef398)
    • Rename the serde1 feature to serde (19338d9)
    • Create new gix-fs crate to consolidate all filesystem utilities (f8cc33c)
    • Merge branch ‘main’ into dev (23ee47f)
    • Merge branch ‘worktree-stack’ (3d47919)
    • Remove types that are now available in gix-os (b645d28)
    • Release gix-hash v0.10.4, gix-hashtable v0.1.3 (b574a39)

0.27.2 (2023-03-28)

Bug Fixes

  • uncategorized refs should not be per-worktree When creating a new ref from using a Repository instantiated from a linked worktree, if the ref did not fit one of the well-known categories, it would be incorrectly stored as a per-worktree reference instead of a shared reference.

    For example, the reference “refs/stacks/linked” does not fit any of the well known categories. According to git-worktree(1), this ref should be shared across all worktrees; i.e. located at $GIT_COMMON_DIR/refs/stacks/linked and not in $GIT_COMMON_DIR/worktrees/linked/refs/stacks/linked.

    This change tweaks the control flow so that uncategorized refs correctly fallback to being relative to commondir while still placing refs that are supposed to be per-worktree in the per-worktree location.

Commit Statistics

  • 5 commits contributed to the release.
  • 13 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details

  • Uncategorized
    • Release gix-ref v0.27.2 (e965b18)
    • Thanks clippy (fa98a92)
    • Merge branch ‘fix-worktree-shared-refs’ (9531b11)
    • Add more tests to validate uncategorized refs in the context of worktrees (de66453)
    • Uncategorized refs should not be per-worktree (3d6832c)

0.27.1 (2023-03-14)

A maintenance release without any user-facing changes.

Commit Statistics

  • 4 commits contributed to the release over the course of 3 calendar days.
  • 3 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-features v0.28.1, gix-tempfile v5.0.1, gix-ref v0.27.1, gix-pack v0.33.1, gix-packetline v0.15.0, gix-transport v0.29.0, gix-protocol v0.30.0, gix v0.42.0, safety bump 3 crates (c1f1bfb)
    • Prepare changelogs prior to release (c66e298)
    • Merge branch ‘shallow-protocol’ (531dd19)
    • Merge branch ‘fix-cred-helper’ (01277a6)

0.27.0 (2023-03-10)

A maintenance release without user-facing changes.

Bug Fixes

  • implement Clone for PartialName. Also improve documentation for FullName* and PartialName* types.

Commit Statistics

  • 3 commits contributed to the release.
  • 6 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-tempfile v5.0.0, gix-lock v5.0.0, gix-ref v0.27.0, gix-config v0.19.0, gix-url v0.16.0, gix-credentials v0.12.0, gix-discover v0.16.0, gix-index v0.15.0, gix-pack v0.33.0, gix-odb v0.43.0, gix-transport v0.28.0, gix-protocol v0.29.0, gix-worktree v0.15.0, gix v0.41.0, safety bump 12 crates (29a0870)
    • Prepare changelogs prior to release (e06f5f5)
    • Implement Clone for PartialName. (8e8c71b)

0.26.0 (2023-03-04)

A maintenance release without user-facing changes.

Commit Statistics

  • 3 commits contributed to the release.
  • 3 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-attributes v0.10.0, gix-ref v0.26.0, gix-config v0.18.0, gix-url v0.15.0, gix-credentials v0.11.0, gix-discover v0.15.0, gix-index v0.14.0, gix-mailmap v0.11.0, gix-odb v0.42.0, gix-transport v0.27.0, gix-protocol v0.28.0, gix-revision v0.12.0, gix-refspec v0.9.0, gix-worktree v0.14.0, gix v0.39.0 (93e75fe)
    • Prepare changelogs prior to release (895e482)
    • Release gix-features v0.28.0, gix-actor v0.19.0, gix-object v0.28.0, gix-diff v0.28.0, gix-traverse v0.24.0, gix-pack v0.32.0, safety bump 20 crates (0f411e9)

0.25.0 (2023-03-01)

A maintenance release without user-facing changes.

Commit Statistics

  • 8 commits contributed to the release over the course of 2 calendar days.
  • 8 days passed between releases.
  • 0 commits were understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-tempfile v4.1.0, gix-lock v4.0.0, gix-ref v0.25.0, gix-config v0.17.0, gix-url v0.14.0, gix-credentials v0.10.0, gix-diff v0.27.0, gix-discover v0.14.0, gix-hashtable v0.1.2, gix-bitmap v0.2.2, gix-traverse v0.23.0, gix-index v0.13.0, gix-mailmap v0.10.0, gix-pack v0.31.0, gix-odb v0.41.0, gix-transport v0.26.0, gix-protocol v0.27.0, gix-revision v0.11.0, gix-refspec v0.8.0, gix-worktree v0.13.0, gix v0.38.0, safety bump 6 crates (ea9fd1d)
    • Release gix-features v0.27.0, gix-actor v0.18.0, gix-quote v0.4.3, gix-attributes v0.9.0, gix-object v0.27.0, gix-ref v0.25.0, gix-config v0.17.0, gix-url v0.14.0, gix-credentials v0.10.0, gix-diff v0.27.0, gix-discover v0.14.0, gix-hashtable v0.1.2, gix-bitmap v0.2.2, gix-traverse v0.23.0, gix-index v0.13.0, gix-mailmap v0.10.0, gix-pack v0.31.0, gix-odb v0.41.0, gix-transport v0.26.0, gix-protocol v0.27.0, gix-revision v0.11.0, gix-refspec v0.8.0, gix-worktree v0.13.0, gix v0.38.0 (e6cc618)
    • Remove versions from dev-dependencies to workspace crates. (3cfbf89)
    • Adjust manifests prior to release (addd789)
    • Prepare changelogs prior to release (94c99c7)
    • Merge branch ‘adjustments-for-cargo’ (d686d94)
    • Adapt to changes in gix-tempfile (bfcd1e3)
    • Prepare for git-tempfile release (56c005b)

0.24.1 (2023-02-20)

Bug Fixes

  • note that crates have been renamed from git-* to gix-*. This also means that the git-* prefixed crates of the gitoxide project are effectively unmaintained. Use the crates with the gix-* prefix instead.

    If you were using git-repository, then gix is its substitute.

  • compatibility with bstr v1.3, use *.as_bytes() instead of .as_ref(). as_ref() relies on a known target type which isn‘t always present. However, once there is only one implementation, that’s no problem, but when that changes compilation fails due to ambiguity.

Commit Statistics

  • 2 commits contributed to the release.
  • 3 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like ‘(#ID)’ were seen in commit messages

Commit Details

  • Uncategorized
    • Release gix-date v0.4.3, gix-hash v0.10.3, gix-features v0.26.5, gix-actor v0.17.2, gix-glob v0.5.5, gix-path v0.7.2, gix-quote v0.4.2, gix-attributes v0.8.3, gix-validate v0.7.3, gix-object v0.26.2, gix-ref v0.24.1, gix-config v0.16.2, gix-command v0.2.4, gix-url v0.13.3, gix-credentials v0.9.2, gix-discover v0.13.1, gix-index v0.12.4, gix-mailmap v0.9.3, gix-pack v0.30.3, gix-packetline v0.14.3, gix-transport v0.25.6, gix-protocol v0.26.4, gix-revision v0.10.4, gix-refspec v0.7.3, gix-worktree v0.12.3, gix v0.36.1 (9604783)
    • Compatibility with bstr v1.3, use *.as_bytes() instead of .as_ref(). (135d317)

0.24.0 (2023-02-17)

Refactor (BREAKING)

  • remove pack-cache from Find::try_find(…) With the new architecture this can be an implementation detail without forcing it to be Sync.
  • move git_pack::data::Object to git_object::Data, massively alter git_odb::Find trait This will break a lot, but has to happen to prepare these traits for the next generation of object databases.
  • file::Store::base is now file::Store::base() and read-only That way, file databases can‘t be repositioned anymore, it’s recommended to recreate it if that's desired.

Other (BREAKING)

  • remove Target::must_exist() It was a remainder of an old API which since has been replaced with a more explicit approach.
  • Reference::logs() -> Reference::log_iter() The latter now returns a standard Platform to iterate over all reflog entries from oldest to newest or vice versa.

New Features (BREAKING)

  • upgrade edition to 2021 in most crates. MSRV for this is 1.56, and we are now at 1.60 so should be compatible. This isn‘t more than a patch release as it should break nobody who is adhering to the MSRV, but let’s be careful and mark it breaking.

    Note that git-features and git-pack are still on edition 2018 as they make use of a workaround to support (safe) mutable access to non-overlapping entries in a slice which doesn't work anymore in edition 2021.

  • Turn FullNameRef into an actual reference type. That way Cow<'_, FullNameRef> works as expected.

Chore (BREAKING)

  • replace quick-error with thiserror

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.

  • Target(Ref)?::try_name() now returns Option<&FullNameRef>. That way, the name is actually directly usable in most methods that require a validated name as input.

  • Transaction::commit(…) takes git-actor::SignatureRef instead of …::Signature. This makes the API more versatile and corrects a shortcoming that was caused by SignatureRef previously being unable to serialize itself.

  • remove FullName::to_ref() in favor of •::as_ref(). This became possible now that FullNameRef is a proper ref, not just ref-like.

  • rename PartialNameRef to PartialNameCow Because this is what it is, which also implies that it's not Copy anymore which a Ref would definitely be.

    The reason we need this to be a Cow is to support passing ownership.

  • remove Store from public API It is unclear if ref-tables, which are the reason for it to exist in the first place, will fit into the concept as they might not support worktrees. It's entirely unclear how this works.

    Maybe there can be a non-worktree version of the store with work-trees only being supported by the file based ref database, and ref-tables remaining a server-side feature.

  • rename file::Store::base() to git_dir(). That way it is clearer what it actually is especially in presence of the newly added file::Store::common_dir() method.

    That way, work-trees can eventually be properly supported.

  • Target::as_(id|name) -> Target::try_(id|name) Conform to naming conventions, whenever something returns an option or Result while there is a more direct name that panics, prefix try_.

  • Required object_hash as parameter when instantiating any Store This is needed to choose the correct kind of object hash in a couple of situations, and future-proofs it for when ref-table arrives.

  • rename file::Store::packed_buffer() to …::open_packed_buffer() This makes much clearer what it actually does, as previously it might have been a stored packed buffer as well.

  • file::Store::from(PathBuf) removed At this low level, it‘s important to be clear about RefLogs and rather force the caller to specify the ref-log mode. Technically it depends on a few factors, git-repository deals with them, but certainly shouldn’t default to anything without being clear.

  • Reference log line access

  • file::Store::iter() is now a platform, with .all() and .prefixed(…) respectively This way, it's possible to keep shared ownership of the packed buffer while allowing the exact same iterator machinery to work as before.

  • file::ReferenceExt::follow(…) now without packed refs parameter

  • file::ReferenceExt::peel_to_id_in_place(…) now without packed-refs buffer It is instead read from the internally synchronized buffer, shared across all instances.

  • file::Store::(try_)find(…, packed) was removed The packed buffer is now handled internally while loading it on demand. When compiled with git-features/parallel the file::Store remains send and sync.

    The packed refs buffer is shared across clones and it's recommended to clone one file::Store instance per thread, each of which can use its own namespace.

  • move git_ref::file::WriteRefLog to git_ref::store::WriteRefLog

Other

  • add panicking Target::id() and TargetRef::id()

  • loose reference iteration with non-dir prefixes… Previously it was expected for the prefix Path to always exist for the prefix to be valid. This, however, is not similar to packed prefixes, which allow non-dir prefixes as well.

    Now we will check if the prefix is actually a directory, and if not split it into its parent directory and the filename portion. The latter is then used for prefix matching file names within that directory.

  • improve changelog format

Bug Fixes

  • assure symrefs don‘t get deleted when moving refs to packed-refs. Previously it was possible for symbolic refs to be deleted right after they have been created or updated as they were included in the set of refs that was assumed to be part of packed-refs, which isn’t the case for symbolic refs.

  • case-insentively conflicting references can be created even on case-insensitie filesystems*. The asterisk indicates that this only works if packed-refs are present and these references are written straight to packed references without ever trying to handle the otherwise conflicting loose reference files.

    This is done by leveraging the fact that in presence of packed-refs or a pending creation of packed-refs, there is no need to create per-file locks as concurrent transactions also have to obtain the packed-refs lock and fail (or wait) until it's done.

  • instead of erroring if loose iteration is performed on missing base, correctly yield zero references. Previously it reported an error, now it does not and instead performs no iteration, which is more helpful to the user of the API I believe as they won't randomly fail just because somebody deleted the refs folder.

  • loose ref iteration on a repo with missing ‘ref/’ fails when creating the iterator. Previously, it would fail on first iteration, making it seem like there is one reference even though it's just an error stating that the base cannot be read.

    This is clearly worse than making a metadata check on the filesystem, no matter how unlikely the case.

  • allow symref updates to receive reflogs if these are new… …and well-known on top of that, that means having an exact expectation on what should be present.

    This allows symrefs to be created with reflog.

  • always update modification date when packed refs are forcefully reloaded. The latter happens right after the file was written, which means we definitely have to update our modification date or else the buffer will be read again next time somebody asks for an up-to-date version.

    The ordering of operations is such that at worst, the buffer is loaded again instead of keeping an outdated version of it, which would happen if the metadata is read afterwards.

  • support Rust 1.52

New Features

  • file::Transaction::rollback() allows to explicitly roll back a pending change. As opposed to dropping the Transaction, this method allows to obtain all edits that would have been applied.
  • higher performance for edits which would write the same value. Instead of moving them into place, we just drop them, without ever writing into them.
  • 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.
  • Add Reference::delete() for simple reference deletion
  • use docsrs feature in code to show what is feature-gated automatically on docs.rs
  • pass --cfg docsrs when compiling for https://docs.rs
  • Add store::WriteRefLog::Always to unconditionally write reflogs.
  • Allow Reference to be serialized/deserialized with serde.
  • ref iteration for worktrees. It merges the iteration result of private worktree refs along with all shared common references references.
  • Category::LinkedRef With it one can access all refs as advertised.
  • Category::MainRef With it it will be possible to compute all paths correctly and actually perform certain operations as documented.
  • Category::(WorktreePrivate|Bisect|Rewritten)
  • Category::LinkedPseudoRef
  • Add Category::MainPseudoRef
  • Category::PseudoRef
  • add FullName(Ref)::category_and_shortname() It's a combination of shorten() and category() for convenience.
  • Fullname(Ref)::category() and Category A way to classify references.
  • FullName(Ref)::strip_prefix() Get a short-hand for any reference name.
  • Add git_config::values::Path for a typesafe git path Add a Path type to the git_config::values which can be interpolated according to gits own path interpolation rules.
  • Display implementation for FullName.
  • FullNameRef::file_name()
  • Add file::Store::find_packed(…, buffer) This makes the API complete as now there is a methods that uses the internal buffer, or the provided one, where both can have its benefits.
  • add Reference::peel_to_id_in_place_packed() and Reference::follow_packed() This allows a stable/non-changing buffer to be used.
  • Add file::Store::iter_(prefixed_)packed() These methods allow using an own packed buffer, usually obtained through cached_packed_buffer().
  • add file::Store::cached_packed_buffer() for packed refs snapshots
  • add file::Store::try_find_packed(…, packed_buffer) That way, abstractions can still be built that have other ways of managing the packed-refs buffer, allowing it to stay more persistent.
  • PartialNameRef<'static>::join() for building paths on the fly
  • Allow PartialNameRef to be created from owned items

Chore

  • uniformize deny attributes
  • remove default link to cargo doc everywhere

Documentation

  • fix typos

Bug Fixes (BREAKING)

  • commiting the revlog transaction is now optional. This also means that providing no committer despite one being needed is will cause the transaction to fail entirely with an error.

    Doing this allows users who disable the reflog not to have to deal with committer configuration at all.

  • support for non-'static PackedRefs transactions. When configuring for packed-refs updates, previously one needed to provide a function to find objects that could not borrow data due to implicit 'static requirement. This has been lifted to allow it to access references to data on the stack.

Commit Statistics

Thanks Clippy

Clippy helped 40 times to make code idiomatic.

Commit Details

  • #198
    • Fix stop-release-for-changelog logic and fix all affected changelogs (52b38bc)
    • Deduplicate conventional message ids (e695eda)
    • Regenerate all changelogs to get links (0c81769)
    • Mention actual issues that where worked on (a517e39)
    • Respect release-wide ignore list to allow removing entire conventional headlines (145103d)
    • Rebuild all changelogs to assure properly ordered headlines (4a9a05f)
    • Sort all commits by time, descending… (f536bad)
    • Greatly reduce changelog size now that the traversal fix is applied (a0bc98c)
    • Generate changelogs with details (e1861ca)
    • Update all changelogs with details (58ab2ae)
    • Update changelogs (c857d61)
    • Avoid adding newlines which make writing unstable (6b5c394)
    • Fix section headline level (9d6f263)
    • Write first version of changlogs thus far… (719b6bd)
    • Add panicking Target::id() and TargetRef::id() (4ed4b2d)
    • Loose reference iteration with non-dir prefixes… (293bfc0)
    • Improve changelog format (90e6128)
  • #222
    • Update changelogs prior to release (9a493d0)
    • Stabilize changelogs (920e832)
    • Update changelogs prior to release (b3e2252)
  • #251
    • PartialNameRef<'static>::join() for building paths on the fly (c0fc4f6)
    • Refactor (244a646)
    • Allow PartialNameRef to be created from owned items (b7aab9e)
  • #254
    • Adjust changelogs prior to git-pack release (6776a3f)
  • #259
    • Btree/hashmap free lookup of packs in store, keeping things more bundled (a88981b)
  • #263
    • Don't unnecessarily reload the packed-refs buffer under contention (3ab990e)
    • Use a read-lock until mutation is needed, instead of upgradable rw locks (58294dd)
    • Refactor (e41ab82)
    • Add file::Store::find_packed(…, buffer) (f6181af)
    • Add Reference::peel_to_id_in_place_packed() and Reference::follow_packed() (03bcac2)
    • Add file::Store::iter_(prefixed_)packed() (6a17416)
    • Add file::Store::cached_packed_buffer() for packed refs snapshots (9eb3a31)
    • Rename file::Store::packed_buffer() to …::open_packed_buffer() (b431fb0)
    • Add file::Store::try_find_packed(…, packed_buffer) (b030884)
    • File::Store::from(PathBuf) removed (80f3d50)
    • Put general Store on hold - ref-table is needed to know how to go about it (bfa417b)
    • Don't even think about setting up test duplication for the general store (72a6464)
    • Reference::logs() -> Reference::log_iter() (951c050)
    • Reference log line access (bfb32ae)
    • Add platform for log iteration to hold byte buffers (1cd2362)
    • Assure the packed buffer is reloaded after a modification (f5570ff)
    • Fmt (fbeddeb)
    • File::Store::iter() is now a platform, with .all() and .prefixed(…) respectively (5d498a3)
    • Refactor (5fc3817)
    • Refactor packed buffer sharing to allow for sharing snapshots (00c2545)
    • Let file transactions reuse the cached packed buffer (a9096b9)
    • File::ReferenceExt::follow(…) now without packed refs parameter (4641499)
    • file::ReferenceExt::peel_to_id_in_place(…) now without packed-refs buffer (55940eb)
    • File::Store::(try_)find(…, packed) was removed (15d429b)
    • Load packed buffer with interior mutability (ae2eef1)
    • Make it possible to return read guards with packed buffers (f5c3c8f)
    • file::Store::base is now file::Store::base() and read-only (0e18753)
    • Refactor, realize why having a packed-buffer with the loose db is valuable (a76f041)
    • A mad attempt to use thread-local everywhere and avoid Sync… (0af5077)
    • Try implementing find_reference to realize that this extra abstraction is overkill (82ea1b8)
    • Look into iteration, but realize that it's harder than finding refs (fc753a8)
    • Sketch of State is seen in store handle and store itself (f87f852)
    • Sketch a store handle (fc6480b)
    • Move git_ref::file::WriteRefLog to git_ref::store::WriteRefLog (9524732)
  • #266
    • Upgrade git-ref's os_str_bytes crate to 6.0.0 (0cfba57)
    • Adapt to changes in git-odb (a44dd4b)
    • Remove pack-cache from Find::try_find(…) (ebc7f47)
    • Clarify that we really need stable pack ids (cefc0fa)
    • Move git_pack::data::Object to git_object::Data, massively alter git_odb::Find trait (2290d00)
  • #279
    • Adapt to changes in git-hash (754a663)
    • Adjust to changes in git-hash (9bf25cc)
    • Required object_hash as parameter when instantiating any Store (dea6659)
    • Remove Target::must_exist() (c46dec3)
    • Adapt to changes in git-hash (3e75e8c)
  • #293
  • #298
    • Enforce path conversion on windows gnu, it doesn't seem to like slashes (4d55a8f)
    • Mention that failing path when a ref-file couldn't be read (ecb539a)
    • Use hash_hasher based hash state for better keys/less collisions (814de07)
    • Display implementation for FullName. (cf50ae2)
    • FullNameRef::file_name() (28e3251)
  • #301
    • Update changelogs prior to release (84cb256)
    • Ref iteration for worktrees. (4a5176a)
    • Down to one borrowcheck error (7571be5)
    • Possibly a step towards solving this traversal… (c64a77f)
    • Prepare for dual-iteration (200384c)
    • Make a common-dir iterator available (78658c7)
    • Refactor (5521391)
    • Try all prefixes when producing a relative path for error purposes (8cf0302)
    • Restore previous non-namespace test (ba17b40)
    • Refactor (1b3a6da)
    • Refactor (7777f7e)
    • Represent loose iteration in terms of the overlay iterator (ad37a64)
    • Start preparing for multi-loose ref iteration, but… (014459b)
    • Validate traversal of main repository refs in presence of worktrees (f067286)
    • Refactor (c2ac110)
    • Simplify worktree test to not include superfluous refs (c46d838)
    • Assure proper handling of transactions in linked worktrees (07dc555)
    • Humble beginnings of transaction testing within worktrees (6f52606)
    • Many more tests around transactions and prefix handling (8f3a4b5)
    • Assure that private worktree refs have their reflogs written (96efbb1)
    • Properly adjust names for prefixed refs for use in packed-refs and filter them (797af14)
    • Prepare for filtering soon to be packed refs by name (3cea2ad)
    • Uncover issue naming of refs written to packed-refs (1acf875)
    • A first test of main worktree transactions incl. changelog (9c5ab38)
    • Adjusts to changes in git-ref (b362fb5)
    • Transaction::commit(…) takes git-actor::SignatureRef instead of …::Signature. (3d6299f)
    • First rough step towards support iteration (b987575)
    • Prepare for tests that can write into our test repositories (096ee5f)
    • Improve reflog base generation in transactions so it could possibly work (d69b56e)
    • Improve conversions as much as possible (befe949)
    • Validate that owned values indeed can't be passed anymore (c78008e)
    • Avoid using Cow at all in favor of a simple &PartialNameref (1bc9a87)
    • This didn't get better, but probably will stay that way (7da239f)
    • See what it means to use Cow<PartialNameRef> (2ae129a)
    • All custom TryFrom implementations for Cow (15afec1)
    • Cow support for PartialNameRef (3e470da)
    • Adapt to changes in git-ref (21109ca)
    • Remove FullName::to_ref() in favor of •::as_ref(). (f1dbb6b)
    • Reflog handling for worktree/ ref-names (77877e0)
    • Parse the worktree name as part of the cateogry (7666034)
    • Refactor (cebf736)
    • More fixes for worktree ref handling (1aa546d)
    • Better packed refs lookup for worktree refs (2b6982e)
    • Fix bugs with name resolution (3031f99)
    • Assure main-worktree is also resolved in the main worktree (bc3c05e)
    • Assure nobody can bypass the namespace anymore (0079ab6)
    • Frame for tests in worktree and main repositories (b12884a)
    • Assure namespaces are respected when calculating bases (4aac3c2)
    • Fix docs (e189914)
    • Transactions fully rely on proper base (d3a12e3)
    • Packed-refs now use correct common dir (dd7be18)
    • Reflog paths are now computed according to their ref name (c4d2493)
    • Refactor (e93c222)
    • First draft of fixture setup for worktrees (a25b0bc)
    • Use suitable full names for store based packed-refs lookup too (d25b3ca)
    • Packed-refs can now possibly transform names for lookup correctly (6478736)
    • Offer a way to search packed refs by full name only (ae57e27)
    • Also build what should be a valid path for loose-ref lookup (37deca5)
    • Refactor (19d53fb)
    • Refactor (32b8fde)
    • Refactor (09eb432)
    • Refactor (f83910f)
    • Loose ref lookup uses categories for refanames (61b449c)
    • Prepare for switch to category based base-path lookup (14c6f48)
    • Unify pseudo-ref check for find reference (8c52fe4)
    • Admit that we need PartialPathCow and can't work around it (202bafc)
    • Rename PartialNameRef to PartialNameCow (1611c3d)
    • Refactor (4e26e62)
    • Refactor (a611224)
    • Refactor (467d583)
    • Refactor (3574a4e)
    • Category::LinkedRef (9cccce3)
    • Category::MainRef (eada5df)
    • Category::(WorktreePrivate|Bisect|Rewritten) (0304b7f)
    • Category::LinkedPseudoRef (612a2db)
    • Add Category::MainPseudoRef (613b584)
    • Category::PseudoRef (6ccfea9)
    • Remove Store from public API (8a92ec9)
    • Rename file::Store::base() to git_dir(). (2becffc)
    • Adapt to changes in git-path (cc2d810)
    • Adapt to all changes in git-path with bstr support (f158648)
    • Use git-path crate instead of git_features::path (47e607d)
    • Adjustments to go along with changes in git-features (c55cac6)
    • Make fmt (50ff7aa)
    • Performance issue on windows is due to slow process execution speed (60bcffc)
    • Speed up git-pack testing on windows (8ca400c)
  • #329
    • Document all features related to serde1 (72b97f2)
  • #331
    • Target(Ref)?::try_name() now returns Option<&FullNameRef>. (0f753e9)
    • Add store::WriteRefLog::Always to unconditionally write reflogs. (4607a18)
    • Add git_config::values::Path for a typesafe git path (e4d6685)
  • #333
    • Use git_features::path everywhere where there is a path conversion (2e1437c)
    • Remove os-str-bytes everywhere (71a086a)
    • Found one valid case for using os-str-bytes (9c294bf)
    • Make real clear panics are only possible on windows (6b283dc)
    • One usage of os_str_bytes down, along with some custom conversion code (1cc95ce)
    • Gitoxide-core without os-str-bytes (909aa14)
    • Don't use os_str_ext in git-features; adapt git-ref (9258b7b)
    • Use new git-features::path module (7c53b27)
  • #364
    • Add FullName(Ref)::category_and_shortname() (ecd60d7)
    • Target::as_(id|name) -> Target::try_(id|name) (7984e19)
    • Refactor (b1b9871)
    • Fullname(Ref)::category() and Category (e7e4ba2)
    • FullName(Ref)::strip_prefix() (af2d399)
    • Full error handling for CommitRefIter (b94471a)
  • #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)
  • #393
    • Add support for disabling archive usage (624ad2e)
  • #427
    • Make fmt (4b320e7)
    • Adapt to changes in git-features (777b40c)
    • Adjust to changes in git-features (07168c7)
    • Use generalized reload-on-demand in git-ref (8d0cce7)
    • Now it's possible to update packed refs using the shared code (78222c2)
    • The first step towards using the generalized ReloadIfChanged in git-ref (e8de0ef)
    • Always update modification date when packed refs are forcefully reloaded. (1d20035)
    • Allow Reference to be serialized/deserialized with serde. (f3c609f)
  • #450
    • Support for non-'static PackedRefs transactions. (328900a)
    • Add test to validate new symref reflog behaviour (8b5cf38)
    • Allow symref updates to receive reflogs if these are new… (6e5c0ae)
    • 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)
    • Better refmap printing (6f60a79)
    • Fix windows tests (140e690)
    • Fix docs (dad9cbe)
    • Replace quick-error with thiserror (725210d)
    • Adjust to changes in git-validate (4eac45f)
  • #470
    • Update changelogs prior to release (caa7a1b)
  • #595
    • Assure symrefs don't get deleted when moving refs to packed-refs. (584b705)
    • Avoid lock-acquisition for refs which are to be deleted if a global lock is helt. (66b053d)
    • Case-insentively conflicting references can be created even on case-insensitie filesystems*. (9f84850)
    • Instead of erroring if loose iteration is performed on missing base, correctly yield zero references. (e9853dd)
    • Loose ref iteration on a repo with missing ‘ref/’ fails when creating the iterator. (27386a9)
    • First test to validate how collisions are expressed. (3f54ade)
    • Attempt to add the first case-sensitive test… (063ab73)
    • file::Transaction::rollback() allows to explicitly roll back a pending change. (e86e159)
    • Higher performance for edits which would write the same value. (bbdb480)
  • #691
  • #XXX
    • Prepare changelogs prior to release (8c0bca3)
  • Uncategorized
    • Release gix-attributes v0.8.2, gix-config-value v0.10.1, gix-tempfile v3.0.2, gix-lock v3.0.2, gix-validate v0.7.2, gix-object v0.26.1, gix-ref v0.24.0, gix-sec v0.6.2, gix-config v0.16.1, gix-command v0.2.3, gix-prompt v0.3.2, gix-url v0.13.2, gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (e313112)
    • Release gix-features v0.26.4, gix-actor v0.17.1, gix-glob v0.5.3, gix-path v0.7.1, gix-quote v0.4.1, gix-attributes v0.8.2, gix-config-value v0.10.1, gix-tempfile v3.0.2, gix-lock v3.0.2, gix-validate v0.7.2, gix-object v0.26.1, gix-ref v0.24.0, gix-sec v0.6.2, gix-config v0.16.1, gix-command v0.2.3, gix-prompt v0.3.2, gix-url v0.13.2, gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (6efd0d3)
    • Release gix-date v0.4.2, gix-hash v0.10.2, gix-features v0.26.4, gix-actor v0.17.1, gix-glob v0.5.3, gix-path v0.7.1, gix-quote v0.4.1, gix-attributes v0.8.2, gix-config-value v0.10.1, gix-tempfile v3.0.2, gix-lock v3.0.2, gix-validate v0.7.2, gix-object v0.26.1, gix-ref v0.24.0, gix-sec v0.6.2, gix-config v0.16.1, gix-command v0.2.3, gix-prompt v0.3.2, gix-url v0.13.2, gix-credentials v0.9.1, gix-diff v0.26.1, gix-discover v0.13.0, gix-hashtable v0.1.1, gix-bitmap v0.2.1, gix-traverse v0.22.1, gix-index v0.12.3, gix-mailmap v0.9.2, gix-chunk v0.4.1, gix-pack v0.30.2, gix-odb v0.40.2, gix-packetline v0.14.2, gix-transport v0.25.4, gix-protocol v0.26.3, gix-revision v0.10.3, gix-refspec v0.7.2, gix-worktree v0.12.2, gix v0.36.0 (6ccc88a)
    • Merge branch ‘rename-crates’ into inform-about-gix-rename (c9275b9)
    • Rename git-testtools to gix-testtools (b65c33d)
    • Adjust to renaming of git-pack to gix-pack (1ee81ad)
    • Adjust to renaming of git-odb to gix-odb (476e2ad)
    • Adjust to renaming of git-index to gix-index (86db5e0)
    • Adjust to renaming of git-diff to gix-diff (49a163e)
    • Adjust to renaming of git-commitgraph to gix-commitgraph (f1dd0a3)
    • Adjust to renaming of git-mailmap to gix-mailmap (2e28c56)
    • Adjust to renaming of git-discover to gix-discover (53adfe1)
    • Adjust to renaming of git-lfs to gix-lfs (b9225c8)
    • Adjust to renaming of git-chunk to gix-chunk (59194e3)
    • Adjust to renaming of git-bitmap to gix-bitmap (75f2a07)
    • Adjust to renaming for git-protocol to gix-protocol (823795a)
    • Adjust to renaming of git-refspec to gix-refspec (c958802)
    • Adjust to renaming of git-revision to gix-revision (ee0ee84)
    • Adjust to renaming of git-transport to gix-transport (b2ccf71)
    • Adjust to renaming of git-credentials to gix-credentials (6b18abc)
    • Adjust to renaming of git-prompt to gix-prompt (6a4654e)
    • Adjust to renaming of git-command to gix-command (d26b8e0)
    • Adjust to renaming of git-packetline to gix-packetline (5cbd22c)
    • Adjust to renaming of git-worktree to gix-worktree (73a1282)
    • Adjust to renamining of git-hashtable to gix-hashtable (26a0c98)
    • Adjust to renamining of git-worktree to gix-worktree (108bb1a)
    • Adjust to renaming of git-url to gix-url (b50817a)
    • Adjust to renaming of git-date to gix-date (9a79ff2)
    • Adjust to renamining of git-attributes to gix-attributes (4a8b3b8)
    • Adjust to renaminig of git-quote to gix-quote (648025b)
    • Adjust to renaming of git-config to gix-config (3a861c8)
    • Adjust to renaming of git-ref to gix-ref (1f5f695)
    • Rename git-ref to gix-ref (a56e628)
    • Adjust to renaming of git-lock to gix-lock (2028e78)
    • Adjust to renaming of git-tempfile to gix-tempfile (b6cc3eb)
    • Adjust to renaming of git-object to gix-object (fc86a1e)
    • Adjust to renaming of git-actor to gix-actor (4dc9b44)
    • Adjust to renaming of git-validate to gix-validate (5e40ad0)
    • Adjust to renaming of git-hash to gix-hash (4a9d025)
    • Adjust to renaming of git-features to gix-features (e2dd68a)
    • Adjust to renaming of git-glob to gix-glob (35b2a3a)
    • Adjust to renaming of git-sec to gix-sec (eabbb92)
    • Adapt to renaming of git-path to gix-path (d3bbcfc)
    • Adjust to rename of git-config-value to gix-config-value (622b3e1)
    • Release git-features v0.26.4 (109f434)
    • Release git-features v0.26.3 (1ecfb7f)
    • Merge branch ‘rename-crates’ (6461c3d)
    • Rename git-repository to gix (7bed2a9)
    • Release git-date v0.4.2, git-hash v0.10.2, git-features v0.26.2, git-actor v0.17.1, git-glob v0.5.3, git-path v0.7.1, git-quote v0.4.1, git-attributes v0.8.2, git-config-value v0.10.1, git-tempfile v3.0.2, git-lock v3.0.2, git-validate v0.7.2, git-object v0.26.1, git-ref v0.24.0, git-sec v0.6.2, git-config v0.16.0, git-command v0.2.3, git-prompt v0.3.2, git-url v0.13.2, git-credentials v0.9.1, git-diff v0.26.1, git-discover v0.13.0, git-hashtable v0.1.1, git-bitmap v0.2.1, git-traverse v0.22.1, git-index v0.12.3, git-mailmap v0.9.2, git-chunk v0.4.1, git-pack v0.30.2, git-odb v0.40.2, git-packetline v0.14.2, git-transport v0.25.4, git-protocol v0.26.3, git-revision v0.10.2, git-refspec v0.7.2, git-worktree v0.12.2, git-repository v0.34.0, safety bump 3 crates (c196d20)
    • Prepare changelogs prior to release (7c846d2)
    • Merge branch ‘Lioness100/main’ (1e544e8)
    • Revert obtai -> obtained (cd84c1a)
    • Fix typos (39ed9ed)
    • Thanks clippy (bac57dd)
    • Make fmt (e22080e)
    • Merge branch ‘adjustments-for-cargo’ (7bba270)
    • Assure single-threaded git-ref tests may run. (17c0776)
    • Break cyclical dev dependencies (1fea18f)
    • Commiting the revlog transaction is now optional. (65c5589)
    • Release git-date v0.4.1, git-features v0.26.1, git-glob v0.5.2, git-attributes v0.8.1, git-tempfile v3.0.1, git-ref v0.23.1, git-sec v0.6.1, git-config v0.15.1, git-prompt v0.3.1, git-url v0.13.1, git-discover v0.12.1, git-index v0.12.2, git-mailmap v0.9.1, git-pack v0.30.1, git-odb v0.40.1, git-transport v0.25.3, git-protocol v0.26.2, git-revision v0.10.1, git-refspec v0.7.1, git-worktree v0.12.1, git-repository v0.33.0 (5b5b380)
    • Prepare changelogs prior to release (93bef97)
    • Merge branch ‘patch-1’ (b93f0c4)
    • Thanks clippy (9e04685)
    • Release git-ref v0.23.0, git-config v0.15.0, git-command v0.2.2, git-diff v0.26.0, git-discover v0.12.0, git-mailmap v0.9.0, git-pack v0.30.0, git-odb v0.40.0, git-transport v0.25.2, git-protocol v0.26.1, git-revision v0.10.0, git-refspec v0.7.0, git-worktree v0.12.0, git-repository v0.32.0 (ffb5b6a)
    • Prepare changelogs prior to release (4381a03)
    • Release git-date v0.4.0, git-actor v0.17.0, git-object v0.26.0, git-traverse v0.22.0, git-index v0.12.0, safety bump 15 crates (0e3d0a5)
    • Release git-features v0.26.0, git-actor v0.16.0, git-attributes v0.8.0, git-object v0.25.0, git-ref v0.22.0, git-config v0.14.0, git-command v0.2.1, git-url v0.13.0, git-credentials v0.9.0, git-diff v0.25.0, git-discover v0.11.0, git-traverse v0.21.0, git-index v0.11.0, git-mailmap v0.8.0, git-pack v0.29.0, git-odb v0.39.0, git-transport v0.25.0, git-protocol v0.26.0, git-revision v0.9.0, git-refspec v0.6.0, git-worktree v0.11.0, git-repository v0.31.0, safety bump 24 crates (5ac9fbe)
    • Prepare changelogs prior to release (30d8ca1)
    • Release git-date v0.3.1, git-features v0.25.0, git-actor v0.15.0, git-glob v0.5.1, git-path v0.7.0, git-attributes v0.7.0, git-config-value v0.10.0, git-lock v3.0.1, git-validate v0.7.1, git-object v0.24.0, git-ref v0.21.0, git-sec v0.6.0, git-config v0.13.0, git-prompt v0.3.0, git-url v0.12.0, git-credentials v0.8.0, git-diff v0.24.0, git-discover v0.10.0, git-traverse v0.20.0, git-index v0.10.0, git-mailmap v0.7.0, git-pack v0.28.0, git-odb v0.38.0, git-packetline v0.14.1, git-transport v0.24.0, git-protocol v0.25.0, git-revision v0.8.0, git-refspec v0.5.0, git-worktree v0.10.0, git-repository v0.30.0, safety bump 26 crates (e6b9906)
    • Prepare chnagelogs prior to git-repository release (7114bbb)
    • Merge branch ‘main’ into read-split-index (c57bdde)
    • Merge branch ‘adjustments-for-cargo’ (083909b)
    • Thanks clippy (f1160fb)
    • Adapt to changes in git-features::fs. (35f7d59)
    • Adjust to changes in git-testtools (4eb842c)
    • Release git-hash v0.10.1, git-hashtable v0.1.0 (7717170)
    • Merge branch ‘main’ into http-config (6b9632e)
    • Release git-features v0.24.1, git-actor v0.14.1, git-index v0.9.1 (7893502)
    • Merge branch ‘main’ into http-config (bcd9654)
    • Make fmt (0abab7d)
    • Release git-hash v0.10.0, git-features v0.24.0, git-date v0.3.0, git-actor v0.14.0, git-glob v0.5.0, git-path v0.6.0, git-quote v0.4.0, git-attributes v0.6.0, git-config-value v0.9.0, git-tempfile v3.0.0, git-lock v3.0.0, git-validate v0.7.0, git-object v0.23.0, git-ref v0.20.0, git-sec v0.5.0, git-config v0.12.0, git-command v0.2.0, git-prompt v0.2.0, git-url v0.11.0, git-credentials v0.7.0, git-diff v0.23.0, git-discover v0.9.0, git-bitmap v0.2.0, git-traverse v0.19.0, git-index v0.9.0, git-mailmap v0.6.0, git-chunk v0.4.0, git-pack v0.27.0, git-odb v0.37.0, git-packetline v0.14.0, git-transport v0.23.0, git-protocol v0.24.0, git-revision v0.7.0, git-refspec v0.4.0, git-worktree v0.9.0, git-repository v0.29.0, git-commitgraph v0.11.0, gitoxide-core v0.21.0, gitoxide v0.19.0, safety bump 28 crates (b2c301e)
    • Prepare changelogs prior to release (e4648f8)
    • Merge branch ‘version2021’ (0e4462d)
    • Upgrade edition to 2021 in most crates. (3d8fa8f)
    • Release git-glob v0.4.2, git-config-value v0.8.2, git-lock v2.2.0, git-ref v0.19.0, git-config v0.11.0, git-discover v0.8.0, git-index v0.8.0, git-transport v0.22.0, git-protocol v0.23.0, git-worktree v0.8.0, git-repository v0.28.0, gitoxide-core v0.20.0, gitoxide v0.18.0, safety bump 9 crates (0c253b1)
    • Prepare changelogs prior to release (fe5721f)
    • Merge branch ‘http-config’ (665b53e)
    • Don‘t assert on state that is based on a transaction that isn’t committed (00f6f7a)
    • Thanks clippy (fe7d6f9)
    • Assure reflogs aren't skipped just because there is no per-loose lock file. (130d13b)
    • Refactor (f17c6b6)
    • Refactor (c1d2aea)
    • Refactor (b0a231a)
    • Thanks clippy (5f7fe69)
    • Release git-features v0.23.1, git-glob v0.4.1, git-config-value v0.8.1, git-tempfile v2.0.6, git-object v0.22.1, git-ref v0.18.0, git-sec v0.4.2, git-config v0.10.0, git-prompt v0.1.1, git-url v0.10.1, git-credentials v0.6.1, git-diff v0.21.0, git-discover v0.7.0, git-index v0.7.0, git-pack v0.25.0, git-odb v0.35.0, git-transport v0.21.1, git-protocol v0.22.0, git-refspec v0.3.1, git-worktree v0.7.0, git-repository v0.26.0, git-commitgraph v0.10.0, gitoxide-core v0.19.0, gitoxide v0.17.0, safety bump 9 crates (d071583)
    • Prepare changelogs prior to release (423af90)
    • Merge branch ‘main’ into write-sparse-index (upgrade to Rust 1.65) (5406630)
    • Thanks clippy (04cfa63)
    • Merge branch ‘main’ into write-sparse-index (c4e6849)
    • Merge branch ‘gix-clone’ (def53b3)
    • Thanks clippy (3eaedda)
    • Release git-hash v0.9.11, git-features v0.23.0, git-actor v0.13.0, git-attributes v0.5.0, git-object v0.22.0, git-ref v0.17.0, git-sec v0.4.1, git-config v0.9.0, git-url v0.10.0, git-credentials v0.6.0, git-diff v0.20.0, git-discover v0.6.0, git-traverse v0.18.0, git-index v0.6.0, git-mailmap v0.5.0, git-pack v0.24.0, git-odb v0.34.0, git-packetline v0.13.1, git-transport v0.21.0, git-protocol v0.21.0, git-revision v0.6.0, git-refspec v0.3.0, git-worktree v0.6.0, git-repository v0.25.0, safety bump 24 crates (104d922)
    • 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)
    • 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 ‘filter-refs’ (3773b92)
    • Release git-features v0.22.6 (c9eda72)
    • Merge branch ‘filter-refs’ (e10554d)
    • Merge branch ‘filter-refs-by-spec’ (5c05198)
    • 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 ‘fix-522’ (5869e9f)
    • Release git-hash v0.9.9 (da0716f)
    • Merge branch ‘main’ into index-from-tree (bc64b96)
    • Release git-path v0.4.2, git-config-value v0.7.0 (c48fb31)
    • 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)
    • Add Reference::delete() for simple reference deletion (2d0b639)
    • Release git-attributes v0.3.3, git-ref v0.15.3, git-index v0.4.3, git-worktree v0.4.3, git-testtools v0.8.0 (baad4ce)
    • Prepare changelogs prior to release of git-testtools (7668e38)
    • Release git-features v0.22.3, git-revision v0.4.4 (c2660e2)
    • Merge branch ‘main’ into filter-refs-by-spec (cfa1440)
    • Release git-date v0.0.5, git-hash v0.9.8, git-features v0.22.2, git-actor v0.11.3, git-glob v0.3.2, git-quote v0.2.1, git-attributes v0.3.2, git-tempfile v2.0.4, git-lock v2.1.1, git-validate v0.5.5, git-object v0.20.2, git-ref v0.15.2, git-sec v0.3.1, git-config v0.7.0, git-credentials v0.4.0, git-diff v0.17.2, git-discover v0.4.1, git-bitmap v0.1.2, git-index v0.4.2, git-mailmap v0.3.2, git-chunk v0.3.1, git-traverse v0.16.2, git-pack v0.21.2, git-odb v0.31.2, git-packetline v0.12.7, git-url v0.7.2, git-transport v0.19.2, git-protocol v0.19.0, git-revision v0.4.2, git-refspec v0.1.0, git-worktree v0.4.2, git-repository v0.22.0, safety bump 4 crates (4974eca)
    • Release git-path v0.4.1 (5e82346)
    • Merge branch ‘main’ into remote-ls-refs (e2ee3de)
    • Merge branch ‘docsrs-show-features’ (31c2351)
    • Use docsrs feature in code to show what is feature-gated automatically on docs.rs (b1c40b0)
    • Uniformize deny attributes (f7f136d)
    • Pass --cfg docsrs when compiling for https://docs.rs (5176771)
    • Remove default link to cargo doc everywhere (533e887)
    • Merge branch ‘main’ into remote-ls-refs (bd5f3e8)
    • Release git-date v0.0.3, git-actor v0.11.1, git-attributes v0.3.1, git-tempfile v2.0.3, git-object v0.20.1, git-ref v0.15.1, git-config v0.6.1, git-diff v0.17.1, git-discover v0.4.0, git-bitmap v0.1.1, git-index v0.4.1, git-mailmap v0.3.1, git-traverse v0.16.1, git-pack v0.21.1, git-odb v0.31.1, git-packetline v0.12.6, git-url v0.7.1, git-transport v0.19.1, git-protocol v0.18.1, git-revision v0.4.0, git-worktree v0.4.1, git-repository v0.21.0, safety bump 5 crates (c96473d)
    • Prepare changelogs prior to reelase (c06ae1c)
    • Release git-hash v0.9.7, git-features v0.22.1 (232784a)
    • Merge branch ‘main’ into write-index-v2 (a938986)
    • Merge branch ‘main’ into remote-ls-refs (de61c4d)
    • Thanks clippy (4bd747c)
    • Merge branch ‘rev-parse-delegate’ (2f506c7)
    • Thanks clippy (763cec8)
    • Merge pull request #2 from SidneyDouw/main (ce885ad)
    • Merge branch ‘Byron:main’ into main (9b9ea02)
    • Merge branch ‘main’ into rev-parse-delegate (6da8250)
    • Merge branch ‘main’ into pathspec (7b61506)
    • Merge branch ‘kianmeng-fix-typos’ (4e7b343)
    • Fix typos (e9fcb70)
    • 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 ‘config-cascade’ (f144eaf)
    • Merge pull request #1 from Byron/main (085e76b)
    • Merge branch ‘config-comfort’ (84b98d9)
    • Assure document-features are available in all ‘usable’ and ‘early’ crates (238581c)
    • Merge branch ‘main’ into pathspec (89ea12b)
    • Merge branch ‘main’ into cont_include_if (daa71c3)
    • Thanks clippy (e1003d5)
    • Generally avoid using target_os = "windows" in favor of cfg(windows) and negations (91d5402)
    • 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)
    • Make fmt (c665aef)
    • Merge branch ‘main’ into SidneyDouw-pathspec (a22b1d8)
    • Merge branch ‘main’ into git_includeif (598c853)
    • Release 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 (349c590)
    • Fix git-ref dependencies (633e571)
    • 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)
    • Merge branch ‘refs-and-worktrees’ (8131227)
    • Thanks clippy (4cff7a8)
    • Thanks clippy (a20d282)
    • Thanks clippy (c208912)
    • Merge branch ‘main’ into refs-and-worktrees (9cf0c7b)
    • Merge branch ‘davidkna-remote-branch-name’ (068a2de)
    • Turn FullNameRef into an actual reference type. (0ace957)
    • A sketch to show how Cow could work (c6b2705)
    • Thanks clippy (61d6d93)
    • Thanks clippy (6291015)
    • Thanks clippy (22ee920)
    • Refactor (6149978)
    • Thanks clippy (405d94d)
    • Thanks clippy (a7ac64c)
    • Merge branch ‘main’ into msrv-for-windows (7cb1972)
    • Merge branch ‘worktree-stack’ (98da8ba)
    • Merge branch ‘main’ into repo-status (0eb2372)
    • Merge branch ‘test-archive-support’ (350df01)
    • Merge branch ‘main’ into repo-status (4086335)
    • Merge branch ‘worktree-stack’ (e90d3fd)
    • Fix clippy - many false positives this time (045e6fa)
    • Fix clippy - many false positives this time (099bd5b)
    • Release git-config v0.2.1, git-diff v0.15.0, git-traverse v0.14.0, git-pack v0.18.0, git-odb v0.28.0, git-ref v0.12.1, git-revision v0.1.0, git-repository v0.16.0, gitoxide-core v0.14.0, gitoxide v0.12.0, safety bump 6 crates (b612021)
    • Refactor (2abedb8)
    • Release git-diff v0.14.0, git-bitmap v0.1.0, git-index v0.2.0, git-tempfile v2.0.1, git-lock v2.0.0, git-mailmap v0.1.0, git-traverse v0.13.0, git-pack v0.17.0, git-quote v0.2.0, git-odb v0.27.0, git-packetline v0.12.4, git-url v0.4.0, git-transport v0.16.0, git-protocol v0.15.0, git-ref v0.12.0, git-worktree v0.1.0, git-repository v0.15.0, cargo-smart-release v0.9.0, safety bump 5 crates (e58dc30)
    • Merge branch ‘for-onefetch’ (8e5cb65)
    • Release git-hash v0.9.3, git-features v0.20.0, git-config v0.2.0, safety bump 12 crates (f0cbb24)
    • Thanks clippy (2066a80)
    • Merge branch ‘main’ into mailmap (b2df941)
    • Merge branch ‘describe-rev’ (77b7cd9)
    • Adapt to breaking changes in git-actor (40c48c3)
    • Merge branch ‘svetli-n-path_value’ (e8383ca)
    • Release git-tempfile v2.0.0, safety bump 6 crates (90b1c42)
    • Merge branch ‘unify-path-encoding’ (566ff8a)
    • Thanks clippy (a8e9497)
    • Thanks clippy (f242a24)
    • Release git-actor v0.8.1 (08fe550)
    • Release git-hash v0.9.2, git-object v0.17.1, git-pack v0.16.1 (0db19b8)
    • Release git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (b286b24)
    • Release git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (42ebb53)
    • Release git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (1b76119)
    • Release git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (8f57c29)
    • Release git-features v0.19.1, git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0 (d78aab7)
    • Release git-hash v0.9.1, git-features v0.19.1, git-actor v0.8.0, git-config v0.1.10, git-object v0.17.0, git-diff v0.13.0, git-tempfile v1.0.4, git-chunk v0.3.0, git-traverse v0.12.0, git-pack v0.16.0, git-odb v0.26.0, git-packetline v0.12.3, git-url v0.3.5, git-transport v0.15.0, git-protocol v0.14.0, git-ref v0.11.0, git-repository v0.14.0, cargo-smart-release v0.8.0, safety bump 4 crates (373cbc8)
    • Prepar changelogs for cargo-smart-release release (8900d69)
    • Support Rust 1.52 (42e0487)
    • Release git-bitmap v0.0.1, git-hash v0.9.0, git-features v0.19.0, git-index v0.1.0, safety bump 9 crates (4624725)
    • Merge branch ‘sync-db-draft’ (7d2e20c)
    • Thanks clippy (7dd2313)
    • Release git-actor v0.7.0, git-config v0.1.9, git-object v0.16.0, git-diff v0.12.0, git-traverse v0.11.0, git-pack v0.15.0, git-odb v0.25.0, git-packetline v0.12.2, git-transport v0.14.0, git-protocol v0.13.0, git-ref v0.10.0, git-repository v0.13.0, cargo-smart-release v0.7.0 (d3f9227)
    • Release git-features v0.18.0, git-actor v0.7.0, git-config v0.1.9, git-object v0.16.0, git-diff v0.12.0, git-traverse v0.11.0, git-pack v0.15.0, git-odb v0.25.0, git-packetline v0.12.2, git-transport v0.14.0, git-protocol v0.13.0, git-ref v0.10.0, git-repository v0.13.0, cargo-smart-release v0.7.0, safety bump 12 crates (acd3737)
    • Adjust changelogs prior to release (ec38950)
    • Thanks clippy (a74f27c)
    • Merge branch ‘pack-consistency’ (5982406)
    • Release git-config v0.1.8, git-object v0.15.1, git-diff v0.11.1, git-traverse v0.10.1, git-pack v0.14.0, git-odb v0.24.0, git-packetline v0.12.1, git-transport v0.13.1, git-protocol v0.12.1, git-ref v0.9.1, git-repository v0.12.0, cargo-smart-release v0.6.0 (f606fa9)
    • Adjusting changelogs prior to release of git-config v0.1.8, git-object v0.15.1, git-diff v0.11.1, git-traverse v0.10.1, git-pack v0.14.0, git-odb v0.24.0, git-packetline v0.12.1, git-transport v0.13.1, git-protocol v0.12.1, git-ref v0.9.1, git-repository v0.12.0, cargo-smart-release v0.6.0, safety bump 5 crates (39b40c8)
    • Release git-hash v0.8.0, git-features v0.17.0, git-actor v0.6.0, git-object v0.15.0, git-diff v0.11.0, git-traverse v0.10.0, git-pack v0.13.0, git-odb v0.23.0, git-packetline v0.12.0, git-transport v0.13.0, git-protocol v0.12.0, git-ref v0.9.0, git-repository v0.11.0, git-commitgraph v0.6.0, gitoxide-core v0.12.0, gitoxide v0.10.0, cargo-smart-release v0.5.0, safety bump 16 crates (0e02953)
    • Release git-hash v0.7.0, git-features v0.16.5, git-actor v0.5.3, git-config v0.1.7, git-validate v0.5.3, git-object v0.14.1, git-diff v0.10.0, git-tempfile v1.0.3, git-lock v1.0.1, git-traverse v0.9.0, git-pack v0.12.0, git-odb v0.22.0, git-packetline v0.11.0, git-url v0.3.4, git-transport v0.12.0, git-protocol v0.11.0, git-ref v0.8.0, git-repository v0.10.0, cargo-smart-release v0.4.0 (59ffbd9)
    • Adjusting changelogs prior to release of git-hash v0.7.0, git-features v0.16.5, git-actor v0.5.3, git-validate v0.5.3, git-object v0.14.1, git-diff v0.10.0, git-tempfile v1.0.3, git-lock v1.0.1, git-traverse v0.9.0, git-pack v0.12.0, git-odb v0.22.0, git-packetline v0.11.0, git-url v0.3.4, git-transport v0.12.0, git-protocol v0.11.0, git-ref v0.8.0, git-repository v0.10.0, cargo-smart-release v0.4.0, safety bump 3 crates (a474395)
    • Update changelogs just for fun (21541b3)
    • Merge branch ‘changelog-generation’ (bf0106e)
    • Bump git-traverse v0.9.0, safety bump 8 crates (d39fabb)
    • Release git-ref v0.7.3 (b0a9815)
    • Update changelogs once more… (d57d279)
    • Update changelogs retro-actively… (78cfe0a)
    • Release git-ref v0.7.2 (e940e9a)
    • [#195] Fix previously incorrect usage of io::Kind::Other… (4dae07d)
    • Thanks clippy (4701296)
    • Release git-ref v0.7.1 (d34191d)
    • Bump git-object v0.14.0 (d4fc81f)
    • Merge branch ‘repository-integration’ (49f5453)
    • [repository #190] refactor (e7188e0)
    • [ref #190] refactor (010be48)
    • [ref #190] fix tests (e426e15)
    • [ref #190] don't provide namespace support for loose and packed refs… (c663da1)
    • [ref #190] find() with namespace support (1240c21)
    • [ref #190] prepare test for namespaced find(…) (5fcd0e4)
    • [repository #190] leverage git-ref namespace support (1aa9c11)
    • [ref #190] iteration with namespace support (d5987d4)
    • [ref #190] refactor (3c7968c)
    • [repository #190] prepare for namespacing support on file store level (d2d1db6)
    • [repository #190] refactor (609c249)
    • [ref #190] refactor (1ef6cb3)
    • [repository #190] fix build (f5e118c)
    • [repository #190] note a known limitation about finding references in namespaces… (d335731)
    • [ref #190] more assetions to understand ‘find(…)’ for namespaced refs… (f58a0ff)
    • [repository #190] transparent namespace support (d14f073)
    • [ref #190] Make References sortable (16b2232)
    • [repository #190] cleanup usage of bstr… (e4411ff)
    • [ref #190] more conversion trait impls (1795a33)
    • Bump git-hash v0.6.0 (6efd90d)
    • [repository #190] obtain the kind fo hash used in a repo (a985491)
    • [ref #190] refactor (e34be7e)
    • [ref #190] more Target conversions… (1fe1b42)
    • [repository #190] refactor (7a111b1)
    • [ref #190] refactor (49fe1dc)
    • [ref #190] reverse reflog ergonomics (2de86f9)
    • [ref #190] check for zero sized buffers in reverse log iterators… (998c7c6)
    • [ref #190] move remaining file store functions to extension trait (60fc215)
    • [ref #190] Move file-log-specific functionality into own extension trait. (0b635e9)
    • [repository #190] a major step forward with head() access (43ac4f5)
    • [ref #190] cache peeled objects properly (2cb511e)
    • [ref #190] fix docs (3e64ec1)
    • Bump git-ref v0.7.0 (ac4413c)
    • [ref #190] fix remaining tests (df21f25)
    • Thanks clippy (14dff63)
    • [ref #190] Use Raw Reference everywhere for great simplification… (7aeea9c)
    • [ref #190] raw reference peeling (9473a71)
    • [ref #190] introduce Raw reference type that simplifies everything… (8634341)
    • [ref #190] more tests (980e16a)
    • [ref #190] deletions also use PreviousValue now (74f85b1)
    • [ref #190] refactor (0e65559)
    • [ref #190] be explicit about what the previous reflog oid is for… (c04c8b9)
    • [ref #190] don't claim there was a previous oid unnecessarily… (68f7fc2)
    • [ref #190] refactor (07126d6)
    • [ref #190] Allow for explicit expected previous values (1a4786f)
    • [ref #190] prepare massive refactoring to get additional constraint (9741987)
    • [refs #190] refactor; handle value-checks in dereffed symlinks correctly (63bedc7)
    • [ref #190] refactor (3f36a01)
    • [object #190] More conversion methods for Object (78bacf9)
    • [odb #180] refactor (eff21da)
    • [pack #179] refactor (ab6554b)
    • [object #177] fix docs (2fd23ed)
    • [object #177] tag::RefIter -> TagRefIter (28587c6)
    • [object #177] migrate immutable::tree to crate::tree (fa5cd06)
    • [object #177] move immutable::* to crate::*Ref, start iter adjustments (461dc53)
    • [object #177] rename immutable::* to immutable::*Ref (6deb012)
    • Release git-object v0.13.0 (708fc5a)
    • Merge branch ‘git-ref-refactor’ (5dbf753)
    • [ref #175] follow (try_)find(_what) naming convention (679895c)
    • [ref #175] fix docs (dd1edc3)
    • [ref #175] refactor log line (7ac948a)
    • [ref #175] refactor (1243459)
    • [ref #175] make ‘mutable’ module private (a80dbcf)
    • Release git-actor v0.5.0 (a684b0f)
    • [actor #175] refactor (ec88c59)
    • [ref #175] refactor (292e567)
    • Release git-actor v0.4.0 (16358c9)
    • [actor #173] rename immutable::Signature to SignatureRef! (96461ac)
    • Release git-lock v1.0.0 (f38f72c)
    • Release git-tempfile v1.0.0 (1238535)
    • Merge branch ‘Byron:main’ into main (dc58eca)
    • Upgrade to nom-7 (f0aa3e1)
    • [repository #165] fix docs (b4fdfd7)
    • Release git-ref v0.6.0 (0bb4c13)
    • [ref #165] refactor (66624c3)
    • [repository #165] refactor (00ec15d)
    • Release git-ref v0.5.4 (bc5d860)
    • [smart-release #162] FAIL: one level down, using the cache isn't really working… (65db010)
    • [ref] Out of bounds check to prevent legitimate panic (303608c)
    • Apply nightly rustfmt rules. (5e0edba)
    • Release git-ref v0.5.3 (e6a8020)
    • [ref #157] Support for unsorted packed refs and those without header (2724688)
    • Release git-ref v0.5.2 (50dcca9)
    • Remove dev-dependency cycles by removing their version (c40faca)
    • Release git-diff v0.8.0, git-odb v0.20.0, git-pack v0.8.0, git-traverse v0.7.0 (f123f69)
    • Release git-diff v0.7.0, git-odb v0.19.0, git-pack v0.7.0, git-traverse v0.6.0 (c67291f)
    • Release git-object v0.12.0 (7006150)
    • Release git-actor-0.3.1 (727087d)
    • [utils #154] commit manifest changes; create tags (95dcd9d)
    • (cargo-release) version 0.3.0 (263088b)
    • (cargo-release) version 0.18.0 (b327590)
    • (cargo-release) version 0.17.0 (c52a491)
    • (cargo-release) version 0.6.0 (d58f37e)
    • (cargo-release) version 0.11.0 (a5be31c)
    • (cargo-release) version 0.5.0 (bf15c2a)
    • (cargo-release) version 0.3.0 (64efc05)
    • (cargo-release) version 0.4.0 (70ef344)
    • Revert “[ref] break dev-dependency cycle” (436e89b)
    • (cargo-release) version 0.5.1 (6f61fca)
    • [ref] break dev-dependency cycle (d5af428)
    • (cargo-release) version 0.5.0 (ae02dab)
    • (cargo-release) version 0.4.0 (0d5c8b9)
    • (cargo-release) version 0.16.0 (1231dbd)
    • (cargo-release) version 0.2.0 (20d8e27)
    • (cargo-release) version 0.5.0 (0e11e98)
    • (cargo-release) version 0.2.0 (8ff5115)
    • [ref] refactor (501182b)
    • [ref #152] remaining tests for transaction namespacing (63d80c0)
    • [ref #152] first succeeding test for namespace rewriting (758c8f6)
    • [ref #152] first failing test for namespaced updates (a81f1d4)
    • [ref #152] refactor (f9c63fb)
    • [ref #152] namespace prefix stripping and fixed test expectations (bce135b)
    • [ref #152] a test for namespaced iteration (2338c6e)
    • [ref #152] packed-refs are optional for generalized iteration, too (88525a9)
    • [ref #152] FAIL: cleanup iter API by allowing Optionpacked::Buffer (1836243)
    • [ref #152] prepare namespaced iteration tests (cf5abc9)
    • [ref #152] no silent failure if path conversion isn't possible (8df04d8)
    • [ref #152] introduce Namespace type (67d5c85)
    • [ref #152] sketch API for namespaces (138be95)
    • [ref #152] docs (8d6c856)
    • [ref #152] refactor (bfb82fb)
    • [ref #152] all tests and impl for refname expansion (9cef2f2)
    • [ref #152] refactor (431dd86)
    • [ref #152] basic test setup for namespace expansion (e852399)
    • Clippy on tests and thanks clippy (a77a71c)
    • Thanks clippy (e1964e4)
    • [ref #140] finish implementation of tag peeling, with test (c06e729)
    • [ref #140] refactor (edcc395)
    • [ref #140] sketch ref tag peeling (ef90652)
    • [ref #140] refactor (8e1a730)
    • [ref #139] add missing docs (5422ec8)
    • [ref #139] my first empty test but where else to document this :)? (0f00065)
    • [ref #139] refactor (a8f5d8d)
    • [ref #139] peeling for all refs to be written to a pack (cc891a1)
    • [ref #139] refactor (7e15817)
    • [ref #139] Allow packed-refs creation in the presence of updates (0cf7314)
    • [ref #139] impl of loose ref deletion, but it doens't work yet… (f6631ad)
    • [ref #139] a failing test for pruning loose refs into packed refs (437c610)
    • [ref #139] refactor (62558cb)
    • [ref #139] a first sketch to resolve object chains for packed ref peeling (54bc116)
    • [ref #139] Allow ‘git pack-ref --no-purge’ essentially (c32d8b7)
    • [ref #139] refactor (e5fbc4c)
    • [ref #139] refactor (4e1b95e)
    • [ref #139] refactor (42215a1)
    • [ref #139] a complete test for the first packed-refs mode (f332dcf)
    • [ref #138] delete packed-refs when it's empty after rewrite (8b7c359)
    • [ref #138] refactor (3fc0014)
    • [ref #138] no need for preprocessing, input is already checked (a6fca6e)
    • [ref #138] less is more… (6f39713)
    • Thanks clippy (169a39d)
    • [ref] the first green packed deletion… (76a23b0)
    • [ref] refactor (packed refs aren't changed in memory) (0a7e8ce)
    • [ref] basic packed transaction commit impl, but it doesn't work yet (1913099)
    • [ref] fix order of operations when committing the transaction (be5774a)
    • [ref] refactor (69d53f9)
    • [ref] first revised sketch of packed-refs writing (f942c76)
    • [ref] work on first naive transaction, but… (b08cc4a)
    • [ref] tests incorporating packed-ref deletion (399096e)
    • [ref] validate packed refs are taken into consideration during create/update (25999b4)
    • [ref] allow creating new packed-refs files as well; prepare test arena (8494c74)
    • [ref] refactor (e379177)
    • [ref] refactor (a844146)
    • [ref] refactor (bd94ea5)
    • [ref] actually make use of packed refs in file transactions (7746238)
    • [ref] refactor (7a7b0dc)
    • [ref] refactor (74ed358)
    • [ref] first basic sketch of packed-ref transaction (8aac30c)
    • [ref] on the way to requiring a packed transaction for file transactions (85f30ac)
    • [ref] prepare existing refs to take packed-refs into account… (5849b44)
    • [ref] remove one todo, add another… (46c47ab)
    • [ref] all todos done (7632573)
    • [ref] refactor (fb37e96)
    • [ref] refactor (23ea139)
    • [ref] rev-iter for overlay references (8b28d4a)
    • [ref] refactor (a80b8c1)
    • [ref] tests for remaining todos (0ef6b3d)
    • [ref] remove loose::Reference backref to simplify everything (9f1d960)
    • Revert “[ref] back-reference of packed refs to their packed buffer” (464aefe)
    • Revert “[ref] FAIL: let‘s not add more back-refs, let’s add less” (eaf4e9a)
    • [ref] FAIL: let‘s not add more back-refs, let’s add less (8e90d75)
    • [ref] back-reference of packed refs to their packed buffer (da860ef)
    • [ref] refactor (61972a2)
    • [ref] refactor (f03c614)
    • Thanks clippy (08f8bc4)
    • [ref] probably fix windows (6eb2532)
    • [ref] refactor (3df606a)
    • [ref] test for peel one level of packed ref (3d8602f)
    • [ref] assure packed-refs have a consistent target after peeling. (29a352a)
    • Thanks clippy (321908e)
    • [ref] improve import paths (2dbe785)
    • [ref] refactor (49fc212)
    • [ref] prepare to create loose:Reference (8ed3916)
    • [ref] refactor (f222525)
    • [ref] finally peeling works again (d5bd75a)
    • [ref] packed-refs are now enforcing valid names (5d92919)
    • [ref] prepare peel test; realize another refactoring requirement (62f7155)
    • [ref] refactor (ae4d5da)
    • [ref] refactor (e26c72f)
    • [ref] refactor (f4bb7a0)
    • [ref] another test to run into one more todo (13502f5)
    • [ref] some TODOs to not forget (4d6a75c)
    • [ref] and it compiles again, may todos left (16618b9)
    • [ref] all required Reference methods are defined, but… (3c976a6)
    • [ref] refactor (65f7a7d)
    • [ref] changing the ref type means a lot of breakage and some unsolved problems (407dc4d)
    • [ref] refactor to be able to use loose_then_packed::Reference for top-level find (2c4e45a)
    • [ref] figure out how peeling works with packed-refs… (2801f7a)
    • Revert “[ref] FAIL: actually it's enough to give access to ‘packed’ when peeling only” (8dc6295)
    • [ref] FAIL: actually it's enough to give access to ‘packed’ when peeling only (5173a97)
    • [ref] put packed-ref lookups into the correct spot (6d11e22)
    • [ref] remove over-complicated refs store trait which… (1cc876c)
    • [ref] refactor (62e682c)
    • [ref] API sketch for allowing packed-refs to be used in find() (ca736ab)
    • [ref] fix windows build (f99851b)
    • [ref] assure names are using forward slashes in file-based refs (ff695e4)
    • [ref] prefix iteration for all references (228ca00)
    • [ref] improve structure; fix docs (aa6052a)
    • [ref] overlay really seems to work (d2ec30a)
    • [ref] more detailed overlay test (d747d73)
    • Thanks clippy (636e1fd)
    • [ref] fix windows build… (65e6953)
    • [ref] first successful test for overlay iterator (5f92488)
    • [ref] conversion for packed refs (929bb0f)
    • [ref] loose refs iteration in overlay iterator (0b0f64d)
    • [ref] leverage sorted file iteration (036257e)
    • [ref] add setup for parallel file traversal tests (1306647)
    • [ref] reproducible loose ref iteration with built-in sorting (e138748)
    • [ref] sketch remaining overlay types, now on to ‘next()’ (6792cf1)
    • [ref] a way to obtain valid ref names along with their path for overlay iteration (bbaa1eb)
    • [ref] first steps towards test and impl for overlay iterator (f5d07b6)
    • [ref] add missing docs (e6052a5)
    • [ref] all remaining tests (ee9bc21)
    • [ref] first successful test for prefix filtering in packed refs (430549d)
    • [ref] run all performance tests (3635b25)
    • [ref] simple performance tests to get an idea of what it can do… (06bedcd)
    • [ref] perf ‘test’ for ref iteration (922d129)
    • Thanks clippy (a39a68a)
    • [ref] rename find_one to ‘find’ in git-ref… (ae7746a)
    • [ref] refactor (758c090)
    • [ref] finish packed find() lookup testing (5f67c19)
    • [ref] refactor (953939c)
    • [ref] prevent unnecessary rounds for full names that aren't found (fb765de)
    • [ref] Assure ref-misses misses aren't parse-errors (d9d1360)
    • [ref] basic lookup rule impl; needs more test cases (3226f77)
    • [ref] fix compile warning on windows (c328774)
    • [ref] a test case specifically for lookup rules (ab3a34f)
    • Remove unnecessary pub(crate) exports (3d2456e)
    • [ref] refactor (140da9a)
    • [ref] improve parse failure handling in packed-ref lookup (ba62aab)
    • [ref] refactor (959abc7)
    • [ref] prepare for proper full-name conversion (0e6d3f2)
    • [ref] searching fully qualified reference names actually works. (9b2579c)
    • [ref] prepare find() impl… (b26dd1e)
    • [ref] assure packed-refs buffers are sorted (a797493)
    • [ref] refactor (897a49a)
    • [ref] windows fix; now maybe? (0e1a204)
    • [ref] windows pathname replacement: \ -> /… (94a1e02)
    • [ref] fix one test failure on windows (21f1031)
    • [ref] rough frame for finding packed refs (a24a54f)
    • [ref] learn more about the windows issue… (dde6276)
    • [ref] refactor (c150aba)
    • [ref] prefixed loose ref iteration (49ce1e2)
    • [ref] refactor; tests for prefix iteration (63566eb)
    • [ref] loose ref iteration with broken ref support (2d1234f)
    • [ref] maybe fix windows (6fc7784)
    • [ref] first rough implementation of loose ref iteration (918af42)
    • [ref] packed-refs iteration… (ea97e06)
    • [ref] docs for packed refs iterator (02690bc)
    • [ref] fix ‘small’ build (5fd10fe)
    • [ref] packed-refs iteration works, incl. decent error handling (e5a6b9d)
    • [ref] the first packed-refs iterator tests (f6d769e)
    • [ref] refactor (207a799)
    • [ref] flexible and simple support for different hash lengths (9c2edd5)
    • Revert “[ref] parameterize all uses of hash length…” (21f187e)
    • [ref] sketch of iterator (6c05243)
    • [ref] refactor (79184cf)
    • [ref] parameterize all uses of hash length… (5c7285e)
    • [ref] less lenient packed-ref header parsing (45b41e0)
    • Thanks clippy (33f1b00)
    • [ref] refactor (de526b3)
    • [ref] first working packed ref line parsing (bc60229)
    • [ref] first test for line (and peeled ref) parsin (7af27c5)
    • [ref] refactor (b74913e)
    • [ref] refactor (d0eb819)
    • [ref] packed refs header line parsing (fde5543)
    • [ref] first rough steps to testing parsing a little (57659e9)
    • [ref] sketch packed refs, but… (8951b3f)
    • [ref] refactor + docs review (4b9b034)
    • [ref] the last TODO is gone (01dc422)
    • [ref] down to the last todo (23cea99)
    • [ref] two more tests but only one todo down (bf947d6)
    • [ref] the drop test (e472bde)
    • [ref] refactor (059f836)
    • [ref] refactor (7faf6f2)
    • [ref] adjust expectation to not do any special HEAD business (49d294a)
    • Revert “[ref] FAIL: realize that HEAD-reverse-lookup isn't done in transactions…” (8b0d7b6)
    • [ref] FAIL: realize that HEAD-reverse-lookup isn't done in transactions… (6098ba0)
    • [ref] test to validate HEAD update as special case of… (276aa9a)
    • [ref] refactor (861483a)
    • [ref] validate non-empty directories (8fb625d)
    • [ref] moving a ref onto empty directories works now… (a237f77)
    • [ref] refactor (ed40a87)
    • [ref] another complex test works (ebdbfae)
    • [ref] fix build (b4dcdfc)
    • [ref] try fix windows, once again (95e74dd)
    • [ref] refactor (a261b82)
    • [ref] probably fix windows (a8b7c8d)
    • [ref] allow reflogs to be created in place of empty directory trees (80a6e0e)
    • [tempfile] a way to delete empty dirs recursively (6025aa0)
    • [ref] refactor (21920ec)
    • [ref] refactor directory handling (45dbf22)
    • [ref] refactor (92867c5)
    • [ref] handle existng empty directories more gracefully… (0849c70)
    • Thanks clippy (d967e30)
    • [ref] handle create-or-append when writing valid reflog files… (9175085)
    • [ref] refactor (1ee3419)
    • [ref] auto-creation logic for reflogs (80f71dc)
    • [ref] reflog creation test is quite complete (b67e79c)
    • [ref] allow commiter to be passed for use in reflog (80f5627)
    • [ref] tests for converting reflock paths into log paths (1f2e754)
    • [ref] refactor (a29fcf1)
    • [ref] frame for reflog creation or update (81cb790)
    • [ref] refactor (a76929b)
    • [ref] disambiguate create-or-update logic (585f369)
    • [ref] write out Create-or-Update logic to see that's its probably not going to cut it. (54d084f)
    • [ref] show how the original name can be displayed for lock failures… (07f0c2d)
    • [ref] write peeled previous OID through to parent refs (3355dd8)
    • [ref] fix child link transformation (5d9a685)
    • [ref] refactor (2f92f36)
    • [ref] sketch of inverting parent links for later oid lookup (a050f18)
    • [ref] refactor (1e88948)
    • [ref] add reflog message to change… (b31e103)
    • [ref] sketch more detailed test for updating reflogs (5a657cd)
    • Thanks clippy (eb8ea22)
    • [ref] the last deletion test (258a494)
    • [ref] refactor (db76cfd)
    • [ref] deletion won't have problems with broken refs (286b5c1)
    • Thanks clippy (e5da69e)
    • [ref] add failing deletion test for broken refs (578413f)
    • [ref] another del test (d935d6f)
    • [ref] another deletion test (8b756e0)
    • [ref] another deletion test (69ede1b)
    • [ref] refactor (d05a646)
    • [ref] Make sure edit preprocessing happens in the right order (2d5f9aa)
    • [ref] refactor (dd9c99b)
    • [ref] refactor (97fc864)
    • Thanks clippy (f436f18)
    • [ref] splitting handles reference cycles (09b4fc1)
    • [ref] splitting actually works! (a9f824b)
    • [ref] first stab at splitting refs, needs more elaboration to fulfil expectations (66b1f37)
    • [ref] refactor (eb0328f)
    • [ref] first part of ref splitting is tested (ce7f83b)
    • [ref] refactor; prep slitting tests (7ffc619)
    • [ref] refactor (683651d)
    • [ref] first sketch of generalized splitting of edits (1f2efdc)
    • [ref] working on splits really shows that we want more than one enum maybe… (1b62838)
    • [ref] need ref splitting for the first time. (f52989f)
    • [ref] better deletion tests; more useful return value (96848f6)
    • Thanks clippy (ef9bfd2)
    • [ref] another deletion test succeeds (6037900)
    • [ref] refactor, not quite sure about delete mode… (683991a)
    • [ref] another test; failing for now (1908b69)
    • [ref] another test green (104598e)
    • [ref] first succeeding deletion test (3445d7d)
    • [ref] refactor (d2e2e8f)
    • [ref] first deletion tests (e41f8c8)
    • [ref] write more details on how prepare and commit should work overall. (a7d988b)
    • [ref] refactor; get closer to what git does… (488f311)
    • [ref] refactor (58a5653)
    • [ref] first very basic ref writing (7ebed3f)
    • [ref] remove complexity in the name of performance, fix windows… (77c3f24)
    • [ref] (probably) fix windows (7c1eead)
    • Thanks clippy (6865549)
    • [ref] slowly getting there (6506924)
    • [ref] a way to determine if a reflog exists. (e6fbba8)
    • [ref] reference::log_iter_rev() (1f7af5d)
    • [ref] reference.log_iter() works, but… (c298473)
    • [ref] [FAIL] try to forward iterator creation to reference… (ef1737c)
    • [ref] refactor (129bccf)
    • [ref] refactor (96dd98b)
    • [ref] refactor (a7dd994)
    • [ref] refactor (3460127)
    • [ref] store ref log reverse iterator (34d7957)
    • [ref] store can provide reflog forward iter… (9adb9ca)
    • [ref] more assertions (8000677)
    • [ref] a fully implemented first test with assertions (29a5893)
    • [ref] sketch more tests that will be needed (01690be)
    • [ref] add control over handling lock failures during transaction (7c4057a)
    • [ref] generic operation on input edits, split-suitable now (7f4f637)
    • [ref] try using borrow on a slice intead of iterator… (b2371d9)
    • [ref] duplicate ref edit checks… (3ec0182)
    • [ref] a more fleshed out API for file transactions (918123f)
    • [ref] on the way towards realistic transactions… (c808cb1)
    • [ref] on the way to setup the first transaction test (29c0b51)
    • [ref] file store can ignore all writes; sketch transaction API (52a81e9)
    • [ref] refactor (6a84790)
    • [ref] log line writing (3da8fcf)
    • [ref] Line::from_bytes(…); iter uses that now (7895995)
    • [ref] test for small buffer sizes (6183772)
    • [ref] handle multiple buffer reloads (4559c7a)
    • [ref] refactor (65e333d)
    • [ref] refactor (2b416ee)
    • [ref] refactor (82b18e5)
    • [ref] multi-line reverse iteration works, without window shift for now (f1e3861)
    • [ref] first reverse iter test succeeding (8875601)
    • [ref] let's not forget to simply not try to return borrowed things from iterators (bcc934d)
    • [ref] FAIL: try it with included buffer (189080e)
    • [ref] FAIL another attempt this time without iterator… (5e73dc2)
    • [ref] FAIL at attempt to to have self-referential iterators :D… (bc4012e)
    • [ref] first test for reverse iterator and more boilerplate (40db355)
    • [ref] refactor (4daddb1)
    • [ref] sketch of reverse iterator (c581d16)
    • [ref] thanks clippy (4ba3b08)
    • [ref] significantly simplify error messages… (b15cb16)
    • [ref] don't include terminators to get slightly nicer error messges (09bbc6d)
    • [ref] another test for iter::forward() (1d84302)
    • [ref] a forward iterator with a single test (917040c)
    • [ref] log line docs (10ab8e0)
    • [ref] refactor (cd89e21)
    • [ref] more context for line parsing (ddb5f9d)
    • [ref] refactor (a08fb77)
    • [ref] be truly zero copy and delay work to when it's first asked for (b4e594b)
    • [actor] FAIL an attempt to remove btoi errors (3f99cf5)
    • [actor] pure nom error handling… (78cbe18)
    • [ref] refactor (8694488)
    • [ref] getting there! (bd73d8e)
    • [ref] a step forward to nom error handling, but… (426ae5b)
    • [ref] try really hard to use generic verbose nom errors but… (1031625)
    • [ref] tests and impl for happy cases (7be82f0)
    • [ref] the first test for log line parsing; make serde1 work (cba3cdc)
    • [refs] try to get structure in place for reflog parsing (727c66a)
    • [refs] sketch more of transactions so it has all it needs (8f9a015)
    • [refs] allow writing any valid ref value instead of limiting ourselves to object ids (114fce8)
    • [refs] finish transaction sketch (or so it seems) (976a079)
    • [refs] this gets more and more interesting (e056495)
    • [refs] finish research for transactions and their flags (2eb3bcc)
    • [refs] sketch some parts of a transaction based on git source (d9a5d32)
    • (cargo-release) version 0.3.0 (87db688)
    • (cargo-release) version 0.3.0 (6b33678)
    • (cargo-release) version 0.2.0 (3286e42)
    • [git-refs] a way to build a big packed-refs file (5113529)
    • (cargo-release) version 0.4.0 (866f86f)
    • [git-repository] traversal program uses new facilities, and it's cumbersome (29ea2de)
    • [git-repository] most of the git repository discovery (72a49c8)
    • [git-ref] refactor (0c795c5)
    • [git-ref] fix docs (4fbc476)
    • [git-ref] docs complete (93a1f4e)
    • [git-ref] nicer semantics for peel_in_place_to_id() (d3250a7)
    • Revert “[git-ref] refactor (Option<Result… -> Result<Option…” (d4046e9)
    • [git-ref] refactor (Option<Result… -> Result<Option… (774e86c)
    • [git-ref] refactor (928b637)
    • [git-ref] more docs (f962c74)
    • [git-ref] refactor (415f15a)
    • [git-ref] a bunch of docs (7cfc5ab)
    • Thanks clippy (93915fa)
    • [git-ref] peel to id done (f74771c)
    • [git-ref] first working peel-to-id() (3574f87)
    • [git-ref] frame for peel_to_id (3710b6c)
    • [git-ref] peeling without an iterator, fine (b118946)
    • [git-ref] first stab at reference iteration… (806d10e)
    • [git-ref] refactor (c363269)
    • [git-ref] find_one_existing(…) for convenience (7a443ff)
    • [git-ref] some find failure cases (d855051)
    • [git-ref] handle all find_one cases as per docs (3c0acc6)
    • [git-ref] more ways of finding reference (b3c4e92)
    • [git-ref] the first green find_one test (30177e8)
    • Thanks clippy (8f0e9ed)
    • [git-ref] first basic impl shows validation needs a little adjustment (8b901c7)
    • [git-ref] a sketch of find_one - easiest for the caller for sure (ec96256)
    • [git-ref] refactor (5bac585)
    • [git-ref] frame for loose store reference lookup (30b0d54)
    • (cargo-release) version 0.2.0 (1327894)
    • [git-ref] use git-validate crate (6b4f937)
    • [git-ref] Setup more tests to realize we really want validate::tag (54ee5b5)
    • [git-ref] frame for validation (9656ac6)
    • [git-ref] failure tests (567e86c)
    • [git-ref] more tests (048fb77)
    • [git-ref] refactor (77d0cc0)
    • [git-ref] don't support serde for now (2a6295b)
    • [git-ref] refactor (02e545b)
    • [git-ref] first basic 'ref: ' parsing (60fa3ba)
    • [git-ref] refactor (9a30f87)
    • [git-ref] the first succeeding test (cebfdb4)
    • [git-ref] the first failing test (7e802a0)
    • [git-ref] sketch ref creation (c5241b8)
    • [git-ref] A sketch of how it looks like with Store backref (1a08f1c)
    • [git-ref] more scaffolding (8c6e884)
    • [git-ref] clear it out and move existing functionality to git-object (fa548ce)
    • (cargo-release) version 0.5.0 (b6b5856)
    • [pack-gen] refactor (61554e2)
    • (cargo-release) version 0.4.1 (25d2c2e)
    • Document git-ref (91dce23)
    • Remove dash in all repository links (98c1360)
    • Merge from main. (b59bd5e)
    • Refactor (ba1d883)
    • (cargo-release) version 0.4.0 (f9dd225)
    • Allow dual-licensing with Apache 2.0 (ea353eb)
    • Refactor (63c1292)
    • Bump minor version to 0.3 (4351e28)
    • Update to quick-error 2.0 (4b1b784)
    • (cargo-release) version 0.2.0 (d350a13)
    • Switch to latest quick-error (9760856)
    • Assert we don't exeed package sizes (df66d74)
    • Refactor (6ad9304)
    • Refactor (1fd90f7)
    • Test for common ascii control characters (ae0c885)
    • All test for valid ref name except for ascii control chars (a157acf)
    • Add new ‘git-ref’ crate; place ref name validation code there (1a0e84e)

0.23.1 (2023-01-10)

A maintenance release without user-facing changes.

0.23.0 (2023-01-09)

A maintenance release without user-facing changes.

0.22.0 (2022-12-30)

A maintenance release without user-facing changes.

0.21.0 (2022-12-19)

A maintenance release without user-facing changes.

0.20.0 (2022-11-21)

New Features (BREAKING)

  • upgrade edition to 2021 in most crates. MSRV for this is 1.56, and we are now at 1.60 so should be compatible. This isn‘t more than a patch release as it should break nobody who is adhering to the MSRV, but let’s be careful and mark it breaking.

    Note that gix-features and gix-pack are still on edition 2018 as they make use of a workaround to support (safe) mutable access to non-overlapping entries in a slice which doesn't work anymore in edition 2021.

0.19.0 (2022-11-17)

New Features

  • file::Transaction::rollback() allows to explicitly roll back a pending change. As opposed to dropping the Transaction, this method allows to obtain all edits that would have been applied.
  • higher performance for edits which would write the same value. Instead of moving them into place, we just drop them, without ever writing into them.

Bug Fixes

  • assure symrefs don‘t get deleted when moving refs to packed-refs. Previously it was possible for symbolic refs to be deleted right after they have been created or updated as they were included in the set of refs that was assumed to be part of packed-refs, which isn’t the case for symbolic refs.

  • case-insensitively conflicting references can be created even on case-insensitive filesystems*. The asterisk indicates that this only works if packed-refs are present and these references are written straight to packed references without ever trying to handle the otherwise conflicting loose reference files.

    This is done by leveraging the fact that in presence of packed-refs or a pending creation of packed-refs, there is no need to create per-file locks as concurrent transactions also have to obtain the packed-refs lock and fail (or wait) until it's done.

  • instead of erroring if loose iteration is performed on missing base, correctly yield zero references. Previously it reported an error, now it does not and instead performs no iteration, which is more helpful to the user of the API I believe as they won't randomly fail just because somebody deleted the refs folder.

  • loose ref iteration on a repo with missing ‘ref/’ fails when creating the iterator. Previously, it would fail on first iteration, making it seem like there is one reference even though it's just an error stating that the base cannot be read.

    This is clearly worse than making a metadata check on the filesystem, no matter how unlikely the case.

0.18.0 (2022-11-06)

Bug Fixes

  • allow symref updates to receive reflogs if these are new… …and well-known on top of that, that means having an exact expectation on what should be present.

    This allows symrefs to be created with reflog.

Bug Fixes (BREAKING)

  • support for non-'static PackedRefs transactions. When configuring for packed-refs updates, previously one needed to provide a function to find objects that could not borrow data due to implicit 'static requirement. This has been lifted to allow it to access references to data on the stack.

0.17.0 (2022-10-10)

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 gix_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.

0.16.0 (2022-09-20)

Chore (BREAKING)

  • replace quick-error with thiserror

0.15.4 (2022-08-28)

New Features

  • Add Reference::delete() for simple reference deletion

0.15.3 (2022-08-27)

Maintenance release without user-facing changes.

0.15.2 (2022-08-24)

Chore

  • uniformize deny attributes
  • remove default link to cargo doc everywhere

New Features

  • use docsrs feature in code to show what is feature-gated automatically on docs.rs
  • pass --cfg docsrs when compiling for https://docs.rs

0.15.1 (2022-08-17)

Bug Fixes

  • always update modification date when packed refs are forcefully reloaded. The latter happens right after the file was written, which means we definitely have to update our modification date or else the buffer will be read again next time somebody asks for an up-to-date version.

    The ordering of operations is such that at worst, the buffer is loaded again instead of keeping an outdated version of it, which would happen if the metadata is read afterwards.

0.15.0 (2022-07-22)

New Features

  • Add store::WriteRefLog::Always to unconditionally write reflogs.
  • Allow Reference to be serialized/deserialized with serde.

Changed (BREAKING)

  • Target(Ref)?::try_name() now returns Option<&FullNameRef>. That way, the name is actually directly usable in most methods that require a validated name as input.

0.14.0 (2022-06-13)

A maintenance release without user-facing changes.

0.13.0 (2022-05-18)

New Features

  • ref iteration for worktrees. It merges the iteration result of private worktree refs along with all shared common references references.
  • Category::LinkedRef With it one can access all refs as advertised.
  • Category::MainRef With it it will be possible to compute all paths correctly and actually perform certain operations as documented.
  • Category::(WorktreePrivate|Bisect|Rewritten)
  • Category::LinkedPseudoRef
  • Add Category::MainPseudoRef
  • Category::PseudoRef

Changed (BREAKING)

  • Transaction::commit(…) takes gix-actor::SignatureRef instead of …::Signature. This makes the API more versatile and corrects a shortcoming that was caused by SignatureRef previously being unable to serialize itself.

  • remove FullName::to_ref() in favor of •::as_ref(). This became possible now that FullNameRef is a proper ref, not just ref-like.

  • rename PartialNameRef to PartialNameCow Because this is what it is, which also implies that it's not Copy anymore which a Ref would definitely be.

    The reason we need this to be a Cow is to support passing ownership.

  • remove Store from public API It is unclear if ref-tables, which are the reason for it to exist in the first place, will fit into the concept as they might not support worktrees. It's entirely unclear how this works.

    Maybe there can be a non-worktree version of the store with work-trees only being supported by the file based ref database, and ref-tables remaining a server-side feature.

  • rename file::Store::base() to git_dir(). That way it is clearer what it actually is especially in presence of the newly added file::Store::common_dir() method.

    That way, work-trees can eventually be properly supported.

New Features (BREAKING)

  • Turn FullNameRef into an actual reference type. That way Cow<'_, FullNameRef> works as expected.

0.12.1 (2022-04-05)

Changed (BREAKING)

  • rename PartialNameRef to PartialNameCow Because this is what it is, which also implies that it's not Copy anymore which a Ref would definitely be.

    The reason we need this to be a Cow is to support passing ownership.

  • remove Store from public API It is unclear if ref-tables, which are the reason for it to exist in the first place, will fit into the concept as they might not support worktrees. It's entirely unclear how this works.

    Maybe there can be a non-worktree version of the store with work-trees only being supported by the file based ref database, and ref-tables remaining a server-side feature.

  • rename file::Store::base() to git_dir(). That way it is clearer what it actually is especially in presence of the newly added file::Store::common_dir() method.

    That way, work-trees can eventually be properly supported.

New Features

  • add FullName(Ref)::category_and_shortname() It's a combination of shorten() and category() for convenience.
  • Category::LinkedRef With it one can access all refs as advertised.
  • Category::MainRef With it it will be possible to compute all paths correctly and actually perform certain operations as documented.
  • Category::(WorktreePrivate|Bisect|Rewritten)
  • Category::LinkedPseudoRef
  • Add Category::MainPseudoRef
  • Category::PseudoRef

0.12.0 (2022-04-03)

New Features

  • Fullname(Ref)::category() and Category A way to classify references.
  • FullName(Ref)::strip_prefix() Get a short-hand for any reference name.
  • Add gix_config::values::Path for a typesafe git path Add a Path type to the gix_config::values which can be interpolated according to gits own path interpolation rules.
  • FullNameRef::file_name()
  • Display implementation for FullName.

Bug Fixes

  • support Rust 1.52

Changed (BREAKING)

  • Target::as_(id|name) -> Target::try_(id|name) Conform to naming conventions, whenever something returns an option or Result while there is a more direct name that panics, prefix try_.

0.11.0 (2022-01-23)

New Features

  • FullNameRef::file_name()
  • Add file::Store::find_packed(…, buffer) This makes the API complete as now there is a methods that uses the internal buffer, or the provided one, where both can have its benefits.
  • add Reference::peel_to_id_in_place_packed() and Reference::follow_packed() This allows a stable/non-changing buffer to be used.

Bug Fixes

  • support Rust 1.52

Changed (BREAKING)

  • Required object_hash as parameter when instantiating any Store This is needed to choose the correct kind of object hash in a couple of situations, and future-proofs it for when ref-table arrives.
  • remove Target::must_exist() It was a remainder of an old API which since has been replaced with a more explicit approach.
  • remove pack-cache from Find::try_find(…) With the new architecture this can be an implementation detail without forcing it to be Sync.
  • move gix_pack::data::Object to gix_object::Data, massively alter gix_odb::Find trait This will break a lot, but has to happen to prepare these traits for the next generation of object databases.

0.10.0 (2021-11-29)

With this release, file::Store is easier to use due to thread-safe handling of an internal and shared packed-buffer instance. An API for passing it as parameter like before is still present, allowing to use a ‘frozen’ version of the packed buffer for any amount of operations.

New Features

  • Add file::Store::iter_(prefixed_)packed().

    These methods allow using an own packed buffer, usually obtained through cached_packed_buffer().

  • add file::Store::cached_packed_buffer() for packed refs snapshots

  • add file::Store::try_find_packed(…, packed_buffer) That way, abstractions can still be built that have other ways of managing the packed-refs buffer, allowing it to stay more persistent.

Changed (BREAKING)

  • rename file::Store::packed_buffer() to …::open_packed_buffer() This makes much clearer what it actually does, as previously it might have been a stored packed buffer as well.

  • file::Store::from(PathBuf) removed At this low level, it‘s important to be clear about RefLogs and rather force the caller to specify the ref-log mode. Technically it depends on a few factors, gix deals with them, but certainly shouldn’t default to anything without being clear.

  • Reference log line access Reference::log_iter(…) now is a platform instead of a forward iterator, which requires a call to .all() to return the forward iterator like previously.

    Reference::log_iter_rev(…) was removed in favor of Reference::log_iter(…).rev().

  • file::Store::iter() is now a platform, with .all() and .prefixed(…) respectively This way, it's possible to keep shared ownership of the packed buffer while allowing the exact same iterator machinery to work as before.

  • file::ReferenceExt::follow(…) now without packed refs parameter

  • file::ReferenceExt::peel_to_id_in_place(…) now without packed-refs buffer It is instead read from the internally synchronized buffer, shared across all instances.

  • file::Store::(try_)find(…, packed) was removed The packed buffer is now handled internally while loading it on demand. When compiled with gix-features/parallel the file::Store remains send and sync.

    The packed refs buffer is shared across clones and it's recommended to clone one file::Store instance per thread, each of which can use its own namespace.

  • move gix_ref::file::WriteRefLog to gix_ref::store::WriteRefLog

Other (BREAKING)

  • Reference::logs() -> Reference::log_iter() The latter now returns a standard Platform to iterate over all reflog entries from oldest to newest or vice versa.

Refactor (BREAKING)

  • file::Store::base is now file::Store::base() and read-only That way, file databases can‘t be repositioned anymore, it’s recommended to recreate it if that's desired.

0.9.1 (2021-11-16)

New Features

  • PartialNameRef<'static>::join() for building paths on the fly
  • Allow PartialNameRef to be created from owned items

v0.9.0 (2021-10-19)

A maintenance release to properly dealing with previously breaking changes in gix-hash.

v0.8.0 (2021-10-15)

This release contains no functional changes, but is considered breaking for safety reasons as gix-traverse is signalling a breaking change.

Other

  • loose reference iteration with non-dir prefixes… Previously it was expected for the prefix Path to always exist for the prefix to be valid. This, however, is not similar to packed prefixes, which allow non-dir prefixes as well.

    Now we will check if the prefix is actually a directory, and if not split it into its parent directory and the filename portion. The latter is then used for prefix matching file names within that directory.

  • improve changelog format

Other

  • add panicking Target::id() and TargetRef::id()

v0.7.3 (2021-09-10)

  • Compatibility with Rust 1.55. It informed about the incorrect usage of std::io::ErrorKind::Other which this crate also dependent on causing runtime bugs. The latter were detected by tests and this release contains the fix to not rely on certain behaviour anymore.

Other

  • loose reference iteration with non-dir prefixes… Previously it was expected for the prefix Path to always exist for the prefix to be valid. This, however, is not similar to packed prefixes, which allow non-dir prefixes as well.

    Now we will check if the prefix is actually a directory, and if not split it into its parent directory and the filename portion. The latter is then used for prefix matching file names within that directory.

v0.7.2 (2021-09-10)

Other

  • improve changelog format

v0.7.1 (2021-09-08)

v0.7.0 (2021-09-07)

Breaking

  • Replace transaction::Create with transaction::PreviousValue and remove transaction::Create
  • Remove file::Reference in favor of Reference
  • Move file::log::Line to log::Line
  • TargetRef::Symbolic(&BStr) -> TargetRef::Symbolic(FullNameRef)
  • replace Transaction::namespace() with file::Store::namespace

v0.6.1

Bugfixes

  • splits of edits to symbolic references will now ‘move’ the desired previous values down to the referents while resorting to not having any requirements in the symbolic ref instead.

v0.6.0 (2021-08-27)

BREAKING

  • rename file::Store::packed() to file::Store::packed_buffer()

v0.5.4 (2021-08-17)

v0.5.3 (2021-08-15)

v0.5.2 (2021-08-13)

v0.5.1 (2021-08-10)

v0.5.0 (2021-08-10)

v0.4.1 (2020-12-19)

v0.4.0 (2020-09-12)

v0.3.0 (2020-08-12)

v0.2.0 (2020-07-23)

v0.1.0 (2020-07-15)