History

Release gix-packetline v0.22.2, gix-worktree-stream v0.36.1, gix-archive v0.36.1, gix-diff v0.67.1, gix-blame v0.17.1, gix-dir v0.29.1, gix-mailmap v0.34.1, gix-revision v0.49.1, gix-merge v0.20.1, gix-negotiate v0.35.1, gix-note v0.1.1, gix-pack v0.74.2, gix-macros v0.1.6, gix-refspec v0.45.1, gix-transport v0.59.1, gix-protocol v0.65.1, gix-status v0.34.1, gix-worktree-state v0.34.1, gix v0.87.1, gix-fsck v0.25.1, gitoxide-core v0.61.1, gix-tix v0.3.0, gitoxide v0.58.0, safety bump gitoxide v0.58.0

Byron committed 2 months ago

Commit 3ebca8b1 parent 209fb8542 files · +1551 −130Browse files

Unified · Split

42 files
  1. Cargo.lock +23 −23
  2. Cargo.toml +4 −4
  3. gitoxide-core/CHANGELOG.md +137 −2
  4. gitoxide-core/Cargo.toml +7 −7
  5. gix-archive/CHANGELOG.md +25 −1
  6. gix-archive/Cargo.toml +2 −2
  7. gix-blame/CHANGELOG.md +61 −1
  8. gix-blame/Cargo.toml +2 −2
  9. gix-diff/CHANGELOG.md +196 −2
  10. gix-diff/Cargo.toml +1 −1
  11. gix-dir/CHANGELOG.md +76 −2
  12. gix-dir/Cargo.toml +1 −1
  13. gix-fsck/CHANGELOG.md +25 −1
  14. gix-fsck/Cargo.toml +1 −1
  15. gix-macros/Cargo.toml +1 −1
  16. gix-mailmap/CHANGELOG.md +89 −1
  17. gix-mailmap/Cargo.toml +1 −1
  18. gix-merge/CHANGELOG.md +251 −2
  19. gix-merge/Cargo.toml +3 −3
  20. gix-negotiate/CHANGELOG.md +25 −1
  21. gix-negotiate/Cargo.toml +1 −1
  22. gix-note/CHANGELOG.md +168 −24
  23. gix-note/Cargo.toml +1 −1
  24. gix-pack/Cargo.toml +2 −2
  25. gix-packetline/CHANGELOG.md +23 −1
  26. gix-packetline/Cargo.toml +1 −1
  27. gix-protocol/CHANGELOG.md +26 −1
  28. gix-protocol/Cargo.toml +6 −6
  29. gix-refspec/CHANGELOG.md +128 −1
  30. gix-refspec/Cargo.toml +1 −1
  31. gix-revision/CHANGELOG.md +115 −1
  32. gix-revision/Cargo.toml +1 −1
  33. gix-status/Cargo.toml +3 −3
  34. gix-tix/Cargo.toml +2 −2
  35. gix-transport/CHANGELOG.md +70 −1
  36. gix-transport/Cargo.toml +2 −2
  37. gix-worktree-state/CHANGELOG.md +25 −1
  38. gix-worktree-state/Cargo.toml +1 −1
  39. gix-worktree-stream/CHANGELOG.md +25 −1
  40. gix-worktree-stream/Cargo.toml +1 −1
  41. gix/Cargo.toml +17 −17
  42. tests/it/Cargo.toml +1 −1
Cargo.lock+23−23
@@ -1508,7 +1508,7 @@ dependencies = [ · 1507 unmodified lines
15081508
15091509 [[package]]
15101510 name = "gitoxide"
1511−version = "0.57.0"
1511+version = "0.58.0"
15121512 dependencies = [
15131513 "anyhow",
15141514 "clap",
@@ -1532,7 +1532,7 @@ dependencies = [ · 17 unmodified lines
15321532
15331533 [[package]]
15341534 name = "gitoxide-core"
1535−version = "0.61.0"
1535+version = "0.61.1"
15361536 dependencies = [
15371537 "anyhow",
15381538 "async-io",
@@ -1572,7 +1572,7 @@ dependencies = [ · 33 unmodified lines
15721572
15731573 [[package]]
15741574 name = "gix"
1575−version = "0.87.0"
1575+version = "0.87.1"
15761576 dependencies = [
15771577 "anyhow",
15781578 "async-std",
@@ -1663,7 +1663,7 @@ dependencies = [ · 84 unmodified lines
16631663
16641664 [[package]]
16651665 name = "gix-archive"
1666−version = "0.36.0"
1666+version = "0.36.1"
16671667 dependencies = [
16681668 "bstr",
16691669 "document-features",
@@ -1713,7 +1713,7 @@ dependencies = [ · 43 unmodified lines
17131713
17141714 [[package]]
17151715 name = "gix-blame"
1716−version = "0.17.0"
1716+version = "0.17.1"
17171717 dependencies = [
17181718 "gix-commitgraph",
17191719 "gix-date",
@@ -1847,7 +1847,7 @@ dependencies = [ · 127 unmodified lines
18471847
18481848 [[package]]
18491849 name = "gix-diff"
1850−version = "0.67.0"
1850+version = "0.67.1"
18511851 dependencies = [
18521852 "bstr",
18531853 "criterion",
@@ -1878,7 +1878,7 @@ dependencies = [ · 24 unmodified lines
18781878
18791879 [[package]]
18801880 name = "gix-dir"
1881−version = "0.29.0"
1881+version = "0.29.1"
18821882 dependencies = [
18831883 "bstr",
18841884 "gix-dir",
@@ -1988,7 +1988,7 @@ dependencies = [ · 103 unmodified lines
19881988
19891989 [[package]]
19901990 name = "gix-fsck"
1991−version = "0.25.0"
1991+version = "0.25.1"
19921992 dependencies = [
19931993 "gix-hash",
19941994 "gix-hashtable",
@@ -2114,7 +2114,7 @@ dependencies = [ · 119 unmodified lines
21142114
21152115 [[package]]
21162116 name = "gix-macros"
2117−version = "0.1.5"
2117+version = "0.1.6"
21182118 dependencies = [
21192119 "proc-macro2",
21202120 "quote",
@@ -2124,7 +2124,7 @@ dependencies = [ · 3 unmodified lines
21242124
21252125 [[package]]
21262126 name = "gix-mailmap"
2127−version = "0.34.0"
2127+version = "0.34.1"
21282128 dependencies = [
21292129 "bstr",
21302130 "document-features",
@@ -2137,7 +2137,7 @@ dependencies = [ · 6 unmodified lines
21372137
21382138 [[package]]
21392139 name = "gix-merge"
2140−version = "0.20.0"
2140+version = "0.20.1"
21412141 dependencies = [
21422142 "arbitrary",
21432143 "bstr",
@@ -2171,7 +2171,7 @@ dependencies = [ · 27 unmodified lines
21712171
21722172 [[package]]
21732173 name = "gix-negotiate"
2174−version = "0.35.0"
2174+version = "0.35.1"
21752175 dependencies = [
21762176 "bitflags 2.13.0",
21772177 "gix-commitgraph",
@@ -2186,7 +2186,7 @@ dependencies = [ · 8 unmodified lines
21862186
21872187 [[package]]
21882188 name = "gix-note"
2189−version = "0.1.0"
2189+version = "0.1.1"
21902190 dependencies = [
21912191 "gix-error",
21922192 "gix-hash",
@@ -2258,7 +2258,7 @@ dependencies = [ · 65 unmodified lines
22582258
22592259 [[package]]
22602260 name = "gix-pack"
2261−version = "0.74.1"
2261+version = "0.74.2"
22622262 dependencies = [
22632263 "bstr",
22642264 "clru",
@@ -2291,7 +2291,7 @@ dependencies = [ · 26 unmodified lines
22912291
22922292 [[package]]
22932293 name = "gix-packetline"
2294−version = "0.22.1"
2294+version = "0.22.2"
22952295 dependencies = [
22962296 "async-std",
22972297 "bstr",
@@ -2354,7 +2354,7 @@ dependencies = [ · 56 unmodified lines
23542354
23552355 [[package]]
23562356 name = "gix-protocol"
2357−version = "0.65.0"
2357+version = "0.65.1"
23582358 dependencies = [
23592359 "async-std",
23602360 "async-trait",
@@ -2425,7 +2425,7 @@ dependencies = [ · 64 unmodified lines
24252425
24262426 [[package]]
24272427 name = "gix-refspec"
2428−version = "0.45.0"
2428+version = "0.45.1"
24292429 dependencies = [
24302430 "bstr",
24312431 "gix-hash",
@@ -2438,7 +2438,7 @@ dependencies = [ · 6 unmodified lines
24382438
24392439 [[package]]
24402440 name = "gix-revision"
2441−version = "0.49.0"
2441+version = "0.49.1"
24422442 dependencies = [
24432443 "bitflags 2.13.0",
24442444 "bstr",
@@ -2506,7 +2506,7 @@ dependencies = [ · 61 unmodified lines
25062506
25072507 [[package]]
25082508 name = "gix-status"
2509−version = "0.34.0"
2509+version = "0.34.1"
25102510 dependencies = [
25112511 "bstr",
25122512 "document-features",
@@ -2596,7 +2596,7 @@ dependencies = [ · 83 unmodified lines
25962596
25972597 [[package]]
25982598 name = "gix-tix"
2599−version = "0.2.0"
2599+version = "0.3.0"
26002600 dependencies = [
26012601 "anyhow",
26022602 "clap",
@@ -2624,7 +2624,7 @@ dependencies = [ · 21 unmodified lines
26242624
26252625 [[package]]
26262626 name = "gix-transport"
2627−version = "0.59.0"
2627+version = "0.59.1"
26282628 dependencies = [
26292629 "async-std",
26302630 "async-trait",
@@ -2737,7 +2737,7 @@ dependencies = [ · 106 unmodified lines
27372737
27382738 [[package]]
27392739 name = "gix-worktree-state"
2740−version = "0.34.0"
2740+version = "0.34.1"
27412741 dependencies = [
27422742 "bstr",
27432743 "gix-discover",
@@ -2759,7 +2759,7 @@ dependencies = [ · 15 unmodified lines
27592759
27602760 [[package]]
27612761 name = "gix-worktree-stream"
2762−version = "0.36.0"
2762+version = "0.36.1"
27632763 dependencies = [
27642764 "gix-attributes",
27652765 "gix-error",
Cargo.toml+4−4
@@ -7,7 +7,7 @@ repository = "https://github.com/GitoxideLabs/gitoxide" · 6 unmodified lines
77 authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
88 edition = "2024"
99 license = "MIT OR Apache-2.0"
10−version = "0.57.0"
10+version = "0.58.0"
1111 # Rust 1.85 is required so hash-related dependencies can use Rust 2024 crates,
1212 # notably `sha2` 0.11 and `hashbrown` 0.17.
1313 rust-version = "1.85"
@@ -171,10 +171,10 @@ gitoxide-core-async-client = ["gitoxide-core/async-client", "futures-lite"] · 157 unmodified lines
171171 [dependencies]
172172 anyhow = "1.0.98"
173173
174−gitoxide-core = { version = "^0.61.0", path = "gitoxide-core" }
174+gitoxide-core = { version = "^0.61.1", path = "gitoxide-core" }
175175 gix-features = { version = "^0.49.1", path = "gix-features" }
176−gix = { version = "^0.87.0", path = "gix", default-features = false }
177−gix-tix = { version = "^0.2.0", path = "gix-tix", default-features = false, optional = true }
176+gix = { version = "^0.87.1", path = "gix", default-features = false }
177+gix-tix = { version = "^0.3.0", path = "gix-tix", default-features = false, optional = true }
178178
179179 clap = { version = "4.5.42", features = ["derive", "cargo"] }
180180 clap_complete = "4.5.55"
gitoxide-core/CHANGELOG.md+137−2
@@ -5,7 +5,140 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines
55 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77
8−## Unreleased
8+## 0.61.1 (2026-08-24)
9+
10+### Commit Statistics
11+
12+<csr-read-only-do-not-edit/>
13+
14+ - 3 commits contributed to the release over the course of 1 calendar day.
15+ - 2 days passed between releases.
16+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17+ - 0 issues like '(#ID)' were seen in commit messages
18+
19+### Commit Details
20+
21+<csr-read-only-do-not-edit/>
22+
23+<details><summary>view details</summary>
24+
25+ * **Uncategorized**
26+ - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03))
27+ - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558))
28+ - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb))
29+</details>
30+
31+## 0.61.0 (2026-08-22)
32+
33+### New Features
34+
35+ - <csr-id-d934f5b150146860b5a844218c3733869bfeb44f/> expose git notes in `gix::Repository`
36+ <!-- agent -->
37+ Add the notes feature and `Repository::notes` as the porcelain layer over `gix-note`
38+ for repeated queries and mutations.
39+
40+ Select the default notes ref from `core.notesRef`, including the `GIT_NOTES_REF`
41+ environment override represented in `config::tree`, and fall back to
42+ `refs/notes/commits`. Discover additional display refs from `notes.displayRef` or
43+ `GIT_NOTES_DISPLAY_REF`, expand glob patterns, preserve display order, and avoid
44+ duplicates.
45+
46+ For mutations, accept conventional short notes-ref names, write note blobs and
47+ notes commits, and update refs with compare-and-swap expectations so concurrent
48+ changes are not silently overwritten.
49+ - <csr-id-da39b92a4722d4e8eae47a78301cf005d2079835/> use Git signature configuration in `gix commit verify`
50+ <!-- agent -->
51+ Replace the command-specific GPG invocation with gix::Commit::verify_signature
52+ so the CLI and library share one implementation and one interpretation of
53+ repository configuration.
54+
55+ This extends the command from hard-coded OpenPGP verification to the OpenPGP,
56+ X.509, and SSH formats supported by Git, including configured programs and trust
57+ policy. Preserve verifier diagnostics on stderr and fail when a signature is
58+ invalid or insufficiently trusted.
59+
60+ Enable the gix command feature in gitoxide-core to make the shared verification
61+ API available.
62+ - <csr-id-b1174b69b60b478be24f0b81787e95ac08564e7e/> support cloning a single revision
63+ <!-- agent -->
64+ A full object ID passed through with_ref_name() produced an object-ID refspec
65+ mapping and panicked while clone assumed every mapping had a name. Branch and
66+ tag checkout also retained ordinary clone tracking semantics instead of offering
67+ a single-revision mode.
68+
69+ Add PrepareFetch::with_revision() and gix clone --revision for full refs, HEAD,
70+ and full object IDs. Revision clones use a one source-only implicit refspec,
71+ detach HEAD to the fetched commit, create no ordinary refs, persist no fetch
72+ refspec, and disable tag following. Existing with_ref_name() and --ref behavior
73+ stays unchanged.
74+
75+ This follows Git commit 337855629f59 (builtin/clone: teach git-clone(1) the
76+ --revision= option) and its t/t5621-clone-revision.sh behavior.
77+
78+### Bug Fixes
79+
80+ - <csr-id-45e6d93fe48ed625b92363e94ed2053f2bc88e27/> peel revspecs to a commit in `gix merge-base`
81+ The revspecs were resolved with `rev_parse_single()` and handed to the
82+ commit-only merge-base traversal unchanged, so a revspec naming an annotated
83+ tag arrived as the id of the tag object. No commit is found for such an id and
84+ no error is raised. In a clone of this repository,
85+ `gix merge-base HEAD cargo-smart-release-v0.10.0 cargo-smart-release-v0.1.0`
86+ printed 0fa37f5d8c96aee551bb6442756059dc203a6cbc, dropping the tag and
87+ computing the base of the two revspecs that were left, while `git merge-base`
88+ with the same arguments prints ceb6dff13362a2b4318a551893217c1d11643b9f - the
89+ commit the annotated tag points at. Git dereferences tags before computing
90+ anything.
91+
92+ Each revspec is now peeled to a commit before the traversal. Lightweight tags,
93+ branches and raw commit ids resolve as before, and a revspec that cannot be
94+ peeled to a commit is rejected with the peel error.
95+
96+### Commit Statistics
97+
98+<csr-read-only-do-not-edit/>
99+
100+ - 26 commits contributed to the release over the course of 30 calendar days.
101+ - 30 days passed between releases.
102+ - 4 commits were understood as [conventional](https://www.conventionalcommits.org).
103+ - 1 unique issue was worked on: [#1930](https://github.com/GitoxideLabs/gitoxide/issues/1930)
104+
105+### Commit Details
106+
107+<csr-read-only-do-not-edit/>
108+
109+<details><summary>view details</summary>
110+
111+ * **[#1930](https://github.com/GitoxideLabs/gitoxide/issues/1930)**
112+ - Support cloning a single revision ([`b1174b6`](https://github.com/GitoxideLabs/gitoxide/commit/b1174b69b60b478be24f0b81787e95ac08564e7e))
113+ * **Uncategorized**
114+ - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
115+ - Merge pull request #2930 from GitoxideLabs/gix-notes ([`7424676`](https://github.com/GitoxideLabs/gitoxide/commit/7424676f86cd3f5a67c53f8db6baf0803e937d4a))
116+ - Expose git notes in `gix::Repository` ([`d934f5b`](https://github.com/GitoxideLabs/gitoxide/commit/d934f5b150146860b5a844218c3733869bfeb44f))
117+ - Merge pull request #2926 from cruessler/remove-object-hash-from-options ([`b2d919a`](https://github.com/GitoxideLabs/gitoxide/commit/b2d919a11655fdab5c47001ec1b21d7bbebe24c0))
118+ - Merge pull request #2905 from GitoxideLabs/various-improvements ([`f3bbfad`](https://github.com/GitoxideLabs/gitoxide/commit/f3bbfadd4b4f1d72c85c62eb3d7ae337c922f945))
119+ - Adapt to changes in `gix-object` (object signing) ([`723d3de`](https://github.com/GitoxideLabs/gitoxide/commit/723d3dedc7a327d19103b53bf80d661f23ee8aca))
120+ - Use Git signature configuration in `gix commit verify` ([`da39b92`](https://github.com/GitoxideLabs/gitoxide/commit/da39b92a4722d4e8eae47a78301cf005d2079835))
121+ - Merge pull request #2919 from cruessler/require-object-hash-in-file-store-at ([`e5452ba`](https://github.com/GitoxideLabs/gitoxide/commit/e5452baec8ad94736a9f489ec5135c46091eab97))
122+ - Adapt to changes in `gix-ref` ([`5810922`](https://github.com/GitoxideLabs/gitoxide/commit/5810922cdb1c2028236b923f6003db7445da35ea))
123+ - Merge pull request #2916 from cruessler/require-object-hash-in-store-at ([`dd8c759`](https://github.com/GitoxideLabs/gitoxide/commit/dd8c759e0343c2b5c9776c948d109e9d1ea5943b))
124+ - Adapt to changes in `gix-odb` ([`a0b93a3`](https://github.com/GitoxideLabs/gitoxide/commit/a0b93a3877678720f4268adc37317c0f99a8be6d))
125+ - Merge pull request #2896 from shuvamk/fix/merge-base-peel-tag ([`e1af444`](https://github.com/GitoxideLabs/gitoxide/commit/e1af44408cf26cb6448a59b2b32b92b265ba2e8a))
126+ - Peel revspecs to a commit in `gix merge-base` ([`45e6d93`](https://github.com/GitoxideLabs/gitoxide/commit/45e6d93fe48ed625b92363e94ed2053f2bc88e27))
127+ - Merge pull request #2892 from ameyypawar/rev-conformity ([`453c17c`](https://github.com/GitoxideLabs/gitoxide/commit/453c17c343c83b569ad817e6459fadf406926a42))
128+ - Adapt to changes in `gix-revision`. ([`21c5614`](https://github.com/GitoxideLabs/gitoxide/commit/21c5614e1eb3cfa21d208083544913305b3986f1))
129+ - Merge pull request #2719 from cruessler/blame-untracked-changes ([`95e0213`](https://github.com/GitoxideLabs/gitoxide/commit/95e0213259162d357e68fe459962cbcdce38590f))
130+ - Review ([`2ea191f`](https://github.com/GitoxideLabs/gitoxide/commit/2ea191fffb63a2c21f5ed8c9f9f77cc91a763bcc))
131+ - Align line numbers in output and start `gix blame` from worktree contents ([`86e90d8`](https://github.com/GitoxideLabs/gitoxide/commit/86e90d8626c01613220ae88100eb3815b31f30ef))
132+ - Adapt to changes in `gix-blame` ([`93d4019`](https://github.com/GitoxideLabs/gitoxide/commit/93d4019fdd97200bebcd7b2197da7db74e678877))
133+ - Merge pull request #2824 from GitoxideLabs/fetch-revision ([`7a34c17`](https://github.com/GitoxideLabs/gitoxide/commit/7a34c175866222ba6ebeb108d2594369a97d5526))
134+ - Merge pull request #2879 from GitoxideLabs/remove-jwalk ([`b6492d3`](https://github.com/GitoxideLabs/gitoxide/commit/b6492d3a4b10d1c4b58988fac62171b65731b42d))
135+ - Replace jwalk with dua-core ([`c49dc45`](https://github.com/GitoxideLabs/gitoxide/commit/c49dc457b879eb9f9d6c844878d82e11c185babd))
136+ - Merge pull request #2867 from GitoxideLabs/fix-url-authority-parsing ([`cc3ee80`](https://github.com/GitoxideLabs/gitoxide/commit/cc3ee8060ad7a32ee8d2eb9139854be7f7561b70))
137+ - Release gix-path v0.12.4, gix-command v0.9.2, gix-config-value v0.19.1, gix-url v0.37.1, gix-credentials v0.39.1, gix-transport v0.58.1 ([`ab4fcb0`](https://github.com/GitoxideLabs/gitoxide/commit/ab4fcb0364ec4d01115595198f383b1ad9c29808))
138+ - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b))
139+</details>
140+
141+## 0.60.0 (2026-07-23)
9142
10143 ### New Features
11144
@@ -100,7 +233,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 88 unmodified lines
100233
101234 <csr-read-only-do-not-edit/>
102235
103− - 46 commits contributed to the release.
236+ - 48 commits contributed to the release.
104237 - 31 days passed between releases.
105238 - 10 commits were understood as [conventional](https://www.conventionalcommits.org).
106239 - 3 unique issues were worked on: [#1534](https://github.com/GitoxideLabs/gitoxide/issues/1534), [#2562](https://github.com/GitoxideLabs/gitoxide/issues/2562), [#2696](https://github.com/GitoxideLabs/gitoxide/issues/2696)
@@ -124,6 +257,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 17 unmodified lines
124257 * **[#2696](https://github.com/GitoxideLabs/gitoxide/issues/2696)**
125258 - Preserve multiple remote URLs ([`5f244b3`](https://github.com/GitoxideLabs/gitoxide/commit/5f244b32c44795062b0aa9e352404cbd1412a844))
126259 * **Uncategorized**
260+ - Release gix-actor v0.41.2, gix-features v0.49.0, gix-hash v0.26.0, gix-hashtable v0.16.0, gix-object v0.63.0, gix-glob v0.27.0, gix-attributes v0.34.0, gix-packetline v0.22.0, gix-filter v0.33.0, gix-fs v0.22.0, gix-chunk v0.7.3, gix-commitgraph v0.38.0, gix-revwalk v0.34.0, gix-traverse v0.60.0, gix-worktree-stream v0.35.0, gix-archive v0.35.0, gix-bitmap v0.3.3, gix-tempfile v24.0.0, gix-lock v24.0.0, gix-index v0.54.0, gix-pathspec v0.19.0, gix-ignore v0.22.0, gix-worktree v0.55.0, gix-imara-diff v0.2.4, gix-diff v0.66.0, gix-blame v0.16.0, gix-ref v0.66.0, gix-config v0.59.0, gix-discover v0.54.0, gix-dir v0.28.0, gix-mailmap v0.33.2, gix-revision v0.48.0, gix-merge v0.19.0, gix-negotiate v0.34.0, gix-zlib v0.1.0, gix-pack v0.73.0, gix-odb v0.83.0, gix-refspec v0.44.0, gix-shallow v0.13.0, gix-transport v0.58.0, gix-protocol v0.64.0, gix-status v0.33.0, gix-submodule v0.33.0, gix-worktree-state v0.33.0, gix v0.86.0, gix-fsck v0.24.0, gitoxide-core v0.60.0, gix-tix v0.1.0, gitoxide v0.56.0, safety bump 40 crates ([`842bc44`](https://github.com/GitoxideLabs/gitoxide/commit/842bc447e3aeacf5d9d36f7f8a01068eda4b7999))
261+ - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f))
127262 - Release gix-trace v0.1.21, gix-validate v0.11.3, gix-path v0.12.3, gix-utils v0.3.5, gix-config-value v0.19.0, gix-prompt v0.16.0, gix-sec v0.14.2, gix-url v0.37.0, gix-credentials v0.39.0, safety bump 18 crates ([`f0ec710`](https://github.com/GitoxideLabs/gitoxide/commit/f0ec71076aa1cef3181b77946ee556a89c651b8e))
128263 - Merge pull request #2737 from GitoxideLabs/encoding-fallback-pony ([`2315ede`](https://github.com/GitoxideLabs/gitoxide/commit/2315ede714da6a43c885ed534f37901b2e1db687))
129264 - Adapt to changes in `gix-filter` ([`552402f`](https://github.com/GitoxideLabs/gitoxide/commit/552402f6147b8ed4f412b9d24bf8408320b4a5d8))
gitoxide-core/Cargo.toml+7−7
@@ -4,7 +4,7 @@ lints.workspace = true · 3 unmodified lines
44 name = "gitoxide-core"
55 description = "The library implementing all capabilities of the gitoxide CLI"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
7−version = "0.61.0"
7+version = "0.61.1"
88 authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
99 license = "MIT OR Apache-2.0"
1010 edition = "2024"
@@ -49,12 +49,12 @@ serde = ["gix/serde", "dep:serde_json", "dep:serde", "bytesize/serde"] · 38 unmodified lines
4949
5050 [dependencies]
5151 # deselect everything else (like "performance") as this should be controllable by the parent application.
52−gix = { version = "^0.87.0", path = "../gix", default-features = false, features = ["merge", "blob-diff", "blame", "revision", "mailmap", "excludes", "attributes", "worktree-mutation", "credentials", "interrupt", "status", "dirwalk", "command"] }
53−gix-pack-for-configuration-only = { package = "gix-pack", version = "^0.74.1", path = "../gix-pack", default-features = false, features = ["pack-cache-lru-dynamic", "pack-cache-lru-static", "generate", "streaming-input"] }
54−gix-transport-configuration-only = { package = "gix-transport", version = "^0.59.0", path = "../gix-transport", default-features = false }
55−gix-archive-for-configuration-only = { package = "gix-archive", version = "^0.36.0", path = "../gix-archive", optional = true, features = ["tar", "tar_gz"] }
56−gix-status = { version = "^0.34.0", path = "../gix-status" }
57−gix-fsck = { version = "^0.25.0", path = "../gix-fsck" }
52+gix = { version = "^0.87.1", path = "../gix", default-features = false, features = ["merge", "blob-diff", "blame", "revision", "mailmap", "excludes", "attributes", "worktree-mutation", "credentials", "interrupt", "status", "dirwalk", "command"] }
53+gix-pack-for-configuration-only = { package = "gix-pack", version = "^0.74.2", path = "../gix-pack", default-features = false, features = ["pack-cache-lru-dynamic", "pack-cache-lru-static", "generate", "streaming-input"] }
54+gix-transport-configuration-only = { package = "gix-transport", version = "^0.59.1", path = "../gix-transport", default-features = false }
55+gix-archive-for-configuration-only = { package = "gix-archive", version = "^0.36.1", path = "../gix-archive", optional = true, features = ["tar", "tar_gz"] }
56+gix-status = { version = "^0.34.1", path = "../gix-status" }
57+gix-fsck = { version = "^0.25.1", path = "../gix-fsck" }
5858 gix-error-for-configuration-only = { package = "gix-error", version = "^0.3.1", path = "../gix-error", features = ["anyhow"] }
5959 serde = { version = "1.0.114", optional = true, default-features = false, features = ["derive"] }
6060 anyhow = "1.0.102"
gix-archive/CHANGELOG.md+25−1
@@ -5,13 +5,36 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines
55 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77
8+## 0.36.1 (2026-08-24)
9+
10+### Commit Statistics
11+
12+<csr-read-only-do-not-edit/>
13+
14+ - 3 commits contributed to the release over the course of 1 calendar day.
15+ - 2 days passed between releases.
16+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17+ - 0 issues like '(#ID)' were seen in commit messages
18+
19+### Commit Details
20+
21+<csr-read-only-do-not-edit/>
22+
23+<details><summary>view details</summary>
24+
25+ * **Uncategorized**
26+ - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03))
27+ - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558))
28+ - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb))
29+</details>
30+
831 ## 0.36.0 (2026-08-22)
932
1033 ### Commit Statistics
1134
1235 <csr-read-only-do-not-edit/>
1336
14− - 10 commits contributed to the release over the course of 30 calendar days.
37+ - 11 commits contributed to the release over the course of 30 calendar days.
1538 - 30 days passed between releases.
1639 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
1740 - 0 issues like '(#ID)' were seen in commit messages
@@ -23,6 +46,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 5 unmodified lines
2346 <details><summary>view details</summary>
2447
2548 * **Uncategorized**
49+ - Release gix-error v0.3.0, gix-date v0.16.0, gix-actor v0.42.0, gix-validate v0.11.4, gix-path v0.12.5, gix-utils v0.3.6, gix-quote v0.8.0, gix-command v0.10.0, gix-features v0.49.1, gix-hash v0.26.1, gix-fs v0.22.1, gix-object v0.64.0, gix-glob v0.27.1, gix-attributes v0.35.0, gix-filter v0.34.0, gix-chunk v0.8.0, gix-commitgraph v0.39.0, gix-revwalk v0.35.0, gix-traverse v0.61.0, gix-worktree-stream v0.36.0, gix-archive v0.36.0, gix-bitmap v0.4.0, gix-index v0.55.0, gix-pathspec v0.20.0, gix-ignore v0.22.1, gix-worktree v0.56.0, gix-imara-diff v0.2.5, gix-diff v0.67.0, gix-blame v0.17.0, gix-ref v0.67.0, gix-config v0.60.0, gix-prompt v0.17.0, gix-url v0.38.0, gix-credentials v0.40.0, gix-discover v0.55.0, gix-dir v0.29.0, gix-mailmap v0.34.0, gix-revision v0.49.0, gix-merge v0.20.0, gix-negotiate v0.35.0, gix-note v0.1.0, gix-pack v0.74.0, gix-odb v0.84.0, gix-refspec v0.45.0, gix-transport v0.59.0, gix-protocol v0.65.0, gix-status v0.34.0, gix-submodule v0.34.0, gix-worktree-state v0.34.0, gix v0.87.0, gix-fsck v0.25.0, gitoxide-core v0.61.0, gix-tix v0.2.0, gitoxide v0.57.0 ([`d2af4ed`](https://github.com/GitoxideLabs/gitoxide/commit/d2af4ed5532ea660fbd643e48d8925cd88de5ee0))
2650 - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
2751 - Merge pull request #2930 from GitoxideLabs/gix-notes ([`7424676`](https://github.com/GitoxideLabs/gitoxide/commit/7424676f86cd3f5a67c53f8db6baf0803e937d4a))
2852 - Use automatic Box conversion in tests ([`ad4a9d1`](https://github.com/GitoxideLabs/gitoxide/commit/ad4a9d1c06aeb6a5534a03639230bd36cc690f3d))
gix-archive/Cargo.toml+2−2
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-archive"
5−version = "0.36.0"
5+version = "0.36.1"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
77 license = "MIT OR Apache-2.0"
88 description = "archive generation from of a worktree stream"
@@ -31,7 +31,7 @@ zip = ["dep:rawzip", "dep:flate2"] · 22 unmodified lines
3131
3232
3333 [dependencies]
34−gix-worktree-stream = { version = "^0.36.0", path = "../gix-worktree-stream" }
34+gix-worktree-stream = { version = "^0.36.1", path = "../gix-worktree-stream" }
3535 gix-object = { version = "^0.64.1", path = "../gix-object" }
3636 gix-path = { version = "^0.12.5", path = "../gix-path", optional = true }
3737 gix-date = { version = "^0.16.0", path = "../gix-date" }
gix-blame/CHANGELOG.md+61−1
@@ -5,13 +5,72 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines
55 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77
8+## 0.17.1 (2026-08-24)
9+
10+### Commit Statistics
11+
12+<csr-read-only-do-not-edit/>
13+
14+ - 3 commits contributed to the release over the course of 1 calendar day.
15+ - 2 days passed between releases.
16+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17+ - 0 issues like '(#ID)' were seen in commit messages
18+
19+### Commit Details
20+
21+<csr-read-only-do-not-edit/>
22+
23+<details><summary>view details</summary>
24+
25+ * **Uncategorized**
26+ - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03))
27+ - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558))
28+ - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb))
29+</details>
30+
31+## 0.17.0 (2026-08-22)
32+
33+### New Features (BREAKING)
34+
35+ - <csr-id-c11e5e48e840c1b1f7d1c1f6c9aa5a348f0dab47/> start blame from Start instead of ObjectId
36+
37+### Commit Statistics
38+
39+<csr-read-only-do-not-edit/>
40+
41+ - 12 commits contributed to the release over the course of 30 calendar days.
42+ - 30 days passed between releases.
43+ - 1 commit was understood as [conventional](https://www.conventionalcommits.org).
44+ - 0 issues like '(#ID)' were seen in commit messages
45+
46+### Commit Details
47+
48+<csr-read-only-do-not-edit/>
49+
50+<details><summary>view details</summary>
51+
52+ * **Uncategorized**
53+ - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
54+ - Merge pull request #2919 from cruessler/require-object-hash-in-file-store-at ([`e5452ba`](https://github.com/GitoxideLabs/gitoxide/commit/e5452baec8ad94736a9f489ec5135c46091eab97))
55+ - Adapt to changes in `gix-ref` ([`5810922`](https://github.com/GitoxideLabs/gitoxide/commit/5810922cdb1c2028236b923f6003db7445da35ea))
56+ - Merge pull request #2906 from cruessler/add-gix-blame-tests-with-symlinks ([`0b94ca6`](https://github.com/GitoxideLabs/gitoxide/commit/0b94ca61f08516fe723f46a77a1a273afe335418))
57+ - Review ([`31a98ed`](https://github.com/GitoxideLabs/gitoxide/commit/31a98edf26230bcdde70f759b1542ed0df3f2ec2))
58+ - Add tests for symlinks in `gix-blame` ([`6f626cf`](https://github.com/GitoxideLabs/gitoxide/commit/6f626cf2b65c0a4e8f03bc858b2395f8024e0f0d))
59+ - Merge pull request #2901 from cruessler/switch-to-gix-odb-at-opts ([`2a4d996`](https://github.com/GitoxideLabs/gitoxide/commit/2a4d996ca53bd38a5e9889da0b180580315d905f))
60+ - Introduce `Store::at()` where possible ([`17fea2a`](https://github.com/GitoxideLabs/gitoxide/commit/17fea2ab8a1c23f2e8bc50b78b90feb1e361f66a))
61+ - Merge pull request #2719 from cruessler/blame-untracked-changes ([`95e0213`](https://github.com/GitoxideLabs/gitoxide/commit/95e0213259162d357e68fe459962cbcdce38590f))
62+ - Review ([`2ea191f`](https://github.com/GitoxideLabs/gitoxide/commit/2ea191fffb63a2c21f5ed8c9f9f77cc91a763bcc))
63+ - Start blame from Start instead of ObjectId ([`c11e5e4`](https://github.com/GitoxideLabs/gitoxide/commit/c11e5e48e840c1b1f7d1c1f6c9aa5a348f0dab47))
64+ - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b))
65+</details>
66+
867 ## 0.16.0 (2026-07-23)
968
1069 ### Commit Statistics
1170
1271 <csr-read-only-do-not-edit/>
1372
14− - 7 commits contributed to the release.
73+ - 8 commits contributed to the release.
1574 - 31 days passed between releases.
1675 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
1776 - 0 issues like '(#ID)' were seen in commit messages
@@ -23,6 +82,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 5 unmodified lines
2382 <details><summary>view details</summary>
2483
2584 * **Uncategorized**
85+ - Release gix-actor v0.41.2, gix-features v0.49.0, gix-hash v0.26.0, gix-hashtable v0.16.0, gix-object v0.63.0, gix-glob v0.27.0, gix-attributes v0.34.0, gix-packetline v0.22.0, gix-filter v0.33.0, gix-fs v0.22.0, gix-chunk v0.7.3, gix-commitgraph v0.38.0, gix-revwalk v0.34.0, gix-traverse v0.60.0, gix-worktree-stream v0.35.0, gix-archive v0.35.0, gix-bitmap v0.3.3, gix-tempfile v24.0.0, gix-lock v24.0.0, gix-index v0.54.0, gix-pathspec v0.19.0, gix-ignore v0.22.0, gix-worktree v0.55.0, gix-imara-diff v0.2.4, gix-diff v0.66.0, gix-blame v0.16.0, gix-ref v0.66.0, gix-config v0.59.0, gix-discover v0.54.0, gix-dir v0.28.0, gix-mailmap v0.33.2, gix-revision v0.48.0, gix-merge v0.19.0, gix-negotiate v0.34.0, gix-zlib v0.1.0, gix-pack v0.73.0, gix-odb v0.83.0, gix-refspec v0.44.0, gix-shallow v0.13.0, gix-transport v0.58.0, gix-protocol v0.64.0, gix-status v0.33.0, gix-submodule v0.33.0, gix-worktree-state v0.33.0, gix v0.86.0, gix-fsck v0.24.0, gitoxide-core v0.60.0, gix-tix v0.1.0, gitoxide v0.56.0, safety bump 40 crates ([`842bc44`](https://github.com/GitoxideLabs/gitoxide/commit/842bc447e3aeacf5d9d36f7f8a01068eda4b7999))
2686 - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f))
2787 - Release gix-trace v0.1.21, gix-validate v0.11.3, gix-path v0.12.3, gix-utils v0.3.5, gix-config-value v0.19.0, gix-prompt v0.16.0, gix-sec v0.14.2, gix-url v0.37.0, gix-credentials v0.39.0, safety bump 18 crates ([`f0ec710`](https://github.com/GitoxideLabs/gitoxide/commit/f0ec71076aa1cef3181b77946ee556a89c651b8e))
2888 - Merge pull request #2722 from GitoxideLabs/reasons ([`c16b5a1`](https://github.com/GitoxideLabs/gitoxide/commit/c16b5a1892704b7c72a253bdd74a6848dd61032a))
gix-blame/Cargo.toml+2−2
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-blame"
5−version = "0.17.0"
5+version = "0.17.1"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
77 license = "MIT OR Apache-2.0"
88 description = "A crate of the gitoxide project dedicated to implementing a 'blame' algorithm"
@@ -23,7 +23,7 @@ gix-commitgraph = { version = "^0.39.0", path = "../gix-commitgraph" } · 14 unmodified lines
2323 gix-revwalk = { version = "^0.35.0", path = "../gix-revwalk" }
2424 gix-trace = { version = "^0.1.21", path = "../gix-trace" }
2525 gix-date = { version = "^0.16.0", path = "../gix-date" }
26−gix-diff = { version = "^0.67.0", path = "../gix-diff", default-features = false, features = ["blob"] }
26+gix-diff = { version = "^0.67.1", path = "../gix-diff", default-features = false, features = ["blob"] }
2727 gix-object = { version = "^0.64.1", path = "../gix-object" }
2828 gix-hash = { version = "^0.26.2", path = "../gix-hash" }
2929 gix-worktree = { version = "^0.56.0", path = "../gix-worktree", default-features = false, features = ["attributes"] }
gix-diff/CHANGELOG.md+196−2
@@ -5,7 +5,199 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines
55 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77
8−## Unreleased
8+## 0.67.1 (2026-08-24)
9+
10+### Commit Statistics
11+
12+<csr-read-only-do-not-edit/>
13+
14+ - 4 commits contributed to the release over the course of 1 calendar day.
15+ - 2 days passed between releases.
16+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17+ - 0 issues like '(#ID)' were seen in commit messages
18+
19+### Commit Details
20+
21+<csr-read-only-do-not-edit/>
22+
23+<details><summary>view details</summary>
24+
25+ * **Uncategorized**
26+ - Merge pull request #2931 from cruessler/make-slider-test-more-granular ([`0f837c0`](https://github.com/GitoxideLabs/gitoxide/commit/0f837c07ae47671daf5f5cec5d2834321813f8f8))
27+ - Review ([`169ae96`](https://github.com/GitoxideLabs/gitoxide/commit/169ae964f47b82237f33b616fd0c94fd3ea7d344))
28+ - Add optional detailed report to slider test ([`7192d9a`](https://github.com/GitoxideLabs/gitoxide/commit/7192d9a8e00f6b4e0836610f90dcbb990618cc7c))
29+ - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb))
30+</details>
31+
32+## 0.67.0 (2026-08-22)
33+
34+### Bug Fixes
35+
36+ - <csr-id-752f16f284796630aecdab558c8bd2f40eda8d29/> support shell commands in external blob diffs
37+ <!-- agent -->
38+ Treat configured external diff commands as shell command lines instead of
39+ executable paths that require manual argument splitting.
40+
41+ Git diff drivers may contain a program followed by arguments. Passing such
42+ values through the shell-aware gix-command preparation path preserves that
43+ configuration while still appending Git diff arguments and environment variables
44+ in the established platform code.
45+
46+ Add coverage for a configured command containing an argument so custom diff
47+ drivers and text-conversion commands are launched as configured.
48+
49+### Test
50+
51+ - <csr-id-6ade0d4dbbb199f92961cc1e775346409b88945b/> add test for binary diff with textconv
52+ I want to add similar tests for `gix-blame` as well, but first I want to
53+ properly understand this part of the `gix-diff` machinery.
54+
55+### Changed (BREAKING)
56+
57+ - <csr-id-43cf77fdb52b547e727343644264fe60c05e6589/> Refactor tree-merge change matching and resolution.
58+ Breaking because of added `ResolutionFailure` variants.
59+
60+ <!-- agent -->
61+ The tree-merge implementation previously combined side-diff collection,
62+ path matching, scheduling, and the complete conflict-resolution matrix in a
63+ single function. It also duplicated change collection for both sides and
64+ represented pair outcomes with independent boolean flags.
65+
66+ Keep the public tree() entry point as a small facade and move the merge
67+ engine into focused private modules. Collect each ancestor-to-side diff
68+ through one helper that constructs a SideState containing the flat change
69+ list and its matching tree together. Isolate path and rename candidate
70+ matching, including identical-change suppression, from classification into
71+ pairs that the resolution matrix understands.
72+
73+ Represent the result of handling each paired change explicitly as a
74+ ChangeDisposition. This preserves the important distinction between a
75+ change that was merely processed and one whose effect is present in the
76+ editor, without duplicating the final state transition in the scheduler.
77+ Replace the type-specific side-picking helpers with generic pick() and
78+ pick_mut() helpers as well.
79+
80+ These boundaries make the state machine easier to review and reduce the
81+ chance that a future rename or forced-resolution fix accidentally changes
82+ collection, matching, and application at once. They also remove duplicated
83+ setup while keeping the exhaustive resolution match in one place, where
84+ its symmetry remains visible. The public API and all recorded merge results
85+ remain unchanged.
86+
87+ Fixes and Improvements
88+ ----------------------
89+
90+ Tree merging combines a flat change schedule with per-side path indexes. Valid
91+ Git operations can therefore arrive in different orders or expose structural
92+ relationships before the leaf changes that ultimately apply them. Several
93+ resolver branches treated those relationships as physical occupancy or as
94+ content changes for the same identity, leading to hangs, assertions, duplicate
95+ entries, lost siblings, or merge results that depended on diff and side order.
96+
97+ Separate unique-path occupancy from PassedRewrittenDirectory scheduling so a
98+ side-qualified name can terminate below directory rewrites. Prune empty path
99+ nodes back to the root, and allow a deferred rewrite to insert only its new
100+ destination because its source is already indexed.
101+
102+ Resolve the structural cases at their actual identity boundaries:
103+ - handle an added file blocking an added directory before mode-specific add/add
104+ resolution and defer early descendants until their parent deletion runs;
105+ - keep explicit file renames ahead of inferred directory renames, and keep
106+ directory replacements at their explicit sources;
107+ - treat file replacements of incompatible non-blob ancestors as additions with
108+ an empty compatible merge base;
109+ - pair shared deletions before descendants and allow file renames into paths
110+ vacated by directory renames;
111+ - preserve unrelated nested or overlapping rename destinations by keeping the
112+ directory in place and moving only the blocking file;
113+ - reject incompatible same-destination rewrites before blob merging, while
114+ collapsing identical rewrites to one clean shared destination; and
115+ - defer file-to-directory children until the parent rename/delete decision is
116+ made exactly once.
117+
118+ Forced Ancestor and Ours resolution continues to apply only the selected side.
119+ Git-backed baselines cover both directions, forced policies, modes, symlinks,
120+ gitlinks, nested directories, and documented index-only deviations. The
121+ resulting suite contains 155 directional baseline cases, and the Cartesian
122+ model reaches 210/210 Git/gix agreement for trees and path/mode results.
123+
124+ More Hardening
125+ --------------
126+
127+ Deferred tree changes may be reconsidered after another conflict has already
128+ consumed or pruned the same path-tree node. This is valid when rename detection
129+ has ambiguous identical sources, when structural conflicts overlap, or when a
130+ change follows a detected directory rename. The editor and conflict records
131+ still contain the required state, but strict bookkeeping removals and older
132+ same-path assertions turned these schedules into debug panics, hangs, or
133+ side-order-dependent duplicate content.
134+
135+ Make cleanup idempotent wherever absence is already the required end state:
136+ add/add type conflicts, same-source rewrites, blocking conflict destinations,
137+ delete/rewrite sources, and changes deferred through directory renames. Accept
138+ cross-path structural matches from ambiguous rewrite candidates and let the
139+ existing conservative unknown-conflict fallback handle them.
140+
141+ Preserve each rewrite input mode when blob content is identical so executable
142+ mode changes remain visible to the merge. Make unique-path selection respect
143+ childless tracked directories and qualify the first blocking file component,
144+ which guarantees termination instead of varying an ineffective descendant
145+ suffix forever. Finally, when a deferred addition is relocated to a unique
146+ conflict path, remove its temporary original path from the side index before
147+ marking it processed so a later descendant cannot relocate the same content a
148+ second time.
149+
150+ The minimized and accumulated fuzz inputs now complete without failure.
151+ Git-backed regressions cover ambiguous sources, consumed nodes, repeated
152+ rename/delete candidates, mode-only rewrite collisions, unique paths below
153+ files, and nested rename destinations in both side orderings. The final tree
154+ baseline contains 165 directional cases with 130 intentionally skipped forced
155+ resolution checks, and reversing the nested relocation case retains exactly
156+ `a/a/a` and `a~A` without inventing `a~A_0`.
157+
158+### Commit Statistics
159+
160+<csr-read-only-do-not-edit/>
161+
162+ - 18 commits contributed to the release over the course of 30 calendar days.
163+ - 30 days passed between releases.
164+ - 3 commits were understood as [conventional](https://www.conventionalcommits.org).
165+ - 0 issues like '(#ID)' were seen in commit messages
166+
167+### Thanks Clippy
168+
169+<csr-read-only-do-not-edit/>
170+
171+[Clippy](https://github.com/rust-lang/rust-clippy) helped 1 time to make code idiomatic.
172+
173+### Commit Details
174+
175+<csr-read-only-do-not-edit/>
176+
177+<details><summary>view details</summary>
178+
179+ * **Uncategorized**
180+ - Release gix-error v0.3.0, gix-date v0.16.0, gix-actor v0.42.0, gix-validate v0.11.4, gix-path v0.12.5, gix-utils v0.3.6, gix-quote v0.8.0, gix-command v0.10.0, gix-features v0.49.1, gix-hash v0.26.1, gix-fs v0.22.1, gix-object v0.64.0, gix-glob v0.27.1, gix-attributes v0.35.0, gix-filter v0.34.0, gix-chunk v0.8.0, gix-commitgraph v0.39.0, gix-revwalk v0.35.0, gix-traverse v0.61.0, gix-worktree-stream v0.36.0, gix-archive v0.36.0, gix-bitmap v0.4.0, gix-index v0.55.0, gix-pathspec v0.20.0, gix-ignore v0.22.1, gix-worktree v0.56.0, gix-imara-diff v0.2.5, gix-diff v0.67.0, gix-blame v0.17.0, gix-ref v0.67.0, gix-config v0.60.0, gix-prompt v0.17.0, gix-url v0.38.0, gix-credentials v0.40.0, gix-discover v0.55.0, gix-dir v0.29.0, gix-mailmap v0.34.0, gix-revision v0.49.0, gix-merge v0.20.0, gix-negotiate v0.35.0, gix-note v0.1.0, gix-pack v0.74.0, gix-odb v0.84.0, gix-refspec v0.45.0, gix-transport v0.59.0, gix-protocol v0.65.0, gix-status v0.34.0, gix-submodule v0.34.0, gix-worktree-state v0.34.0, gix v0.87.0, gix-fsck v0.25.0, gitoxide-core v0.61.0, gix-tix v0.2.0, gitoxide v0.57.0 ([`d2af4ed`](https://github.com/GitoxideLabs/gitoxide/commit/d2af4ed5532ea660fbd643e48d8925cd88de5ee0))
181+ - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
182+ - Merge pull request #2930 from GitoxideLabs/gix-notes ([`7424676`](https://github.com/GitoxideLabs/gitoxide/commit/7424676f86cd3f5a67c53f8db6baf0803e937d4a))
183+ - Thanks clippy ([`5c8d935`](https://github.com/GitoxideLabs/gitoxide/commit/5c8d9351dcab6c59c456787db7a40d38b5b5c5c0))
184+ - Merge pull request #2928 from cruessler/add-git-diff-textconv-test ([`227619a`](https://github.com/GitoxideLabs/gitoxide/commit/227619ad066af0dbbdbd855be4c9442228e0ce98))
185+ - Review ([`5e600cb`](https://github.com/GitoxideLabs/gitoxide/commit/5e600cb6fcb4ad646cf46cefba1968dc64afcb23))
186+ - Add test for binary diff with textconv ([`6ade0d4`](https://github.com/GitoxideLabs/gitoxide/commit/6ade0d4dbbb199f92961cc1e775346409b88945b))
187+ - Merge pull request #2905 from GitoxideLabs/various-improvements ([`f3bbfad`](https://github.com/GitoxideLabs/gitoxide/commit/f3bbfadd4b4f1d72c85c62eb3d7ae337c922f945))
188+ - Support shell commands in external blob diffs ([`752f16f`](https://github.com/GitoxideLabs/gitoxide/commit/752f16f284796630aecdab558c8bd2f40eda8d29))
189+ - Adapt to changes in `gix-testtools` ([`0cbe539`](https://github.com/GitoxideLabs/gitoxide/commit/0cbe53971687fb3b1959925aa9d8dc89deb5b474))
190+ - Use `gix_object::tree::name_order` instead of copy of the same function ([`db1f7d4`](https://github.com/GitoxideLabs/gitoxide/commit/db1f7d462253a713837ef31b2942ff21c5a9df72))
191+ - Merge pull request #2901 from cruessler/switch-to-gix-odb-at-opts ([`2a4d996`](https://github.com/GitoxideLabs/gitoxide/commit/2a4d996ca53bd38a5e9889da0b180580315d905f))
192+ - Introduce `Store::at()` where possible ([`17fea2a`](https://github.com/GitoxideLabs/gitoxide/commit/17fea2ab8a1c23f2e8bc50b78b90feb1e361f66a))
193+ - Merge pull request #2843 from GitoxideLabs/deleted-file-added-dir ([`f33e250`](https://github.com/GitoxideLabs/gitoxide/commit/f33e250d35391faf981cabc1ff5c7c1ab0af62a9))
194+ - Refactor tree-merge change matching and resolution. ([`43cf77f`](https://github.com/GitoxideLabs/gitoxide/commit/43cf77fdb52b547e727343644264fe60c05e6589))
195+ - Merge pull request #2867 from GitoxideLabs/fix-url-authority-parsing ([`cc3ee80`](https://github.com/GitoxideLabs/gitoxide/commit/cc3ee8060ad7a32ee8d2eb9139854be7f7561b70))
196+ - Release gix-path v0.12.4, gix-command v0.9.2, gix-config-value v0.19.1, gix-url v0.37.1, gix-credentials v0.39.1, gix-transport v0.58.1 ([`ab4fcb0`](https://github.com/GitoxideLabs/gitoxide/commit/ab4fcb0364ec4d01115595198f383b1ad9c29808))
197+ - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b))
198+</details>
199+
200+## 0.66.0 (2026-07-23)
9201
10202 ### Chore
11203
@@ -36,7 +228,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 24 unmodified lines
36228
37229 <csr-read-only-do-not-edit/>
38230
39− - 14 commits contributed to the release.
231+ - 16 commits contributed to the release.
40232 - 31 days passed between releases.
41233 - 3 commits were understood as [conventional](https://www.conventionalcommits.org).
42234 - 1 unique issue was worked on: [#1832](https://github.com/GitoxideLabs/gitoxide/issues/1832)
@@ -51,6 +243,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 8 unmodified lines
51243 - Prefer file-name matches when pairing rename candidates, like Git ([`cea5ea7`](https://github.com/GitoxideLabs/gitoxide/commit/cea5ea77b57f840de618e1d15508add8293f30f2))
52244 - Make rename tracking independent of the input order ([`1acc43d`](https://github.com/GitoxideLabs/gitoxide/commit/1acc43d14af57e7711407af8172d43a75733ae16))
53245 * **Uncategorized**
246+ - Release gix-actor v0.41.2, gix-features v0.49.0, gix-hash v0.26.0, gix-hashtable v0.16.0, gix-object v0.63.0, gix-glob v0.27.0, gix-attributes v0.34.0, gix-packetline v0.22.0, gix-filter v0.33.0, gix-fs v0.22.0, gix-chunk v0.7.3, gix-commitgraph v0.38.0, gix-revwalk v0.34.0, gix-traverse v0.60.0, gix-worktree-stream v0.35.0, gix-archive v0.35.0, gix-bitmap v0.3.3, gix-tempfile v24.0.0, gix-lock v24.0.0, gix-index v0.54.0, gix-pathspec v0.19.0, gix-ignore v0.22.0, gix-worktree v0.55.0, gix-imara-diff v0.2.4, gix-diff v0.66.0, gix-blame v0.16.0, gix-ref v0.66.0, gix-config v0.59.0, gix-discover v0.54.0, gix-dir v0.28.0, gix-mailmap v0.33.2, gix-revision v0.48.0, gix-merge v0.19.0, gix-negotiate v0.34.0, gix-zlib v0.1.0, gix-pack v0.73.0, gix-odb v0.83.0, gix-refspec v0.44.0, gix-shallow v0.13.0, gix-transport v0.58.0, gix-protocol v0.64.0, gix-status v0.33.0, gix-submodule v0.33.0, gix-worktree-state v0.33.0, gix v0.86.0, gix-fsck v0.24.0, gitoxide-core v0.60.0, gix-tix v0.1.0, gitoxide v0.56.0, safety bump 40 crates ([`842bc44`](https://github.com/GitoxideLabs/gitoxide/commit/842bc447e3aeacf5d9d36f7f8a01068eda4b7999))
247+ - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f))
54248 - Release gix-trace v0.1.21, gix-validate v0.11.3, gix-path v0.12.3, gix-utils v0.3.5, gix-config-value v0.19.0, gix-prompt v0.16.0, gix-sec v0.14.2, gix-url v0.37.0, gix-credentials v0.39.0, safety bump 18 crates ([`f0ec710`](https://github.com/GitoxideLabs/gitoxide/commit/f0ec71076aa1cef3181b77946ee556a89c651b8e))
55249 - Merge pull request #2737 from GitoxideLabs/encoding-fallback-pony ([`2315ede`](https://github.com/GitoxideLabs/gitoxide/commit/2315ede714da6a43c885ed534f37901b2e1db687))
56250 - Adapt to changes in `gix-filter` ([`552402f`](https://github.com/GitoxideLabs/gitoxide/commit/552402f6147b8ed4f412b9d24bf8408320b4a5d8))
gix-diff/Cargo.toml+1−1
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-diff"
5−version = "0.67.0"
5+version = "0.67.1"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
77 license = "MIT OR Apache-2.0"
88 description = "Calculate differences between various git objects"
gix-dir/CHANGELOG.md+76−2
@@ -5,7 +5,79 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines
55 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77
8−## Unreleased
8+## 0.29.1 (2026-08-24)
9+
10+### Commit Statistics
11+
12+<csr-read-only-do-not-edit/>
13+
14+ - 3 commits contributed to the release over the course of 1 calendar day.
15+ - 2 days passed between releases.
16+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17+ - 0 issues like '(#ID)' were seen in commit messages
18+
19+### Commit Details
20+
21+<csr-read-only-do-not-edit/>
22+
23+<details><summary>view details</summary>
24+
25+ * **Uncategorized**
26+ - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03))
27+ - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558))
28+ - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb))
29+</details>
30+
31+## 0.29.0 (2026-08-22)
32+
33+### Bug Fixes
34+
35+ - <csr-id-234181b199b533594ec9e41f3623e399d414e9e1/> preserve combining-mark order when precomposing paths
36+ <!-- agent -->
37+ On macOS, gix status reported a tracked dua-cli fixture as untracked while git
38+ status was clean. The filename contains valid combining marks in noncanonical
39+ order; full NFC normalization reordered them before the directory walk looked
40+ the path up in the index.
41+
42+ Recompose filesystem-decomposed characters without canonical reordering,
43+ preserving non-composable combining-mark byte order. Cover both the helper behavior
44+ and a Git-created index entry in the directory walk.
45+
46+ Git baseline: Git 2.50.1 uses UTF-8-MAC to UTF-8 iconv conversion
47+ in compat/precompose_utf8.c, with directory-read coverage in
48+ t/t3910-mac-os-precompose.sh. That conversion leaves the reported combining-mark
49+ order unchanged.
50+
51+### Commit Statistics
52+
53+<csr-read-only-do-not-edit/>
54+
55+ - 11 commits contributed to the release over the course of 30 calendar days.
56+ - 30 days passed between releases.
57+ - 1 commit was understood as [conventional](https://www.conventionalcommits.org).
58+ - 0 issues like '(#ID)' were seen in commit messages
59+
60+### Commit Details
61+
62+<csr-read-only-do-not-edit/>
63+
64+<details><summary>view details</summary>
65+
66+ * **Uncategorized**
67+ - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
68+ - Merge pull request #2905 from GitoxideLabs/various-improvements ([`f3bbfad`](https://github.com/GitoxideLabs/gitoxide/commit/f3bbfadd4b4f1d72c85c62eb3d7ae337c922f945))
69+ - Adapt to changes in `gix-testtools` ([`0cbe539`](https://github.com/GitoxideLabs/gitoxide/commit/0cbe53971687fb3b1959925aa9d8dc89deb5b474))
70+ - Merge pull request #2898 from cruessler/run-more-tests-with-sha-256-2 ([`7241150`](https://github.com/GitoxideLabs/gitoxide/commit/7241150fbf60ab4e9be48d65d7f2b269a393b756))
71+ - Review ([`351d793`](https://github.com/GitoxideLabs/gitoxide/commit/351d793eb6660febe82c6db2e78bedd2c518216f))
72+ - Use `GIX_TEST_FIXTURE_HASH` for more tests ([`9bb4148`](https://github.com/GitoxideLabs/gitoxide/commit/9bb4148b841f2566887638a646099bc86683bd78))
73+ - Merge pull request #2874 from GitoxideLabs/fix-status-untracked ([`8f18657`](https://github.com/GitoxideLabs/gitoxide/commit/8f18657718a1098fb3382aee51d866b9a1a1d10d))
74+ - Preserve combining-mark order when precomposing paths ([`234181b`](https://github.com/GitoxideLabs/gitoxide/commit/234181b199b533594ec9e41f3623e399d414e9e1))
75+ - Merge pull request #2867 from GitoxideLabs/fix-url-authority-parsing ([`cc3ee80`](https://github.com/GitoxideLabs/gitoxide/commit/cc3ee8060ad7a32ee8d2eb9139854be7f7561b70))
76+ - Release gix-path v0.12.4, gix-command v0.9.2, gix-config-value v0.19.1, gix-url v0.37.1, gix-credentials v0.39.1, gix-transport v0.58.1 ([`ab4fcb0`](https://github.com/GitoxideLabs/gitoxide/commit/ab4fcb0364ec4d01115595198f383b1ad9c29808))
77+ - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b))
78+</details>
79+
80+## 0.28.0 (2026-07-23)
981
1082 ### Bug Fixes
1183
@@ -33,7 +105,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 21 unmodified lines
33105
34106 <csr-read-only-do-not-edit/>
35107
36− - 9 commits contributed to the release.
108+ - 11 commits contributed to the release.
37109 - 31 days passed between releases.
38110 - 1 commit was understood as [conventional](https://www.conventionalcommits.org).
39111 - 1 unique issue was worked on: [#2490](https://github.com/GitoxideLabs/gitoxide/issues/2490)
@@ -47,6 +119,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 7 unmodified lines
47119 * **[#2490](https://github.com/GitoxideLabs/gitoxide/issues/2490)**
48120 - Keep EmptyDirectory when collapsing trees of only empty dirs ([`4b38ff1`](https://github.com/GitoxideLabs/gitoxide/commit/4b38ff1267ec73afe79c727a3a998a7da209077e))
49121 * **Uncategorized**
122+ - Release gix-actor v0.41.2, gix-features v0.49.0, gix-hash v0.26.0, gix-hashtable v0.16.0, gix-object v0.63.0, gix-glob v0.27.0, gix-attributes v0.34.0, gix-packetline v0.22.0, gix-filter v0.33.0, gix-fs v0.22.0, gix-chunk v0.7.3, gix-commitgraph v0.38.0, gix-revwalk v0.34.0, gix-traverse v0.60.0, gix-worktree-stream v0.35.0, gix-archive v0.35.0, gix-bitmap v0.3.3, gix-tempfile v24.0.0, gix-lock v24.0.0, gix-index v0.54.0, gix-pathspec v0.19.0, gix-ignore v0.22.0, gix-worktree v0.55.0, gix-imara-diff v0.2.4, gix-diff v0.66.0, gix-blame v0.16.0, gix-ref v0.66.0, gix-config v0.59.0, gix-discover v0.54.0, gix-dir v0.28.0, gix-mailmap v0.33.2, gix-revision v0.48.0, gix-merge v0.19.0, gix-negotiate v0.34.0, gix-zlib v0.1.0, gix-pack v0.73.0, gix-odb v0.83.0, gix-refspec v0.44.0, gix-shallow v0.13.0, gix-transport v0.58.0, gix-protocol v0.64.0, gix-status v0.33.0, gix-submodule v0.33.0, gix-worktree-state v0.33.0, gix v0.86.0, gix-fsck v0.24.0, gitoxide-core v0.60.0, gix-tix v0.1.0, gitoxide v0.56.0, safety bump 40 crates ([`842bc44`](https://github.com/GitoxideLabs/gitoxide/commit/842bc447e3aeacf5d9d36f7f8a01068eda4b7999))
123+ - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f))
50124 - Release gix-trace v0.1.21, gix-validate v0.11.3, gix-path v0.12.3, gix-utils v0.3.5, gix-config-value v0.19.0, gix-prompt v0.16.0, gix-sec v0.14.2, gix-url v0.37.0, gix-credentials v0.39.0, safety bump 18 crates ([`f0ec710`](https://github.com/GitoxideLabs/gitoxide/commit/f0ec71076aa1cef3181b77946ee556a89c651b8e))
51125 - Merge pull request #2722 from GitoxideLabs/reasons ([`c16b5a1`](https://github.com/GitoxideLabs/gitoxide/commit/c16b5a1892704b7c72a253bdd74a6848dd61032a))
52126 - Replace lint allowances with expectations ([`43ff87a`](https://github.com/GitoxideLabs/gitoxide/commit/43ff87a73897b70313e3a58e7de82231be5b59ad))
gix-dir/Cargo.toml+1−1
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-dir"
5−version = "0.29.0"
5+version = "0.29.1"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
77 license = "MIT OR Apache-2.0"
88 description = "A crate of the gitoxide project dealing with directory walks"
gix-fsck/CHANGELOG.md+25−1
@@ -5,13 +5,36 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines
55 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77
8+## 0.25.1 (2026-08-24)
9+
10+### Commit Statistics
11+
12+<csr-read-only-do-not-edit/>
13+
14+ - 3 commits contributed to the release over the course of 1 calendar day.
15+ - 2 days passed between releases.
16+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17+ - 0 issues like '(#ID)' were seen in commit messages
18+
19+### Commit Details
20+
21+<csr-read-only-do-not-edit/>
22+
23+<details><summary>view details</summary>
24+
25+ * **Uncategorized**
26+ - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03))
27+ - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558))
28+ - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb))
29+</details>
30+
831 ## 0.25.0 (2026-08-22)
932
1033 ### Commit Statistics
1134
1235 <csr-read-only-do-not-edit/>
1336
14− - 7 commits contributed to the release over the course of 30 calendar days.
37+ - 8 commits contributed to the release over the course of 30 calendar days.
1538 - 30 days passed between releases.
1639 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
1740 - 0 issues like '(#ID)' were seen in commit messages
@@ -23,6 +46,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 5 unmodified lines
2346 <details><summary>view details</summary>
2447
2548 * **Uncategorized**
49+ - Release gix-note v0.1.0, gix-pack v0.74.0, gix-odb v0.84.0, gix-refspec v0.45.0, gix-transport v0.59.0, gix-protocol v0.65.0, gix-status v0.34.0, gix-submodule v0.34.0, gix-worktree-state v0.34.0, gix v0.87.0, gix-fsck v0.25.0, gitoxide-core v0.61.0, gix-tix v0.2.0, gitoxide v0.57.0 ([`0c541c7`](https://github.com/GitoxideLabs/gitoxide/commit/0c541c7308aee674110dc4dbd2ccda6dceaf41e6))
2650 - Release gix-error v0.3.0, gix-date v0.16.0, gix-actor v0.42.0, gix-validate v0.11.4, gix-path v0.12.5, gix-utils v0.3.6, gix-quote v0.8.0, gix-command v0.10.0, gix-features v0.49.1, gix-hash v0.26.1, gix-fs v0.22.1, gix-object v0.64.0, gix-glob v0.27.1, gix-attributes v0.35.0, gix-filter v0.34.0, gix-chunk v0.8.0, gix-commitgraph v0.39.0, gix-revwalk v0.35.0, gix-traverse v0.61.0, gix-worktree-stream v0.36.0, gix-archive v0.36.0, gix-bitmap v0.4.0, gix-index v0.55.0, gix-pathspec v0.20.0, gix-ignore v0.22.1, gix-worktree v0.56.0, gix-imara-diff v0.2.5, gix-diff v0.67.0, gix-blame v0.17.0, gix-ref v0.67.0, gix-config v0.60.0, gix-prompt v0.17.0, gix-url v0.38.0, gix-credentials v0.40.0, gix-discover v0.55.0, gix-dir v0.29.0, gix-mailmap v0.34.0, gix-revision v0.49.0, gix-merge v0.20.0, gix-negotiate v0.35.0, gix-note v0.1.0, gix-pack v0.74.0, gix-odb v0.84.0, gix-refspec v0.45.0, gix-transport v0.59.0, gix-protocol v0.65.0, gix-status v0.34.0, gix-submodule v0.34.0, gix-worktree-state v0.34.0, gix v0.87.0, gix-fsck v0.25.0, gitoxide-core v0.61.0, gix-tix v0.2.0, gitoxide v0.57.0 ([`d2af4ed`](https://github.com/GitoxideLabs/gitoxide/commit/d2af4ed5532ea660fbd643e48d8925cd88de5ee0))
2751 - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
2852 - Merge pull request #2901 from cruessler/switch-to-gix-odb-at-opts ([`2a4d996`](https://github.com/GitoxideLabs/gitoxide/commit/2a4d996ca53bd38a5e9889da0b180580315d905f))
gix-fsck/Cargo.toml+1−1
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-fsck"
5−version = "0.25.0"
5+version = "0.25.1"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
77 authors = ["Cameron Esfahani <cesfahani@gmail.com>", "Sebastian Thiel <sebastian.thiel@icloud.com>"]
88 license = "MIT OR Apache-2.0"
gix-macros/Cargo.toml+1−1
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-macros"
5−version = "0.1.5"
5+version = "0.1.6"
66 edition = "2024"
77 description = "Proc-macro utilities for gix"
88 authors = [
gix-mailmap/CHANGELOG.md+89−1
@@ -5,13 +5,100 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines
55 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77
8+## 0.34.1 (2026-08-24)
9+
10+### Commit Statistics
11+
12+<csr-read-only-do-not-edit/>
13+
14+ - 3 commits contributed to the release over the course of 1 calendar day.
15+ - 2 days passed between releases.
16+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17+ - 0 issues like '(#ID)' were seen in commit messages
18+
19+### Commit Details
20+
21+<csr-read-only-do-not-edit/>
22+
23+<details><summary>view details</summary>
24+
25+ * **Uncategorized**
26+ - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03))
27+ - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558))
28+ - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb))
29+</details>
30+
31+## 0.34.0 (2026-08-22)
32+
33+### Bug Fixes
34+
35+ - <csr-id-122125b49f2f42cc767cbcf13082a2659d9bc9dc/> match Git when parsing a second mailmap identity
36+ <!-- agent -->
37+ Git treats the second name-and-email pair differently from the first: an
38+ empty email is accepted, and a malformed pair is ignored while retaining
39+ the mapping parsed from the first identity. Mirror those rules instead of
40+ rejecting the entire line.
41+
42+ This also keeps arbitrary malformed trailing content from dropping an
43+ otherwise valid mapping.
44+ - <csr-id-8aab54dc473687b0eeb5e1af28d99da3cccd7fa0/> don't reject mailmap lines with content after the second email
45+ Git's `read_mailmap_line()` parses at most two `name <email>` pairs and
46+ discards whatever follows - the return value of the second
47+ `parse_name_and_email()` call is unused. `gix-mailmap` instead rejected
48+ any line with a non-empty remainder, and because `Snapshot::from_bytes()`
49+ goes through `parse_ignore_errors()`, those lines were silently dropped.
50+
51+ Git's own `.mailmap` contains 16 such lines out of 305, and
52+ `torvalds/linux`'s contains one. Line 230 of git.git's `.mailmap`:
53+
54+ Philip Oakley <philipoakley@iee.email> <philipoakley@iee.org> # secondary <philipoakley@dunelm.org.uk>
55+
56+ $ git check-mailmap 'Philip Oakley <philipoakley@iee.org>'
57+ Philip Oakley <philipoakley@iee.email>
58+
59+ while `gix_mailmap::Snapshot::resolve()` returned the signature unchanged.
60+
61+ The remainder check is replaced by Git's own condition: reject a line only
62+ when it contains no email at all, which is what `if (email1)` guards in
63+ `read_mailmap_line()`. Lines such as `just a name` therefore still produce
64+ an error, so `parse()` keeps reporting genuinely unparseable input. The
65+ message is reworded because "too many names or emails" can no longer
66+ happen.
67+
68+ Resolving every name and email appearing in git.git's and linux's
69+ `.mailmap` - 904 and 2834 queries - now agrees with `git check-mailmap`
70+ in every case; 16 and 2 of them disagreed before.
71+
72+### Commit Statistics
73+
74+<csr-read-only-do-not-edit/>
75+
76+ - 5 commits contributed to the release over the course of 30 calendar days.
77+ - 30 days passed between releases.
78+ - 2 commits were understood as [conventional](https://www.conventionalcommits.org).
79+ - 0 issues like '(#ID)' were seen in commit messages
80+
81+### Commit Details
82+
83+<csr-read-only-do-not-edit/>
84+
85+<details><summary>view details</summary>
86+
87+ * **Uncategorized**
88+ - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
89+ - Merge pull request #2857 from shuvamk/fix/mailmap-trailing-content ([`f14a495`](https://github.com/GitoxideLabs/gitoxide/commit/f14a495b0c30af82e2156f0dbdf60dfd74ac3612))
90+ - Match Git when parsing a second mailmap identity ([`122125b`](https://github.com/GitoxideLabs/gitoxide/commit/122125b49f2f42cc767cbcf13082a2659d9bc9dc))
91+ - Don't reject mailmap lines with content after the second email ([`8aab54d`](https://github.com/GitoxideLabs/gitoxide/commit/8aab54dc473687b0eeb5e1af28d99da3cccd7fa0))
92+ - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b))
93+</details>
94+
895 ## 0.33.2 (2026-07-23)
996
1097 ### Commit Statistics
1198
1299 <csr-read-only-do-not-edit/>
13100
14− - 4 commits contributed to the release.
101+ - 5 commits contributed to the release.
15102 - 58 days passed between releases.
16103 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17104 - 0 issues like '(#ID)' were seen in commit messages
@@ -23,6 +110,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 5 unmodified lines
23110 <details><summary>view details</summary>
24111
25112 * **Uncategorized**
113+ - Release gix-actor v0.41.2, gix-features v0.49.0, gix-hash v0.26.0, gix-hashtable v0.16.0, gix-object v0.63.0, gix-glob v0.27.0, gix-attributes v0.34.0, gix-packetline v0.22.0, gix-filter v0.33.0, gix-fs v0.22.0, gix-chunk v0.7.3, gix-commitgraph v0.38.0, gix-revwalk v0.34.0, gix-traverse v0.60.0, gix-worktree-stream v0.35.0, gix-archive v0.35.0, gix-bitmap v0.3.3, gix-tempfile v24.0.0, gix-lock v24.0.0, gix-index v0.54.0, gix-pathspec v0.19.0, gix-ignore v0.22.0, gix-worktree v0.55.0, gix-imara-diff v0.2.4, gix-diff v0.66.0, gix-blame v0.16.0, gix-ref v0.66.0, gix-config v0.59.0, gix-discover v0.54.0, gix-dir v0.28.0, gix-mailmap v0.33.2, gix-revision v0.48.0, gix-merge v0.19.0, gix-negotiate v0.34.0, gix-zlib v0.1.0, gix-pack v0.73.0, gix-odb v0.83.0, gix-refspec v0.44.0, gix-shallow v0.13.0, gix-transport v0.58.0, gix-protocol v0.64.0, gix-status v0.33.0, gix-submodule v0.33.0, gix-worktree-state v0.33.0, gix v0.86.0, gix-fsck v0.24.0, gitoxide-core v0.60.0, gix-tix v0.1.0, gitoxide v0.56.0, safety bump 40 crates ([`842bc44`](https://github.com/GitoxideLabs/gitoxide/commit/842bc447e3aeacf5d9d36f7f8a01068eda4b7999))
26114 - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f))
27115 - Merge pull request #2714 from GitoxideLabs/fix-credentials-parsing ([`cf3053a`](https://github.com/GitoxideLabs/gitoxide/commit/cf3053a3c18e2de788cdaa9f41b5bd343bdc0091))
28116 - Release gix-path v0.12.2, gix-error v0.2.5, gix-utils v0.3.4, gix-date v0.15.6, gix-url v0.36.2, gix-credentials v0.38.2 ([`27aec47`](https://github.com/GitoxideLabs/gitoxide/commit/27aec474c113cc885d44631b329454dc1ad0fed2))
gix-mailmap/Cargo.toml+1−1
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-mailmap"
5−version = "0.34.0"
5+version = "0.34.1"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
77 license = "MIT OR Apache-2.0"
88 description = "A crate of the gitoxide project for parsing mailmap files"
gix-merge/CHANGELOG.md+251−2
@@ -5,7 +5,254 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines
55 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77
8−## Unreleased
8+## 0.20.1 (2026-08-24)
9+
10+### Commit Statistics
11+
12+<csr-read-only-do-not-edit/>
13+
14+ - 4 commits contributed to the release over the course of 1 calendar day.
15+ - 2 days passed between releases.
16+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17+ - 0 issues like '(#ID)' were seen in commit messages
18+
19+### Commit Details
20+
21+<csr-read-only-do-not-edit/>
22+
23+<details><summary>view details</summary>
24+
25+ * **Uncategorized**
26+ - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03))
27+ - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558))
28+ - Use fundamental-type comparisons throughout tests ([`47536a5`](https://github.com/GitoxideLabs/gitoxide/commit/47536a5c2b22da3a9f4892c8af5e460c2d5bda0a))
29+ - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb))
30+</details>
31+
32+## 0.20.0 (2026-08-22)
33+
34+### Bug Fixes
35+
36+ - <csr-id-61b45a81911561761b1546e8bf74541263b964be/> track whether tree changes were actually applied
37+ <!-- agent -->
38+
39+ Replace the ambiguous `was_written` flag with an explicit change state:
40+
41+ - `Pending` means the change still needs processing.
42+ - `Processed` means conflict handling consumed the change without applying it.
43+ - `Applied` means its effect was written to the tree editor.
44+
45+ This distinction matters for forced ancestor resolution. A deletion may participate
46+ in a conflict while the ancestor entry is deliberately retained. Treating that
47+ deletion as written caused later changes below the same path to assume the file
48+ had been removed and replace it with a directory.
49+
50+ Only suppress subsequent conflicts for deletions that were actually applied.
51+ Keep applied state monotonic so later bookkeeping cannot downgrade it to merely
52+ processed.
53+
54+ The expanded rename baselines exposed related ordering issues, to allow a fix:
55+
56+ - Preserve trie children when removing a change attached to an interior node.
57+ - Associate deferred rewrite additions with the opposing change index so the
58+ same rename content is not merged twice.
59+ - Detect different source files renamed onto the same destination.
60+ - Merge converging rename contents as competing additions instead of silently
61+ allowing one rename to win.
62+ - Define forced resolution for converging renames: ancestor retains both source
63+ files, while ours applies only the selected side's rename.
64+
65+ Add an inspectable rename/change matrix covering:
66+
67+ - rename versus source modification
68+ - rename versus source deletion
69+ - rename versus destination addition
70+ - rename onto a modified destination
71+ - rename onto a deleted destination
72+ - the same source renamed to different destinations
73+ - additions below a renamed directory
74+ - both sides modifying and choosing the same rename
75+ - different sources renamed onto the same destination
76+ - rename/delete combined with file-to-directory replacement
77+ - <csr-id-195f0b99a650c626d951ef7a902733a0e2ac44cc/> treat adjacent text changes as conflicting.
78+ <!-- agent -->
79+
80+ The text merge previously considered changes from opposing sides to
81+ overlap only when the later hunk started inside the earlier hunk's
82+ half-open base range. For adjacent ranges `[a, b)` and `[b, c)`, the
83+ second hunk starts exactly at the end of the first and therefore wasn't
84+ considered to overlap.
85+
86+ This caused gix to merge edits to neighboring lines cleanly even though
87+ there was no unchanged base line separating them. Git instead combines
88+ such touching changes into one conflicting region.
89+
90+ Treat opposing hunks as disjoint only when there is an actual gap
91+ between their base ranges. A later hunk whose start is equal to the
92+ earlier hunk's end now intersects it, while same-side hunks and changes
93+ separated by an unchanged line retain their previous behavior.
94+
95+ Add direct text-driver coverage for both merge directions. The tests
96+ verify that adjacent edits produce one conflict with the expected
97+ content and that edits separated by an unchanged base line still merge
98+ cleanly while preserving both changes.
99+ - <csr-id-1ee3fc6adf44520ee3397982ec42dbf65a9126f8/> merge additions below jointly deleted files
100+ <!-- agent -->
101+
102+ When both sides delete a file and one side replaces it with a directory,
103+ the tree merge matched the directory parent instead of the non-tree deletion
104+ and later treated a child addition as a conflict. In debug builds this reached
105+ an assertion for changes at different paths.
106+
107+ Prefer non-tree changes when multiple changes occupy the same lookup path.
108+ Mark matching deletions as consumed so their child additions can be applied
109+ without colliding with stale conflict state. Add a bidirectional baseline
110+ covering the file-to-directory replacement.
111+
112+ Git baseline: Git 2.50.1 merge-tree resolves the fixture cleanly in both
113+ directions and retains to-be-deleted/a. The reference checkout was at
114+ a23bace963.
115+
116+### Changed (BREAKING)
117+
118+ - <csr-id-43cf77fdb52b547e727343644264fe60c05e6589/> Refactor tree-merge change matching and resolution.
119+ Breaking because of added `ResolutionFailure` variants.
120+
121+ <!-- agent -->
122+ The tree-merge implementation previously combined side-diff collection,
123+ path matching, scheduling, and the complete conflict-resolution matrix in a
124+ single function. It also duplicated change collection for both sides and
125+ represented pair outcomes with independent boolean flags.
126+
127+ Keep the public tree() entry point as a small facade and move the merge
128+ engine into focused private modules. Collect each ancestor-to-side diff
129+ through one helper that constructs a SideState containing the flat change
130+ list and its matching tree together. Isolate path and rename candidate
131+ matching, including identical-change suppression, from classification into
132+ pairs that the resolution matrix understands.
133+
134+ Represent the result of handling each paired change explicitly as a
135+ ChangeDisposition. This preserves the important distinction between a
136+ change that was merely processed and one whose effect is present in the
137+ editor, without duplicating the final state transition in the scheduler.
138+ Replace the type-specific side-picking helpers with generic pick() and
139+ pick_mut() helpers as well.
140+
141+ These boundaries make the state machine easier to review and reduce the
142+ chance that a future rename or forced-resolution fix accidentally changes
143+ collection, matching, and application at once. They also remove duplicated
144+ setup while keeping the exhaustive resolution match in one place, where
145+ its symmetry remains visible. The public API and all recorded merge results
146+ remain unchanged.
147+
148+ Fixes and Improvements
149+ ----------------------
150+
151+ Tree merging combines a flat change schedule with per-side path indexes. Valid
152+ Git operations can therefore arrive in different orders or expose structural
153+ relationships before the leaf changes that ultimately apply them. Several
154+ resolver branches treated those relationships as physical occupancy or as
155+ content changes for the same identity, leading to hangs, assertions, duplicate
156+ entries, lost siblings, or merge results that depended on diff and side order.
157+
158+ Separate unique-path occupancy from PassedRewrittenDirectory scheduling so a
159+ side-qualified name can terminate below directory rewrites. Prune empty path
160+ nodes back to the root, and allow a deferred rewrite to insert only its new
161+ destination because its source is already indexed.
162+
163+ Resolve the structural cases at their actual identity boundaries:
164+ - handle an added file blocking an added directory before mode-specific add/add
165+ resolution and defer early descendants until their parent deletion runs;
166+ - keep explicit file renames ahead of inferred directory renames, and keep
167+ directory replacements at their explicit sources;
168+ - treat file replacements of incompatible non-blob ancestors as additions with
169+ an empty compatible merge base;
170+ - pair shared deletions before descendants and allow file renames into paths
171+ vacated by directory renames;
172+ - preserve unrelated nested or overlapping rename destinations by keeping the
173+ directory in place and moving only the blocking file;
174+ - reject incompatible same-destination rewrites before blob merging, while
175+ collapsing identical rewrites to one clean shared destination; and
176+ - defer file-to-directory children until the parent rename/delete decision is
177+ made exactly once.
178+
179+ Forced Ancestor and Ours resolution continues to apply only the selected side.
180+ Git-backed baselines cover both directions, forced policies, modes, symlinks,
181+ gitlinks, nested directories, and documented index-only deviations. The
182+ resulting suite contains 155 directional baseline cases, and the Cartesian
183+ model reaches 210/210 Git/gix agreement for trees and path/mode results.
184+
185+ More Hardening
186+ --------------
187+
188+ Deferred tree changes may be reconsidered after another conflict has already
189+ consumed or pruned the same path-tree node. This is valid when rename detection
190+ has ambiguous identical sources, when structural conflicts overlap, or when a
191+ change follows a detected directory rename. The editor and conflict records
192+ still contain the required state, but strict bookkeeping removals and older
193+ same-path assertions turned these schedules into debug panics, hangs, or
194+ side-order-dependent duplicate content.
195+
196+ Make cleanup idempotent wherever absence is already the required end state:
197+ add/add type conflicts, same-source rewrites, blocking conflict destinations,
198+ delete/rewrite sources, and changes deferred through directory renames. Accept
199+ cross-path structural matches from ambiguous rewrite candidates and let the
200+ existing conservative unknown-conflict fallback handle them.
201+
202+ Preserve each rewrite input mode when blob content is identical so executable
203+ mode changes remain visible to the merge. Make unique-path selection respect
204+ childless tracked directories and qualify the first blocking file component,
205+ which guarantees termination instead of varying an ineffective descendant
206+ suffix forever. Finally, when a deferred addition is relocated to a unique
207+ conflict path, remove its temporary original path from the side index before
208+ marking it processed so a later descendant cannot relocate the same content a
209+ second time.
210+
211+ The minimized and accumulated fuzz inputs now complete without failure.
212+ Git-backed regressions cover ambiguous sources, consumed nodes, repeated
213+ rename/delete candidates, mode-only rewrite collisions, unique paths below
214+ files, and nested rename destinations in both side orderings. The final tree
215+ baseline contains 165 directional cases with 130 intentionally skipped forced
216+ resolution checks, and reversing the nested relocation case retains exactly
217+ `a/a/a` and `a~A` without inventing `a~A_0`.
218+
219+### Commit Statistics
220+
221+<csr-read-only-do-not-edit/>
222+
223+ - 18 commits contributed to the release over the course of 30 calendar days.
224+ - 30 days passed between releases.
225+ - 4 commits were understood as [conventional](https://www.conventionalcommits.org).
226+ - 0 issues like '(#ID)' were seen in commit messages
227+
228+### Commit Details
229+
230+<csr-read-only-do-not-edit/>
231+
232+<details><summary>view details</summary>
233+
234+ * **Uncategorized**
235+ - Release gix-error v0.3.0, gix-date v0.16.0, gix-actor v0.42.0, gix-validate v0.11.4, gix-path v0.12.5, gix-utils v0.3.6, gix-quote v0.8.0, gix-command v0.10.0, gix-features v0.49.1, gix-hash v0.26.1, gix-fs v0.22.1, gix-object v0.64.0, gix-glob v0.27.1, gix-attributes v0.35.0, gix-filter v0.34.0, gix-chunk v0.8.0, gix-commitgraph v0.39.0, gix-revwalk v0.35.0, gix-traverse v0.61.0, gix-worktree-stream v0.36.0, gix-archive v0.36.0, gix-bitmap v0.4.0, gix-index v0.55.0, gix-pathspec v0.20.0, gix-ignore v0.22.1, gix-worktree v0.56.0, gix-imara-diff v0.2.5, gix-diff v0.67.0, gix-blame v0.17.0, gix-ref v0.67.0, gix-config v0.60.0, gix-prompt v0.17.0, gix-url v0.38.0, gix-credentials v0.40.0, gix-discover v0.55.0, gix-dir v0.29.0, gix-mailmap v0.34.0, gix-revision v0.49.0, gix-merge v0.20.0, gix-negotiate v0.35.0, gix-note v0.1.0, gix-pack v0.74.0, gix-odb v0.84.0, gix-refspec v0.45.0, gix-transport v0.59.0, gix-protocol v0.65.0, gix-status v0.34.0, gix-submodule v0.34.0, gix-worktree-state v0.34.0, gix v0.87.0, gix-fsck v0.25.0, gitoxide-core v0.61.0, gix-tix v0.2.0, gitoxide v0.57.0 ([`d2af4ed`](https://github.com/GitoxideLabs/gitoxide/commit/d2af4ed5532ea660fbd643e48d8925cd88de5ee0))
236+ - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
237+ - Merge pull request #2905 from GitoxideLabs/various-improvements ([`f3bbfad`](https://github.com/GitoxideLabs/gitoxide/commit/f3bbfadd4b4f1d72c85c62eb3d7ae337c922f945))
238+ - Adapt to changes in `gix-testtools` ([`0cbe539`](https://github.com/GitoxideLabs/gitoxide/commit/0cbe53971687fb3b1959925aa9d8dc89deb5b474))
239+ - Merge pull request #2901 from cruessler/switch-to-gix-odb-at-opts ([`2a4d996`](https://github.com/GitoxideLabs/gitoxide/commit/2a4d996ca53bd38a5e9889da0b180580315d905f))
240+ - Introduce `Store::at()` where possible ([`17fea2a`](https://github.com/GitoxideLabs/gitoxide/commit/17fea2ab8a1c23f2e8bc50b78b90feb1e361f66a))
241+ - Merge pull request #2843 from GitoxideLabs/deleted-file-added-dir ([`f33e250`](https://github.com/GitoxideLabs/gitoxide/commit/f33e250d35391faf981cabc1ff5c7c1ab0af62a9))
242+ - Refactor tree-merge change matching and resolution. ([`43cf77f`](https://github.com/GitoxideLabs/gitoxide/commit/43cf77fdb52b547e727343644264fe60c05e6589))
243+ - Add Linux-sized tree merge benchmarks ([`7ccac01`](https://github.com/GitoxideLabs/gitoxide/commit/7ccac0132e48e23aaf56ad29eed9e9d35bff89cc))
244+ - Add structural tree-merge validation. ([`af2aa23`](https://github.com/GitoxideLabs/gitoxide/commit/af2aa2302506df476297a14db388fa4169a811ba))
245+ - Merge pull request #2867 from GitoxideLabs/fix-url-authority-parsing ([`cc3ee80`](https://github.com/GitoxideLabs/gitoxide/commit/cc3ee8060ad7a32ee8d2eb9139854be7f7561b70))
246+ - Release gix-path v0.12.4, gix-command v0.9.2, gix-config-value v0.19.1, gix-url v0.37.1, gix-credentials v0.39.1, gix-transport v0.58.1 ([`ab4fcb0`](https://github.com/GitoxideLabs/gitoxide/commit/ab4fcb0364ec4d01115595198f383b1ad9c29808))
247+ - Merge pull request #2826 from GitoxideLabs/deleted-file-added-dir ([`83e074c`](https://github.com/GitoxideLabs/gitoxide/commit/83e074c1e2d070059febaaab1022058948855101))
248+ - Add a Cartesian tree-merge correctness baseline. ([`df845cf`](https://github.com/GitoxideLabs/gitoxide/commit/df845cfedca98e9c9b52922223ebf4d77581af90))
249+ - Track whether tree changes were actually applied ([`61b45a8`](https://github.com/GitoxideLabs/gitoxide/commit/61b45a81911561761b1546e8bf74541263b964be))
250+ - Treat adjacent text changes as conflicting. ([`195f0b9`](https://github.com/GitoxideLabs/gitoxide/commit/195f0b99a650c626d951ef7a902733a0e2ac44cc))
251+ - Merge additions below jointly deleted files ([`1ee3fc6`](https://github.com/GitoxideLabs/gitoxide/commit/1ee3fc6adf44520ee3397982ec42dbf65a9126f8))
252+ - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b))
253+</details>
254+
255+## 0.19.0 (2026-07-23)
9256
10257 ### Bug Fixes
11258
@@ -40,7 +287,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 28 unmodified lines
40287
41288 <csr-read-only-do-not-edit/>
42289
43− - 16 commits contributed to the release.
290+ - 18 commits contributed to the release.
44291 - 31 days passed between releases.
45292 - 2 commits were understood as [conventional](https://www.conventionalcommits.org).
46293 - 1 unique issue was worked on: [#1832](https://github.com/GitoxideLabs/gitoxide/issues/1832)
@@ -54,6 +301,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 7 unmodified lines
54301 * **[#1832](https://github.com/GitoxideLabs/gitoxide/issues/1832)**
55302 - Prefer file-name matches when pairing rename candidates, like Git ([`cea5ea7`](https://github.com/GitoxideLabs/gitoxide/commit/cea5ea77b57f840de618e1d15508add8293f30f2))
56303 * **Uncategorized**
304+ - Release gix-actor v0.41.2, gix-features v0.49.0, gix-hash v0.26.0, gix-hashtable v0.16.0, gix-object v0.63.0, gix-glob v0.27.0, gix-attributes v0.34.0, gix-packetline v0.22.0, gix-filter v0.33.0, gix-fs v0.22.0, gix-chunk v0.7.3, gix-commitgraph v0.38.0, gix-revwalk v0.34.0, gix-traverse v0.60.0, gix-worktree-stream v0.35.0, gix-archive v0.35.0, gix-bitmap v0.3.3, gix-tempfile v24.0.0, gix-lock v24.0.0, gix-index v0.54.0, gix-pathspec v0.19.0, gix-ignore v0.22.0, gix-worktree v0.55.0, gix-imara-diff v0.2.4, gix-diff v0.66.0, gix-blame v0.16.0, gix-ref v0.66.0, gix-config v0.59.0, gix-discover v0.54.0, gix-dir v0.28.0, gix-mailmap v0.33.2, gix-revision v0.48.0, gix-merge v0.19.0, gix-negotiate v0.34.0, gix-zlib v0.1.0, gix-pack v0.73.0, gix-odb v0.83.0, gix-refspec v0.44.0, gix-shallow v0.13.0, gix-transport v0.58.0, gix-protocol v0.64.0, gix-status v0.33.0, gix-submodule v0.33.0, gix-worktree-state v0.33.0, gix v0.86.0, gix-fsck v0.24.0, gitoxide-core v0.60.0, gix-tix v0.1.0, gitoxide v0.56.0, safety bump 40 crates ([`842bc44`](https://github.com/GitoxideLabs/gitoxide/commit/842bc447e3aeacf5d9d36f7f8a01068eda4b7999))
305+ - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f))
57306 - Release gix-trace v0.1.21, gix-validate v0.11.3, gix-path v0.12.3, gix-utils v0.3.5, gix-config-value v0.19.0, gix-prompt v0.16.0, gix-sec v0.14.2, gix-url v0.37.0, gix-credentials v0.39.0, safety bump 18 crates ([`f0ec710`](https://github.com/GitoxideLabs/gitoxide/commit/f0ec71076aa1cef3181b77946ee556a89c651b8e))
58307 - Merge pull request #2737 from GitoxideLabs/encoding-fallback-pony ([`2315ede`](https://github.com/GitoxideLabs/gitoxide/commit/2315ede714da6a43c885ed534f37901b2e1db687))
59308 - Adapt to changes in `gix-filter` ([`552402f`](https://github.com/GitoxideLabs/gitoxide/commit/552402f6147b8ed4f412b9d24bf8408320b4a5d8))
gix-merge/Cargo.toml+3−3
@@ -1,6 +1,6 @@
11 [package]
22 name = "gix-merge"
3−version = "0.20.0"
3+version = "0.20.1"
44 repository = "https://github.com/GitoxideLabs/gitoxide"
55 license = "MIT OR Apache-2.0"
66 description = "A crate of the gitoxide project implementing merge algorithms"
@@ -38,9 +38,9 @@ gix-fs = { version = "^0.22.1", path = "../gix-fs" } · 31 unmodified lines
3838 gix-tempfile = { version = "^24.0.0", path = "../gix-tempfile" }
3939 gix-trace = { version = "^0.1.21", path = "../gix-trace" }
4040 gix-quote = { version = "^0.8.0", path = "../gix-quote" }
41−gix-revision = { version = "^0.49.0", path = "../gix-revision", default-features = false, features = ["merge_base"] }
41+gix-revision = { version = "^0.49.1", path = "../gix-revision", default-features = false, features = ["merge_base"] }
4242 gix-revwalk = { version = "^0.35.0", path = "../gix-revwalk" }
43−gix-diff = { version = "^0.67.0", path = "../gix-diff", default-features = false, features = ["blob"] }
43+gix-diff = { version = "^0.67.1", path = "../gix-diff", default-features = false, features = ["blob"] }
4444 gix-index = { version = "^0.55.0", path = "../gix-index" }
4545 imara-diff = { package = "gix-imara-diff", version = "^0.2.5", path = "../gix-imara-diff" }
4646
gix-negotiate/CHANGELOG.md+25−1
@@ -5,13 +5,36 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines
55 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77
8+## 0.35.1 (2026-08-24)
9+
10+### Commit Statistics
11+
12+<csr-read-only-do-not-edit/>
13+
14+ - 3 commits contributed to the release over the course of 1 calendar day.
15+ - 2 days passed between releases.
16+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17+ - 0 issues like '(#ID)' were seen in commit messages
18+
19+### Commit Details
20+
21+<csr-read-only-do-not-edit/>
22+
23+<details><summary>view details</summary>
24+
25+ * **Uncategorized**
26+ - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03))
27+ - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558))
28+ - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb))
29+</details>
30+
831 ## 0.35.0 (2026-08-22)
932
1033 ### Commit Statistics
1134
1235 <csr-read-only-do-not-edit/>
1336
14− - 9 commits contributed to the release over the course of 30 calendar days.
37+ - 10 commits contributed to the release over the course of 30 calendar days.
1538 - 30 days passed between releases.
1639 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
1740 - 0 issues like '(#ID)' were seen in commit messages
@@ -23,6 +46,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 5 unmodified lines
2346 <details><summary>view details</summary>
2447
2548 * **Uncategorized**
49+ - Release gix-error v0.3.0, gix-date v0.16.0, gix-actor v0.42.0, gix-validate v0.11.4, gix-path v0.12.5, gix-utils v0.3.6, gix-quote v0.8.0, gix-command v0.10.0, gix-features v0.49.1, gix-hash v0.26.1, gix-fs v0.22.1, gix-object v0.64.0, gix-glob v0.27.1, gix-attributes v0.35.0, gix-filter v0.34.0, gix-chunk v0.8.0, gix-commitgraph v0.39.0, gix-revwalk v0.35.0, gix-traverse v0.61.0, gix-worktree-stream v0.36.0, gix-archive v0.36.0, gix-bitmap v0.4.0, gix-index v0.55.0, gix-pathspec v0.20.0, gix-ignore v0.22.1, gix-worktree v0.56.0, gix-imara-diff v0.2.5, gix-diff v0.67.0, gix-blame v0.17.0, gix-ref v0.67.0, gix-config v0.60.0, gix-prompt v0.17.0, gix-url v0.38.0, gix-credentials v0.40.0, gix-discover v0.55.0, gix-dir v0.29.0, gix-mailmap v0.34.0, gix-revision v0.49.0, gix-merge v0.20.0, gix-negotiate v0.35.0, gix-note v0.1.0, gix-pack v0.74.0, gix-odb v0.84.0, gix-refspec v0.45.0, gix-transport v0.59.0, gix-protocol v0.65.0, gix-status v0.34.0, gix-submodule v0.34.0, gix-worktree-state v0.34.0, gix v0.87.0, gix-fsck v0.25.0, gitoxide-core v0.61.0, gix-tix v0.2.0, gitoxide v0.57.0 ([`d2af4ed`](https://github.com/GitoxideLabs/gitoxide/commit/d2af4ed5532ea660fbd643e48d8925cd88de5ee0))
2650 - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
2751 - Merge pull request #2919 from cruessler/require-object-hash-in-file-store-at ([`e5452ba`](https://github.com/GitoxideLabs/gitoxide/commit/e5452baec8ad94736a9f489ec5135c46091eab97))
2852 - Adapt to changes in `gix-ref` ([`5810922`](https://github.com/GitoxideLabs/gitoxide/commit/5810922cdb1c2028236b923f6003db7445da35ea))
gix-negotiate/Cargo.toml+1−1
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-negotiate"
5−version = "0.35.0"
5+version = "0.35.1"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
77 license = "MIT OR Apache-2.0"
88 description = "A crate of the gitoxide project implementing negotiation algorithms"
gix-note/CHANGELOG.md+168−24
@@ -5,6 +5,149 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines
55 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77
8+## 0.1.1 (2026-08-24)
9+
10+### Commit Statistics
11+
12+<csr-read-only-do-not-edit/>
13+
14+ - 3 commits contributed to the release over the course of 1 calendar day.
15+ - 2 days passed between releases.
16+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17+ - 0 issues like '(#ID)' were seen in commit messages
18+
19+### Commit Details
20+
21+<csr-read-only-do-not-edit/>
22+
23+<details><summary>view details</summary>
24+
25+ * **Uncategorized**
26+ - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03))
27+ - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558))
28+ - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb))
29+</details>
30+
31+## 0.1.0 (2026-08-22)
32+
33+### Chore
34+
35+ - <csr-id-3e05ca352597ef5966fa4dc4f52456c2424cddad/> add package.include directives to control which files are packaged.
36+ - <csr-id-17835bccb066bbc47cc137e8ec5d9fe7d5665af0/> bump `rust-version` to 1.70
37+ That way clippy will allow to use the fantastic `Option::is_some_and()`
38+ and friends.
39+ - <csr-id-3bd09ef120945a9669321ea856db4079a5dab930/> change `rust-version` manifest field back to 1.65.
40+ They didn't actually need to be higher to work, and changing them
41+ unecessarily can break downstream CI.
42+
43+ Let's keep this value as low as possible, and only increase it when
44+ more recent features are actually used.
45+ - <csr-id-aea89c3ad52f1a800abb620e9a4701bdf904ff7d/> upgrade MSRV to v1.70
46+ Our MSRV follows the one of `helix`, which in turn follows Firefox.
47+
48+### Documentation
49+
50+ - <csr-id-64ff0a77062d35add1a2dd422bb61075647d1a36/> Update gitoxide repository URLs
51+ This updates `Byron/gitoxide` URLs to `GitoxideLabs/gitoxide` in:
52+
53+ - Markdown documentation, except changelogs and other such files
54+ where such changes should not be made.
55+
56+ - Documentation comments (in .rs files).
57+
58+ - Manifest (.toml) files, for the value of the `repository` key.
59+
60+ - The comments appearing at the top of a sample hook that contains
61+ a repository URL as an example.
62+
63+ When making these changes, I also allowed my editor to remove
64+ trailing whitespace in any lines in files already being edited
65+ (since, in this case, there was no disadvantage to allowing this).
66+
67+ The gitoxide repository URL changed when the repository was moved
68+ into the recently created GitHub organization `GitoxideLabs`, as
69+ detailed in #1406. Please note that, although I believe updating
70+ the URLs to their new canonical values is useful, this is not
71+ needed to fix any broken links, since `Byron/gitoxide` URLs
72+ redirect (and hopefully will always redirect) to the coresponding
73+ `GitoxideLabs/gitoxide` URLs.
74+
75+ While this change should not break any URLs, some affected URLs
76+ were already broken. This updates them, but they are still broken.
77+ They will be fixed in a subsequent commit.
78+
79+ This also does not update `Byron/gitoxide` URLs in test fixtures
80+ or test cases, nor in the `Makefile`. (It may make sense to change
81+ some of those too, but it is not really a documentation change.)
82+
83+### New Features
84+
85+ - <csr-id-d21b52afaaae0cb5312aa3d474f476166546b760/> support note mutation in gix-note
86+ <!-- agent -->
87+ Add plumbing operations to insert, replace, and remove note mappings while
88+ returning the rewritten root tree and the previous note id.
89+
90+ Rebuild notes using the same dynamic fanout rule as Git so growing and shrinking
91+ collections remain compatible with existing notes trees. Preserve unrelated
92+ entries during rewriting, reject mixed object-hash kinds, report duplicate
93+ mappings, and leave the tree unchanged when removing a missing note.
94+
95+ Keep object persistence delegated through Find and Write traits, allowing
96+ callers to decide how commits and refs are updated.
97+ - <csr-id-048bfd3058cb122c5155f59136b24d522681d62b/> support lazy note lookup in gix-note
98+ <!-- agent -->
99+ Establish the minimal plumbing API needed to query notes efficiently for many
100+ objects, such as every commit visible in a history view.
101+
102+ Resolve note blobs through Git notes progressive two-hex-digit fanout trees
103+ and use Git tree ordering for direct entry lookup. Load only trees along the
104+ requested object path and retain decoded trees in a caller-owned cache that can
105+ be reused across lookups and notes roots.
106+
107+ Ignore entries that do not form valid notes instead of mistaking arbitrary tree
108+ contents for mappings. Use gix-error for contextual failures.
109+
110+### Commit Statistics
111+
112+<csr-read-only-do-not-edit/>
113+
114+ - 23 commits contributed to the release.
115+ - 1101 days passed between releases.
116+ - 7 commits were understood as [conventional](https://www.conventionalcommits.org).
117+ - 0 issues like '(#ID)' were seen in commit messages
118+
119+### Commit Details
120+
121+<csr-read-only-do-not-edit/>
122+
123+<details><summary>view details</summary>
124+
125+ * **Uncategorized**
126+ - Make gix-note compile on docs.rs ([`94aa28e`](https://github.com/GitoxideLabs/gitoxide/commit/94aa28ee57d73e32a43edc9ebf6dbb8dd460ed45))
127+ - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
128+ - Merge pull request #2930 from GitoxideLabs/gix-notes ([`7424676`](https://github.com/GitoxideLabs/gitoxide/commit/7424676f86cd3f5a67c53f8db6baf0803e937d4a))
129+ - Support note mutation in gix-note ([`d21b52a`](https://github.com/GitoxideLabs/gitoxide/commit/d21b52afaaae0cb5312aa3d474f476166546b760))
130+ - Support lazy note lookup in gix-note ([`048bfd3`](https://github.com/GitoxideLabs/gitoxide/commit/048bfd3058cb122c5155f59136b24d522681d62b))
131+ - Merge pull request #2568 from GitoxideLabs/dependabot/cargo/cargo-56d6b174d8 ([`ab2fee1`](https://github.com/GitoxideLabs/gitoxide/commit/ab2fee14651202fcb7b3d8178932090c73492014))
132+ - Update crates to Rust 2024 edition ([`2cb17b2`](https://github.com/GitoxideLabs/gitoxide/commit/2cb17b2e7f6009693a55af907614f705a29d8c29))
133+ - Remove rust_2018_idioms lint declarations ([`e10d5f6`](https://github.com/GitoxideLabs/gitoxide/commit/e10d5f662df2ee05f973a3167ad215a330ee74e1))
134+ - Raise MSRV for hash dependency updates ([`3675a8d`](https://github.com/GitoxideLabs/gitoxide/commit/3675a8d61b17845a783bc27912a3f52ac273a4af))
135+ - Merge pull request #2518 from GitoxideLabs/improvements ([`444a92b`](https://github.com/GitoxideLabs/gitoxide/commit/444a92b0fa1df406cf2f36f8dbe82c2859e04e0b))
136+ - Add package.include directives to control which files are packaged. ([`3e05ca3`](https://github.com/GitoxideLabs/gitoxide/commit/3e05ca352597ef5966fa4dc4f52456c2424cddad))
137+ - Merge pull request #2217 from GitoxideLabs/copilot/update-msrv-to-rust-1-82 ([`4da2927`](https://github.com/GitoxideLabs/gitoxide/commit/4da2927629c7ec95b96d62a387c61097e3fc71fa))
138+ - Update MSRV to 1.82 and replace once_cell with std equivalents ([`6cc8464`](https://github.com/GitoxideLabs/gitoxide/commit/6cc84641cb7be6f70468a90efaafcf142a6b8c4b))
139+ - Merge pull request #1762 from GitoxideLabs/fix-1759 ([`7ec21bb`](https://github.com/GitoxideLabs/gitoxide/commit/7ec21bb96ce05b29dde74b2efdf22b6e43189aab))
140+ - Bump `rust-version` to 1.70 ([`17835bc`](https://github.com/GitoxideLabs/gitoxide/commit/17835bccb066bbc47cc137e8ec5d9fe7d5665af0))
141+ - Merge pull request #1624 from EliahKagan/update-repo-url ([`795962b`](https://github.com/GitoxideLabs/gitoxide/commit/795962b107d86f58b1f7c75006da256d19cc80ad))
142+ - Update gitoxide repository URLs ([`64ff0a7`](https://github.com/GitoxideLabs/gitoxide/commit/64ff0a77062d35add1a2dd422bb61075647d1a36))
143+ - Merge branch 'global-lints' ([`37ba461`](https://github.com/GitoxideLabs/gitoxide/commit/37ba4619396974ec9cc41d1e882ac5efaf3816db))
144+ - Workspace Clippy lint management ([`2e0ce50`](https://github.com/GitoxideLabs/gitoxide/commit/2e0ce506968c112b215ca0056bd2742e7235df48))
145+ - Merge branch 'msrv' ([`8c492d7`](https://github.com/GitoxideLabs/gitoxide/commit/8c492d7b7e6e5d520b1e3ffeb489eeb88266aa75))
146+ - Change `rust-version` manifest field back to 1.65. ([`3bd09ef`](https://github.com/GitoxideLabs/gitoxide/commit/3bd09ef120945a9669321ea856db4079a5dab930))
147+ - Merge branch 'maintenance' ([`4454c9d`](https://github.com/GitoxideLabs/gitoxide/commit/4454c9d66c32a1de75a66639016c73edbda3bd34))
148+ - Upgrade MSRV to v1.70 ([`aea89c3`](https://github.com/GitoxideLabs/gitoxide/commit/aea89c3ad52f1a800abb620e9a4701bdf904ff7d))
149+</details>
150+
8151 ## 0.0.0 (2023-08-17)
9152
10153 An empty crate without any content to reserve the name for the gitoxide project.
@@ -32,9 +175,9 @@ An empty crate without any content to reserve the name for the gitoxide project. · 21 unmodified lines
32175
33176 <csr-read-only-do-not-edit/>
34177
35− - 21 commits contributed to the release over the course of 504 calendar days.
178+ - 22 commits contributed to the release.
36179 - 4 commits were understood as [conventional](https://www.conventionalcommits.org).
37− - 1 unique issue was worked on: [#691](https://github.com/Byron/gitoxide/issues/691)
180+ - 1 unique issue was worked on: [#691](https://github.com/GitoxideLabs/gitoxide/issues/691)
38181
39182 ### Commit Details
40183
@@ -42,28 +185,29 @@ An empty crate without any content to reserve the name for the gitoxide project. · 1 unmodified line
42185
43186 <details><summary>view details</summary>
44187
45− * **[#691](https://github.com/Byron/gitoxide/issues/691)**
46− - Set `rust-version` to 1.64 ([`55066ce`](https://github.com/Byron/gitoxide/commit/55066ce5fd71209abb5d84da2998b903504584bb))
188+ * **[#691](https://github.com/GitoxideLabs/gitoxide/issues/691)**
189+ - Set `rust-version` to 1.64 ([`55066ce`](https://github.com/GitoxideLabs/gitoxide/commit/55066ce5fd71209abb5d84da2998b903504584bb))
47190 * **Uncategorized**
48− - Don't call crate 'WIP' in manifest anymore. ([`229bd48`](https://github.com/Byron/gitoxide/commit/229bd4899213f749a7cc124aa2b82a1368fba40f))
49− - Update license field following SPDX 2.1 license expression standard ([`9064ea3`](https://github.com/Byron/gitoxide/commit/9064ea31fae4dc59a56bdd3a06c0ddc990ee689e))
50− - Merge branch 'corpus' ([`aa16c8c`](https://github.com/Byron/gitoxide/commit/aa16c8ce91452a3e3063cf1cf0240b6014c4743f))
51− - Change MSRV to 1.65 ([`4f635fc`](https://github.com/Byron/gitoxide/commit/4f635fc4429350bae2582d25de86429969d28f30))
52− - Merge branch 'main' into auto-clippy ([`3ef5c90`](https://github.com/Byron/gitoxide/commit/3ef5c90aebce23385815f1df674c1d28d58b4b0d))
53− - Merge branch 'blinxen/main' ([`9375cd7`](https://github.com/Byron/gitoxide/commit/9375cd75b01aa22a0e2eed6305fe45fabfd6c1ac))
54− - Include license files in all crates ([`facaaf6`](https://github.com/Byron/gitoxide/commit/facaaf633f01c857dcf2572c6dbe0a92b7105c1c))
55− - Merge branch 'rename-crates' into inform-about-gix-rename ([`c9275b9`](https://github.com/Byron/gitoxide/commit/c9275b99ea43949306d93775d9d78c98fb86cfb1))
56− - Adjust to renaming of `git-note` to `gix-note` ([`9cc9ae2`](https://github.com/Byron/gitoxide/commit/9cc9ae28102bca9c5eac4c7699be7029e7f7697f))
57− - Rename `git-note` to `gix-note` ([`794b485`](https://github.com/Byron/gitoxide/commit/794b485e40728aba3a364455210a2035e7ba9fbd))
58− - Merge branch 'main' into http-config ([`bcd9654`](https://github.com/Byron/gitoxide/commit/bcd9654e56169799eb706646da6ee1f4ef2021a9))
59− - Merge branch 'version2021' ([`0e4462d`](https://github.com/Byron/gitoxide/commit/0e4462df7a5166fe85c23a779462cdca8ee013e8))
60− - Upgrade edition to 2021 in most crates. ([`3d8fa8f`](https://github.com/Byron/gitoxide/commit/3d8fa8fef9800b1576beab8a5bc39b821157a5ed))
61− - Merge branch 'main' into index-from-tree ([`bc64b96`](https://github.com/Byron/gitoxide/commit/bc64b96a2ec781c72d1d4daad38aa7fb8b74f99b))
62− - Merge branch 'main' into remote-ls-refs ([`e2ee3de`](https://github.com/Byron/gitoxide/commit/e2ee3ded97e5c449933712883535b30d151c7c78))
63− - Merge branch 'docsrs-show-features' ([`31c2351`](https://github.com/Byron/gitoxide/commit/31c235140cad212d16a56195763fbddd971d87ce))
64− - Uniformize deny attributes ([`f7f136d`](https://github.com/Byron/gitoxide/commit/f7f136dbe4f86e7dee1d54835c420ec07c96cd78))
65− - Remove default link to cargo doc everywhere ([`533e887`](https://github.com/Byron/gitoxide/commit/533e887e80c5f7ede8392884562e1c5ba56fb9a8))
66− - Release git-note v0.0.0 ([`2dcb3f3`](https://github.com/Byron/gitoxide/commit/2dcb3f3e030bc87914c7c58ce2916d81649aa0d9))
67− - Empty crate for git-note ([`2fb8b46`](https://github.com/Byron/gitoxide/commit/2fb8b46abd3905bdf654977e77ec2f36f09e754f))
191+ - Release gix-tix v0.0.0, gix-note v0.0.0, gix-lfs v0.0.0, gix-fetchhead v0.0.0, gix-sequencer v0.0.0, gix-rebase v0.0.0 ([`0199927`](https://github.com/GitoxideLabs/gitoxide/commit/019992765d3cfc2627cf57e82771c006726c8fbc))
192+ - Don't call crate 'WIP' in manifest anymore. ([`229bd48`](https://github.com/GitoxideLabs/gitoxide/commit/229bd4899213f749a7cc124aa2b82a1368fba40f))
193+ - Update license field following SPDX 2.1 license expression standard ([`9064ea3`](https://github.com/GitoxideLabs/gitoxide/commit/9064ea31fae4dc59a56bdd3a06c0ddc990ee689e))
194+ - Merge branch 'corpus' ([`aa16c8c`](https://github.com/GitoxideLabs/gitoxide/commit/aa16c8ce91452a3e3063cf1cf0240b6014c4743f))
195+ - Change MSRV to 1.65 ([`4f635fc`](https://github.com/GitoxideLabs/gitoxide/commit/4f635fc4429350bae2582d25de86429969d28f30))
196+ - Merge branch 'main' into auto-clippy ([`3ef5c90`](https://github.com/GitoxideLabs/gitoxide/commit/3ef5c90aebce23385815f1df674c1d28d58b4b0d))
197+ - Merge branch 'blinxen/main' ([`9375cd7`](https://github.com/GitoxideLabs/gitoxide/commit/9375cd75b01aa22a0e2eed6305fe45fabfd6c1ac))
198+ - Include license files in all crates ([`facaaf6`](https://github.com/GitoxideLabs/gitoxide/commit/facaaf633f01c857dcf2572c6dbe0a92b7105c1c))
199+ - Merge branch 'rename-crates' into inform-about-gix-rename ([`c9275b9`](https://github.com/GitoxideLabs/gitoxide/commit/c9275b99ea43949306d93775d9d78c98fb86cfb1))
200+ - Adjust to renaming of `git-note` to `gix-note` ([`9cc9ae2`](https://github.com/GitoxideLabs/gitoxide/commit/9cc9ae28102bca9c5eac4c7699be7029e7f7697f))
201+ - Rename `git-note` to `gix-note` ([`794b485`](https://github.com/GitoxideLabs/gitoxide/commit/794b485e40728aba3a364455210a2035e7ba9fbd))
202+ - Merge branch 'main' into http-config ([`bcd9654`](https://github.com/GitoxideLabs/gitoxide/commit/bcd9654e56169799eb706646da6ee1f4ef2021a9))
203+ - Merge branch 'version2021' ([`0e4462d`](https://github.com/GitoxideLabs/gitoxide/commit/0e4462df7a5166fe85c23a779462cdca8ee013e8))
204+ - Upgrade edition to 2021 in most crates. ([`3d8fa8f`](https://github.com/GitoxideLabs/gitoxide/commit/3d8fa8fef9800b1576beab8a5bc39b821157a5ed))
205+ - Merge branch 'main' into index-from-tree ([`bc64b96`](https://github.com/GitoxideLabs/gitoxide/commit/bc64b96a2ec781c72d1d4daad38aa7fb8b74f99b))
206+ - Merge branch 'main' into remote-ls-refs ([`e2ee3de`](https://github.com/GitoxideLabs/gitoxide/commit/e2ee3ded97e5c449933712883535b30d151c7c78))
207+ - Merge branch 'docsrs-show-features' ([`31c2351`](https://github.com/GitoxideLabs/gitoxide/commit/31c235140cad212d16a56195763fbddd971d87ce))
208+ - Uniformize deny attributes ([`f7f136d`](https://github.com/GitoxideLabs/gitoxide/commit/f7f136dbe4f86e7dee1d54835c420ec07c96cd78))
209+ - Remove default link to cargo doc everywhere ([`533e887`](https://github.com/GitoxideLabs/gitoxide/commit/533e887e80c5f7ede8392884562e1c5ba56fb9a8))
210+ - Release git-note v0.0.0 ([`2dcb3f3`](https://github.com/GitoxideLabs/gitoxide/commit/2dcb3f3e030bc87914c7c58ce2916d81649aa0d9))
211+ - Empty crate for git-note ([`2fb8b46`](https://github.com/GitoxideLabs/gitoxide/commit/2fb8b46abd3905bdf654977e77ec2f36f09e754f))
68212 </details>
69213
gix-note/Cargo.toml+1−1
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-note"
5−version = "0.1.0"
5+version = "0.1.1"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
77 license = "MIT OR Apache-2.0"
88 description = "A crate of the gitoxide project dealing with git notes"
gix-pack/Cargo.toml+2−2
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-pack"
5−version = "0.74.1"
5+version = "0.74.2"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
77 authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
88 license = "MIT OR Apache-2.0"
@@ -56,7 +56,7 @@ gix-hashtable = { version = "^0.16.0", path = "../gix-hashtable", optional = tru · 47 unmodified lines
5656
5757 # for streaming of packs (input, output)
5858 gix-traverse = { version = "^0.61.0", path = "../gix-traverse", optional = true }
59−gix-diff = { version = "^0.67.0", path = "../gix-diff", default-features = false, optional = true }
59+gix-diff = { version = "^0.67.1", path = "../gix-diff", default-features = false, optional = true }
6060
6161 memmap2 = "0.9.11"
6262 smallvec = "1.15.1"
gix-packetline/CHANGELOG.md+23−1
@@ -5,13 +5,34 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines
55 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77
8+## 0.22.2 (2026-08-24)
9+
10+### Commit Statistics
11+
12+<csr-read-only-do-not-edit/>
13+
14+ - 1 commit contributed to the release over the course of 1 calendar day.
15+ - 1 day passed between releases.
16+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17+ - 0 issues like '(#ID)' were seen in commit messages
18+
19+### Commit Details
20+
21+<csr-read-only-do-not-edit/>
22+
23+<details><summary>view details</summary>
24+
25+ * **Uncategorized**
26+ - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03))
27+</details>
28+
829 ## 0.22.1 (2026-08-23)
930
1031 ### Commit Statistics
1132
1233 <csr-read-only-do-not-edit/>
1334
14− - 2 commits contributed to the release over the course of 30 calendar days.
35+ - 3 commits contributed to the release over the course of 30 calendar days.
1536 - 31 days passed between releases.
1637 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
1738 - 0 issues like '(#ID)' were seen in commit messages
@@ -23,6 +44,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 5 unmodified lines
2344 <details><summary>view details</summary>
2445
2546 * **Uncategorized**
47+ - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558))
2648 - Use fundamental-type comparisons throughout tests ([`47536a5`](https://github.com/GitoxideLabs/gitoxide/commit/47536a5c2b22da3a9f4892c8af5e460c2d5bda0a))
2749 - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b))
2850 </details>
gix-packetline/Cargo.toml+1−1
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-packetline"
5−version = "0.22.1"
5+version = "0.22.2"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
77 license = "MIT OR Apache-2.0"
88 description = "A crate of the gitoxide project implementing the pkt-line serialization format"
gix-protocol/CHANGELOG.md+26−1
@@ -5,13 +5,37 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines
55 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77
8+## 0.65.1 (2026-08-24)
9+
10+### Commit Statistics
11+
12+<csr-read-only-do-not-edit/>
13+
14+ - 4 commits contributed to the release over the course of 1 calendar day.
15+ - 2 days passed between releases.
16+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17+ - 0 issues like '(#ID)' were seen in commit messages
18+
19+### Commit Details
20+
21+<csr-read-only-do-not-edit/>
22+
23+<details><summary>view details</summary>
24+
25+ * **Uncategorized**
26+ - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03))
27+ - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558))
28+ - Use fundamental-type comparisons throughout tests ([`47536a5`](https://github.com/GitoxideLabs/gitoxide/commit/47536a5c2b22da3a9f4892c8af5e460c2d5bda0a))
29+ - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb))
30+</details>
31+
832 ## 0.65.0 (2026-08-22)
933
1034 ### Commit Statistics
1135
1236 <csr-read-only-do-not-edit/>
1337
14− - 5 commits contributed to the release over the course of 30 calendar days.
38+ - 6 commits contributed to the release over the course of 30 calendar days.
1539 - 30 days passed between releases.
1640 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
1741 - 0 issues like '(#ID)' were seen in commit messages
@@ -23,6 +47,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 5 unmodified lines
2347 <details><summary>view details</summary>
2448
2549 * **Uncategorized**
50+ - Release gix-note v0.1.0, gix-pack v0.74.0, gix-odb v0.84.0, gix-refspec v0.45.0, gix-transport v0.59.0, gix-protocol v0.65.0, gix-status v0.34.0, gix-submodule v0.34.0, gix-worktree-state v0.34.0, gix v0.87.0, gix-fsck v0.25.0, gitoxide-core v0.61.0, gix-tix v0.2.0, gitoxide v0.57.0 ([`0c541c7`](https://github.com/GitoxideLabs/gitoxide/commit/0c541c7308aee674110dc4dbd2ccda6dceaf41e6))
2651 - Release gix-error v0.3.0, gix-date v0.16.0, gix-actor v0.42.0, gix-validate v0.11.4, gix-path v0.12.5, gix-utils v0.3.6, gix-quote v0.8.0, gix-command v0.10.0, gix-features v0.49.1, gix-hash v0.26.1, gix-fs v0.22.1, gix-object v0.64.0, gix-glob v0.27.1, gix-attributes v0.35.0, gix-filter v0.34.0, gix-chunk v0.8.0, gix-commitgraph v0.39.0, gix-revwalk v0.35.0, gix-traverse v0.61.0, gix-worktree-stream v0.36.0, gix-archive v0.36.0, gix-bitmap v0.4.0, gix-index v0.55.0, gix-pathspec v0.20.0, gix-ignore v0.22.1, gix-worktree v0.56.0, gix-imara-diff v0.2.5, gix-diff v0.67.0, gix-blame v0.17.0, gix-ref v0.67.0, gix-config v0.60.0, gix-prompt v0.17.0, gix-url v0.38.0, gix-credentials v0.40.0, gix-discover v0.55.0, gix-dir v0.29.0, gix-mailmap v0.34.0, gix-revision v0.49.0, gix-merge v0.20.0, gix-negotiate v0.35.0, gix-note v0.1.0, gix-pack v0.74.0, gix-odb v0.84.0, gix-refspec v0.45.0, gix-transport v0.59.0, gix-protocol v0.65.0, gix-status v0.34.0, gix-submodule v0.34.0, gix-worktree-state v0.34.0, gix v0.87.0, gix-fsck v0.25.0, gitoxide-core v0.61.0, gix-tix v0.2.0, gitoxide v0.57.0 ([`d2af4ed`](https://github.com/GitoxideLabs/gitoxide/commit/d2af4ed5532ea660fbd643e48d8925cd88de5ee0))
2752 - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
2853 - Merge pull request #2867 from GitoxideLabs/fix-url-authority-parsing ([`cc3ee80`](https://github.com/GitoxideLabs/gitoxide/commit/cc3ee8060ad7a32ee8d2eb9139854be7f7561b70))
gix-protocol/Cargo.toml+6−6
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-protocol"
5−version = "0.65.0"
5+version = "0.65.1"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
77 license = "MIT OR Apache-2.0"
88 description = "A crate of the gitoxide project for implementing git protocols"
@@ -75,20 +75,20 @@ required-features = ["async-client"] · 66 unmodified lines
7575 gix-features = { version = "^0.49.1", path = "../gix-features", features = [
7676 "progress",
7777 ] }
78−gix-transport = { version = "^0.59.0", path = "../gix-transport" }
78+gix-transport = { version = "^0.59.1", path = "../gix-transport" }
7979 gix-hash = { version = "^0.26.2", path = "../gix-hash" }
8080 gix-shallow = { version = "^0.13.0", path = "../gix-shallow" }
8181 gix-date = { version = "^0.16.0", path = "../gix-date" }
8282 gix-utils = { version = "^0.3.6", path = "../gix-utils" }
8383 gix-ref = { version = "^0.67.1", path = "../gix-ref" }
84−gix-macros = { version = "^0.1.5", path = "../gix-macros" }
84+gix-macros = { version = "^0.1.6", path = "../gix-macros" }
8585
8686 gix-trace = { version = "^0.1.21", path = "../gix-trace", optional = true }
87−gix-negotiate = { version = "^0.35.0", path = "../gix-negotiate", optional = true }
87+gix-negotiate = { version = "^0.35.1", path = "../gix-negotiate", optional = true }
8888 gix-object = { version = "^0.64.1", path = "../gix-object", optional = true }
8989 gix-revwalk = { version = "^0.35.0", path = "../gix-revwalk", optional = true }
9090 gix-credentials = { version = "^0.40.0", path = "../gix-credentials", optional = true }
91−gix-refspec = { version = "^0.45.0", path = "../gix-refspec", optional = true }
91+gix-refspec = { version = "^0.45.1", path = "../gix-refspec", optional = true }
9292 gix-lock = { version = "^24.0.0", path = "../gix-lock", optional = true }
9393
9494 thiserror = "2.0.18"
@@ -110,7 +110,7 @@ document-features = { version = "0.2.0", optional = true } · 15 unmodified lines
110110
111111 [dev-dependencies]
112112 async-std = { version = "1.9.0", features = ["attributes"] }
113−gix-packetline = { path = "../gix-packetline", version = "^0.22.1" }
113+gix-packetline = { path = "../gix-packetline", version = "^0.22.2" }
114114 gix-protocol = { path = "../gix-protocol", features = ["sha1"] }
115115
116116 [package.metadata.docs.rs]
gix-refspec/CHANGELOG.md+128−1
@@ -5,13 +5,139 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines
55 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77
8+## 0.45.1 (2026-08-24)
9+
10+### Commit Statistics
11+
12+<csr-read-only-do-not-edit/>
13+
14+ - 3 commits contributed to the release over the course of 1 calendar day.
15+ - 2 days passed between releases.
16+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17+ - 0 issues like '(#ID)' were seen in commit messages
18+
19+### Commit Details
20+
21+<csr-read-only-do-not-edit/>
22+
23+<details><summary>view details</summary>
24+
25+ * **Uncategorized**
26+ - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03))
27+ - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558))
28+ - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb))
29+</details>
30+
31+## 0.45.0 (2026-08-22)
32+
33+### Bug Fixes
34+
35+ - <csr-id-42f742d85ac6aa721c0f460f4e05d59bcd5893fa/> match Git refspec pattern and exclusion rules.
36+ <!-- agent -->
37+ Git refspec patterns are deliberately narrower than general globs. The
38+ upstream parser accepts exactly one asterisk, requires a patterned fetch
39+ source to have a patterned destination, and only permits the one-sided
40+ pattern form for pushes and negative refspecs.
41+
42+ Apply those rules uniformly instead of skipping validation for one-sided
43+ specifications. This rejects general wildcard expressions and one-sided
44+ fetch patterns while retaining valid one-sided push patterns.
45+
46+ Accept partial negative refspecs as Git does, and compare their source
47+ literally during matching instead of expanding it through the positive
48+ partial-ref lookup rules. Thus a negative source such as ^main parses but
49+ does not implicitly match refs/heads/main.
50+
51+ Remove the now-unreachable wildmatch matcher, its complex-glob tests, and
52+ the direct gix-glob dependency. Update the instruction documentation,
53+ including the fact that deletion destinations cannot be patterns, and fix
54+ the negative-object-hash error text.
55+
56+ Extend and regenerate the Git baselines for one-sided fetch and push
57+ patterns, invalid wildcard syntax, and partial negative refspecs. Remove
58+ the baseline exceptions so every recorded result must now agree with Git.
59+ - <csr-id-910197fad6fcd752cae808ce1414512b21c78ae8/> split refspecs on the last colon, like Git does
60+ `parse_refspec()` in `refspec.c` locates the separator with
61+ `rhs = strrchr(lhs, ':')`, so everything before the final colon is the source.
62+ That matters for push, where the source is a revision rather than a ref name and
63+ may itself contain a colon - `:/message` searches commit messages, `<rev>:<path>`
64+ addresses a blob or tree. Both are accepted by Git today.
65+
66+ Splitting on the first colon instead made `:/message:refs/heads/x` parse as the
67+ destination `message:refs/heads/x`, which is not a valid reference name, so the
68+ spec was rejected outright.
69+
70+ Fetch is unaffected, as its source is a ref name that cannot contain a colon.
71+ Baseline entries cover both operations; both archives are regenerated because the
72+ archive identity derives from the fixture script.
73+
74+### Changed (BREAKING)
75+
76+ - <csr-id-05a126f9b4bdde603a1c5a9b5553c8d1dbb5d484/> take any non-glob push source, like Git does.
77+ Git means the source of a push refspec to be an extended SHA-1, but says of it
78+ that "there is no existing way to validate this" and takes whatever is written:
79+
80+ * - otherwise, it must be an extended SHA-1, but
81+ * there is no existing way to validate this.
82+ [...]
83+ else
84+ ; /* anything goes, for now */
85+
86+ This crate checked it against a ref name, falling back to parsing it as a
87+ rev-spec, which `gix-revision` can do without a repository. That is stricter than
88+ Git for seven of the shapes now in the baseline, among them `::a`, `~:x`,
89+ `a^{bogus}:x` and `a@{:x`.
90+
91+ The check is dropped for that one side only. A missing destination still requires
92+ the source to be a ref name, an empty destination is still refused, the
93+ destination itself is still validated, and both glob rules still hold, all as
94+ before. Negative refspecs never reach it, as a destination rejects them first.
95+
96+ Ten entries are added to the parse baseline, which records `git`'s own verdict;
97+ the last two of them are destinations Git refuses, to pin that side. Both
98+ archives are regenerated, since `just unit-tests` runs this crate under `sha256`
99+ as well.
100+
101+ With the rev-spec fallback gone, so is the only use of `gix-revision` here, the
102+ `Error::RevSpec` variant that carried its failures, and the last use of
103+ `gix-error`. Both dependencies are dropped.
104+
105+### Commit Statistics
106+
107+<csr-read-only-do-not-edit/>
108+
109+ - 11 commits contributed to the release over the course of 30 calendar days.
110+ - 30 days passed between releases.
111+ - 3 commits were understood as [conventional](https://www.conventionalcommits.org).
112+ - 0 issues like '(#ID)' were seen in commit messages
113+
114+### Commit Details
115+
116+<csr-read-only-do-not-edit/>
117+
118+<details><summary>view details</summary>
119+
120+ * **Uncategorized**
121+ - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
122+ - Merge pull request #2894 from ameyypawar/refspec-push-source ([`ef41caa`](https://github.com/GitoxideLabs/gitoxide/commit/ef41caafddba2fc97b0106f9cfd7fa3e5567f670))
123+ - Match Git refspec pattern and exclusion rules. ([`42f742d`](https://github.com/GitoxideLabs/gitoxide/commit/42f742d85ac6aa721c0f460f4e05d59bcd5893fa))
124+ - Review ([`81883b2`](https://github.com/GitoxideLabs/gitoxide/commit/81883b2ac2d356cf83ea1c4f8636858227ddad86))
125+ - Take any non-glob push source, like Git does. ([`05a126f`](https://github.com/GitoxideLabs/gitoxide/commit/05a126f9b4bdde603a1c5a9b5553c8d1dbb5d484))
126+ - Merge pull request #2888 from ameyypawar/refspec-last-colon ([`04b91a1`](https://github.com/GitoxideLabs/gitoxide/commit/04b91a1b66777e5d6e3d8ca4407960ceedec4c36))
127+ - Review ([`9864e70`](https://github.com/GitoxideLabs/gitoxide/commit/9864e70a54f1d95733a7be365ff92a8daaf6d1ee))
128+ - Split refspecs on the last colon, like Git does ([`910197f`](https://github.com/GitoxideLabs/gitoxide/commit/910197fad6fcd752cae808ce1414512b21c78ae8))
129+ - Merge pull request #2886 from ameyypawar/validate-at-refname ([`12240ab`](https://github.com/GitoxideLabs/gitoxide/commit/12240ab1637a2f3feaef4ce48fd1f6d324705437))
130+ - Review ([`1384133`](https://github.com/GitoxideLabs/gitoxide/commit/1384133eaa3815f03f7ba18bcc81a1e2bdb934f5))
131+ - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b))
132+</details>
133+
8134 ## 0.44.0 (2026-07-23)
9135
10136 ### Commit Statistics
11137
12138 <csr-read-only-do-not-edit/>
13139
14− - 7 commits contributed to the release.
140+ - 8 commits contributed to the release.
15141 - 31 days passed between releases.
16142 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17143 - 0 issues like '(#ID)' were seen in commit messages
@@ -23,6 +149,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 5 unmodified lines
23149 <details><summary>view details</summary>
24150
25151 * **Uncategorized**
152+ - Release gix-actor v0.41.2, gix-features v0.49.0, gix-hash v0.26.0, gix-hashtable v0.16.0, gix-object v0.63.0, gix-glob v0.27.0, gix-attributes v0.34.0, gix-packetline v0.22.0, gix-filter v0.33.0, gix-fs v0.22.0, gix-chunk v0.7.3, gix-commitgraph v0.38.0, gix-revwalk v0.34.0, gix-traverse v0.60.0, gix-worktree-stream v0.35.0, gix-archive v0.35.0, gix-bitmap v0.3.3, gix-tempfile v24.0.0, gix-lock v24.0.0, gix-index v0.54.0, gix-pathspec v0.19.0, gix-ignore v0.22.0, gix-worktree v0.55.0, gix-imara-diff v0.2.4, gix-diff v0.66.0, gix-blame v0.16.0, gix-ref v0.66.0, gix-config v0.59.0, gix-discover v0.54.0, gix-dir v0.28.0, gix-mailmap v0.33.2, gix-revision v0.48.0, gix-merge v0.19.0, gix-negotiate v0.34.0, gix-zlib v0.1.0, gix-pack v0.73.0, gix-odb v0.83.0, gix-refspec v0.44.0, gix-shallow v0.13.0, gix-transport v0.58.0, gix-protocol v0.64.0, gix-status v0.33.0, gix-submodule v0.33.0, gix-worktree-state v0.33.0, gix v0.86.0, gix-fsck v0.24.0, gitoxide-core v0.60.0, gix-tix v0.1.0, gitoxide v0.56.0, safety bump 40 crates ([`842bc44`](https://github.com/GitoxideLabs/gitoxide/commit/842bc447e3aeacf5d9d36f7f8a01068eda4b7999))
26153 - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f))
27154 - Release gix-trace v0.1.21, gix-validate v0.11.3, gix-path v0.12.3, gix-utils v0.3.5, gix-config-value v0.19.0, gix-prompt v0.16.0, gix-sec v0.14.2, gix-url v0.37.0, gix-credentials v0.39.0, safety bump 18 crates ([`f0ec710`](https://github.com/GitoxideLabs/gitoxide/commit/f0ec71076aa1cef3181b77946ee556a89c651b8e))
28155 - Merge pull request #2722 from GitoxideLabs/reasons ([`c16b5a1`](https://github.com/GitoxideLabs/gitoxide/commit/c16b5a1892704b7c72a253bdd74a6848dd61032a))
gix-refspec/Cargo.toml+1−1
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-refspec"
5−version = "0.45.0"
5+version = "0.45.1"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
77 license = "MIT OR Apache-2.0"
88 description = "A crate of the gitoxide project for parsing and representing refspecs"
gix-revision/CHANGELOG.md+115−1
@@ -5,13 +5,126 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines
55 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77
8+## 0.49.1 (2026-08-24)
9+
10+### Commit Statistics
11+
12+<csr-read-only-do-not-edit/>
13+
14+ - 3 commits contributed to the release over the course of 1 calendar day.
15+ - 2 days passed between releases.
16+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17+ - 0 issues like '(#ID)' were seen in commit messages
18+
19+### Commit Details
20+
21+<csr-read-only-do-not-edit/>
22+
23+<details><summary>view details</summary>
24+
25+ * **Uncategorized**
26+ - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03))
27+ - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558))
28+ - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb))
29+</details>
30+
31+## 0.49.0 (2026-08-22)
32+
33+### Bug Fixes
34+
35+ - <csr-id-67467157bc5acc41546990aac2782e07701762f5/> resolve the empty pattern in `<rev>^{/}` like Git, instead of skipping it.
36+ The parser dropped the `find()` delegate call whenever the pattern in
37+ `<rev>^{/<pattern>}` was empty, turning the whole navigation step into a
38+ no-op on the grounds that an empty pattern matches everything.
39+
40+ That reasoning only holds for a commit anchor and a non-negated pattern.
41+ Git routes `<rev>^{/...}` through `GET_OID_COMMITTISH` and searches from
42+ the peeled commit even when the pattern is empty - object-name.c notes
43+ "$commit^{/}. Some regex implementation may reject empty regex, but this
44+ is safe". Thus `git rev-parse 'b-tag^{/}'` yields the commit the
45+ annotated tag points at, while `gix` returned the tag object itself. A
46+ negated empty pattern matches no commit at all, so Git fails `HEAD^{/!-}`
47+ while `gix` silently succeeded with HEAD.
48+
49+ Now the parser always forwards the pattern to `Navigate::find()`, whose
50+ implementation in `gix` already handles the empty case correctly on both
51+ the `revparse-regex` and the substring fallback paths: it peels the
52+ anchor to a commit first and treats an empty pattern as match-all, which
53+ fails naturally when negated. The delegate behind `gix revision explain`
54+ makes no assumption about patterns and needs no change.
55+
56+ The `make_rev_spec_parse_repos` fixture gains baselines for `@^{/}`,
57+ `@^{/!-}` and `b-tag^{/}`; its archive needs regeneration.
58+
59+### Other
60+
61+ - <csr-id-548cb6895c04c074db830d77b5dd5fb1552fc3c0/> delegate zero ancestor traversal
62+ <!-- agent -->
63+ `~0` is a no-op only after resolving its anchor to a commit. The parser cannot
64+ know whether the anchor is an annotated tag, and suppressing `NthAncestor(0)`
65+ prevents higher-level delegates from peeling it as Git does. Always forward zero
66+ so each `Navigate` implementation can apply its own object semantics.
67+
68+### Changed (BREAKING)
69+
70+ - <csr-id-8640d5b86526c03e029c7d591084d96ec5d0fb10/> accept `:3:<path>` for the 'theirs' index stage, like Git does.
71+ The parser had arms for stages 0, 1 and 2 and let everything else fall through
72+ to the catch-all, so `:3:file` was looked up as a path literally named
73+ `3:file` at stage 0. `gitrevisions(7)` documents a stage number of 0 to 3, and
74+ Git resolves `:3:file` to the blob from the branch being merged.
75+
76+ The trait's own docs said stages range from 0 to 2 and labelled them base, ours
77+ and theirs. That is off by one: 0 is unconflicted, and 1, 2 and 3 are the common
78+ ancestor, the target branch and the branch being merged. The docs came first, in
79+ cee04e126, and the arms written twenty minutes later in ea22d3e7c matched them.
80+
81+ This is marked breaking because a `Navigate` implementation written against the
82+ old documented range can now be handed a stage it does not expect. The one in
83+ `gix` already maps 3 to `Stage::Theirs`, but the one behind `gix revision
84+ explain` did not, which the next commit addresses.
85+
86+### Commit Statistics
87+
88+<csr-read-only-do-not-edit/>
89+
90+ - 17 commits contributed to the release over the course of 30 calendar days.
91+ - 30 days passed between releases.
92+ - 3 commits were understood as [conventional](https://www.conventionalcommits.org).
93+ - 0 issues like '(#ID)' were seen in commit messages
94+
95+### Commit Details
96+
97+<csr-read-only-do-not-edit/>
98+
99+<details><summary>view details</summary>
100+
101+ * **Uncategorized**
102+ - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
103+ - Merge pull request #2911 from codeAnqiang-ma/fix/empty-regex-revspec ([`05f905e`](https://github.com/GitoxideLabs/gitoxide/commit/05f905ee3647ddf5bf24c580fc64ba4e369d2c7d))
104+ - Merge pull request #2910 from codeAnqiang-ma/fix/relative-date-month-rollover ([`566fea1`](https://github.com/GitoxideLabs/gitoxide/commit/566fea12b59005673dd4beede48df12d8884264e))
105+ - Review ([`a8b1be5`](https://github.com/GitoxideLabs/gitoxide/commit/a8b1be50101d024977f3037c289951c1ec39a4d6))
106+ - Resolve the empty pattern in `<rev>^{/}` like Git, instead of skipping it. ([`6746715`](https://github.com/GitoxideLabs/gitoxide/commit/67467157bc5acc41546990aac2782e07701762f5))
107+ - Adapt to changes in `gix-date` ([`613ff86`](https://github.com/GitoxideLabs/gitoxide/commit/613ff86cf77922aaab1f7885e014792458b81606))
108+ - Merge pull request #2901 from cruessler/switch-to-gix-odb-at-opts ([`2a4d996`](https://github.com/GitoxideLabs/gitoxide/commit/2a4d996ca53bd38a5e9889da0b180580315d905f))
109+ - Introduce `Store::at()` where possible ([`17fea2a`](https://github.com/GitoxideLabs/gitoxide/commit/17fea2ab8a1c23f2e8bc50b78b90feb1e361f66a))
110+ - Merge pull request #2897 from cruessler/run-more-tests-with-sha-256 ([`59f2d61`](https://github.com/GitoxideLabs/gitoxide/commit/59f2d610088abf6b5648ea34559827b539aac020))
111+ - Review ([`98c29f6`](https://github.com/GitoxideLabs/gitoxide/commit/98c29f6bff71c8a43be1d7063c05325fac000175))
112+ - Use `GIX_TEST_FIXTURE_HASH` for more tests ([`bbea2c4`](https://github.com/GitoxideLabs/gitoxide/commit/bbea2c4f231063937c997491b8cd23d8e3e2c4c9))
113+ - Merge pull request #2892 from ameyypawar/rev-conformity ([`453c17c`](https://github.com/GitoxideLabs/gitoxide/commit/453c17c343c83b569ad817e6459fadf406926a42))
114+ - Review ([`5a4e97b`](https://github.com/GitoxideLabs/gitoxide/commit/5a4e97bf27752091ec48cf1128645d20ea135b9d))
115+ - Accept `:3:<path>` for the 'theirs' index stage, like Git does. ([`8640d5b`](https://github.com/GitoxideLabs/gitoxide/commit/8640d5b86526c03e029c7d591084d96ec5d0fb10))
116+ - Merge pull request #2871 from shuvamk/fix/revspec-peel-tag-before-traversal ([`d14aefb`](https://github.com/GitoxideLabs/gitoxide/commit/d14aefbf23e9d5c510a6dea3a6f646cb9964731e))
117+ - Delegate zero ancestor traversal ([`548cb68`](https://github.com/GitoxideLabs/gitoxide/commit/548cb6895c04c074db830d77b5dd5fb1552fc3c0))
118+ - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b))
119+</details>
120+
8121 ## 0.48.0 (2026-07-23)
9122
10123 ### Commit Statistics
11124
12125 <csr-read-only-do-not-edit/>
13126
14− - 7 commits contributed to the release.
127+ - 8 commits contributed to the release.
15128 - 31 days passed between releases.
16129 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17130 - 0 issues like '(#ID)' were seen in commit messages
@@ -23,6 +136,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 5 unmodified lines
23136 <details><summary>view details</summary>
24137
25138 * **Uncategorized**
139+ - Release gix-actor v0.41.2, gix-features v0.49.0, gix-hash v0.26.0, gix-hashtable v0.16.0, gix-object v0.63.0, gix-glob v0.27.0, gix-attributes v0.34.0, gix-packetline v0.22.0, gix-filter v0.33.0, gix-fs v0.22.0, gix-chunk v0.7.3, gix-commitgraph v0.38.0, gix-revwalk v0.34.0, gix-traverse v0.60.0, gix-worktree-stream v0.35.0, gix-archive v0.35.0, gix-bitmap v0.3.3, gix-tempfile v24.0.0, gix-lock v24.0.0, gix-index v0.54.0, gix-pathspec v0.19.0, gix-ignore v0.22.0, gix-worktree v0.55.0, gix-imara-diff v0.2.4, gix-diff v0.66.0, gix-blame v0.16.0, gix-ref v0.66.0, gix-config v0.59.0, gix-discover v0.54.0, gix-dir v0.28.0, gix-mailmap v0.33.2, gix-revision v0.48.0, gix-merge v0.19.0, gix-negotiate v0.34.0, gix-zlib v0.1.0, gix-pack v0.73.0, gix-odb v0.83.0, gix-refspec v0.44.0, gix-shallow v0.13.0, gix-transport v0.58.0, gix-protocol v0.64.0, gix-status v0.33.0, gix-submodule v0.33.0, gix-worktree-state v0.33.0, gix v0.86.0, gix-fsck v0.24.0, gitoxide-core v0.60.0, gix-tix v0.1.0, gitoxide v0.56.0, safety bump 40 crates ([`842bc44`](https://github.com/GitoxideLabs/gitoxide/commit/842bc447e3aeacf5d9d36f7f8a01068eda4b7999))
26140 - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f))
27141 - Release gix-trace v0.1.21, gix-validate v0.11.3, gix-path v0.12.3, gix-utils v0.3.5, gix-config-value v0.19.0, gix-prompt v0.16.0, gix-sec v0.14.2, gix-url v0.37.0, gix-credentials v0.39.0, safety bump 18 crates ([`f0ec710`](https://github.com/GitoxideLabs/gitoxide/commit/f0ec71076aa1cef3181b77946ee556a89c651b8e))
28142 - Merge pull request #2722 from GitoxideLabs/reasons ([`c16b5a1`](https://github.com/GitoxideLabs/gitoxide/commit/c16b5a1892704b7c72a253bdd74a6848dd61032a))
gix-revision/Cargo.toml+1−1
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-revision"
5−version = "0.49.0"
5+version = "0.49.1"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
77 license = "MIT OR Apache-2.0"
88 description = "A crate of the gitoxide project dealing with finding names for revisions and parsing specifications"
gix-status/Cargo.toml+3−3
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-status"
5−version = "0.34.0"
5+version = "0.34.1"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
77 license = "MIT OR Apache-2.0"
88 description = "A crate of the gitoxide project dealing with 'git status'-like functionality"
@@ -35,8 +35,8 @@ gix-filter = { version = "^0.34.0", path = "../gix-filter" } · 26 unmodified lines
3535 gix-worktree = { version = "^0.56.0", path = "../gix-worktree", default-features = false, features = ["attributes"] }
3636 gix-pathspec = { version = "^0.20.0", path = "../gix-pathspec" }
3737
38−gix-dir = { version = "^0.29.0", path = "../gix-dir", optional = true }
39−gix-diff = { version = "^0.67.0", path = "../gix-diff", default-features = false, features = ["blob"], optional = true }
38+gix-dir = { version = "^0.29.1", path = "../gix-dir", optional = true }
39+gix-diff = { version = "^0.67.1", path = "../gix-diff", default-features = false, features = ["blob"], optional = true }
4040
4141 thiserror = "2.0.18"
4242 filetime = "0.2.29"
gix-tix/Cargo.toml+2−2
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-tix"
5−version = "0.2.0"
5+version = "0.3.0"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
77 license = "MIT OR Apache-2.0"
88 description = "A tool like `tig`, but minimal, fast and efficient"
@@ -27,7 +27,7 @@ anyhow = "1.0.98" · 18 unmodified lines
2727 clap = { version = "4.5.42", features = ["derive"] }
2828 crossterm = { version = "0.29.0", features = ["osc52"] }
2929 directories = "6.0.0"
30−gix = { version = "^0.87.0", path = "../gix", default-features = false, features = ["blob-diff", "mailmap", "merge", "notes", "parallel", "revision", "command", "status"] }
30+gix = { version = "^0.87.1", path = "../gix", default-features = false, features = ["blob-diff", "mailmap", "merge", "notes", "parallel", "revision", "command", "status"] }
3131 notify = "8.2.0"
3232 ratatui = { version = "0.30.2", default-features = false, features = ["crossterm", "unstable-rendered-line-info"] }
3333 terminal-colorsaurus = "1.0.3"
gix-transport/CHANGELOG.md+70−1
@@ -5,6 +5,74 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines
55 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77
8+## 0.59.1 (2026-08-24)
9+
10+### Commit Statistics
11+
12+<csr-read-only-do-not-edit/>
13+
14+ - 3 commits contributed to the release over the course of 1 calendar day.
15+ - 2 days passed between releases.
16+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17+ - 0 issues like '(#ID)' were seen in commit messages
18+
19+### Commit Details
20+
21+<csr-read-only-do-not-edit/>
22+
23+<details><summary>view details</summary>
24+
25+ * **Uncategorized**
26+ - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03))
27+ - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558))
28+ - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb))
29+</details>
30+
31+## 0.59.0 (2026-08-22)
32+
33+### New Features
34+
35+ - <csr-id-b1174b69b60b478be24f0b81787e95ac08564e7e/> support cloning a single revision
36+ <!-- agent -->
37+ A full object ID passed through with_ref_name() produced an object-ID refspec
38+ mapping and panicked while clone assumed every mapping had a name. Branch and
39+ tag checkout also retained ordinary clone tracking semantics instead of offering
40+ a single-revision mode.
41+
42+ Add PrepareFetch::with_revision() and gix clone --revision for full refs, HEAD,
43+ and full object IDs. Revision clones use a one source-only implicit refspec,
44+ detach HEAD to the fetched commit, create no ordinary refs, persist no fetch
45+ refspec, and disable tag following. Existing with_ref_name() and --ref behavior
46+ stays unchanged.
47+
48+ This follows Git commit 337855629f59 (builtin/clone: teach git-clone(1) the
49+ --revision= option) and its t/t5621-clone-revision.sh behavior.
50+
51+### Commit Statistics
52+
53+<csr-read-only-do-not-edit/>
54+
55+ - 6 commits contributed to the release over the course of 19 calendar days.
56+ - 19 days passed between releases.
57+ - 1 commit was understood as [conventional](https://www.conventionalcommits.org).
58+ - 1 unique issue was worked on: [#1930](https://github.com/GitoxideLabs/gitoxide/issues/1930)
59+
60+### Commit Details
61+
62+<csr-read-only-do-not-edit/>
63+
64+<details><summary>view details</summary>
65+
66+ * **[#1930](https://github.com/GitoxideLabs/gitoxide/issues/1930)**
67+ - Support cloning a single revision ([`b1174b6`](https://github.com/GitoxideLabs/gitoxide/commit/b1174b69b60b478be24f0b81787e95ac08564e7e))
68+ * **Uncategorized**
69+ - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
70+ - Merge pull request #2899 from ameyypawar/url-remote-helper ([`dbd162d`](https://github.com/GitoxideLabs/gitoxide/commit/dbd162d38833106425004a325a3a7852596c16f4))
71+ - Adapt to changes in `gix-url` ([`2648dc1`](https://github.com/GitoxideLabs/gitoxide/commit/2648dc18a600aa3f1bdd062a8e0feadc68affdca))
72+ - Merge pull request #2824 from GitoxideLabs/fetch-revision ([`7a34c17`](https://github.com/GitoxideLabs/gitoxide/commit/7a34c175866222ba6ebeb108d2594369a97d5526))
73+ - Merge pull request #2867 from GitoxideLabs/fix-url-authority-parsing ([`cc3ee80`](https://github.com/GitoxideLabs/gitoxide/commit/cc3ee8060ad7a32ee8d2eb9139854be7f7561b70))
74+</details>
75+
876 ## 0.58.1 (2026-08-03)
977
1078 ### Bug Fixes
@@ -31,7 +99,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 20 unmodified lines
3199
32100 <csr-read-only-do-not-edit/>
33101
34− - 3 commits contributed to the release over the course of 11 calendar days.
102+ - 4 commits contributed to the release over the course of 11 calendar days.
35103 - 11 days passed between releases.
36104 - 2 commits were understood as [conventional](https://www.conventionalcommits.org).
37105 - 0 issues like '(#ID)' were seen in commit messages
@@ -43,6 +111,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 5 unmodified lines
43111 <details><summary>view details</summary>
44112
45113 * **Uncategorized**
114+ - Release gix-path v0.12.4, gix-command v0.9.2, gix-config-value v0.19.1, gix-url v0.37.1, gix-credentials v0.39.1, gix-transport v0.58.1 ([`ab4fcb0`](https://github.com/GitoxideLabs/gitoxide/commit/ab4fcb0364ec4d01115595198f383b1ad9c29808))
46115 - Preserve encoded HTTP paths across redirects. ([`60850df`](https://github.com/GitoxideLabs/gitoxide/commit/60850df267f902ef6b65e8211e6d40aeb45e1970))
47116 - Terminate URL authorities at query and fragment delimiters. ([`156b53d`](https://github.com/GitoxideLabs/gitoxide/commit/156b53de2b7d93087aceee623965110a19750d37))
48117 - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b))
gix-transport/Cargo.toml+2−2
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-transport"
5−version = "0.59.0"
5+version = "0.59.1"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
77 license = "MIT OR Apache-2.0"
88 description = "A crate of the gitoxide project dedicated to implementing the git transport layer"
@@ -96,7 +96,7 @@ gix-path = { version = "^0.12.5", path = "../gix-path" } · 87 unmodified lines
9696 gix-features = { version = "^0.49.1", path = "../gix-features" }
9797 gix-url = { version = "^0.38.0", path = "../gix-url" }
9898 gix-sec = { version = "^0.14.2", path = "../gix-sec" }
99−gix-packetline = { version = "^0.22.1", path = "../gix-packetline" }
99+gix-packetline = { version = "^0.22.2", path = "../gix-packetline" }
100100 gix-credentials = { version = "^0.40.0", path = "../gix-credentials", optional = true }
101101 gix-quote = { version = "^0.8.0", path = "../gix-quote" }
102102
gix-worktree-state/CHANGELOG.md+25−1
@@ -5,13 +5,36 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines
55 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77
8+## 0.34.1 (2026-08-24)
9+
10+### Commit Statistics
11+
12+<csr-read-only-do-not-edit/>
13+
14+ - 3 commits contributed to the release over the course of 1 calendar day.
15+ - 2 days passed between releases.
16+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17+ - 0 issues like '(#ID)' were seen in commit messages
18+
19+### Commit Details
20+
21+<csr-read-only-do-not-edit/>
22+
23+<details><summary>view details</summary>
24+
25+ * **Uncategorized**
26+ - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03))
27+ - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558))
28+ - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb))
29+</details>
30+
831 ## 0.34.0 (2026-08-22)
932
1033 ### Commit Statistics
1134
1235 <csr-read-only-do-not-edit/>
1336
14− - 12 commits contributed to the release over the course of 30 calendar days.
37+ - 13 commits contributed to the release over the course of 30 calendar days.
1538 - 30 days passed between releases.
1639 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
1740 - 0 issues like '(#ID)' were seen in commit messages
@@ -23,6 +46,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 5 unmodified lines
2346 <details><summary>view details</summary>
2447
2548 * **Uncategorized**
49+ - Release gix-note v0.1.0, gix-pack v0.74.0, gix-odb v0.84.0, gix-refspec v0.45.0, gix-transport v0.59.0, gix-protocol v0.65.0, gix-status v0.34.0, gix-submodule v0.34.0, gix-worktree-state v0.34.0, gix v0.87.0, gix-fsck v0.25.0, gitoxide-core v0.61.0, gix-tix v0.2.0, gitoxide v0.57.0 ([`0c541c7`](https://github.com/GitoxideLabs/gitoxide/commit/0c541c7308aee674110dc4dbd2ccda6dceaf41e6))
2650 - Release gix-error v0.3.0, gix-date v0.16.0, gix-actor v0.42.0, gix-validate v0.11.4, gix-path v0.12.5, gix-utils v0.3.6, gix-quote v0.8.0, gix-command v0.10.0, gix-features v0.49.1, gix-hash v0.26.1, gix-fs v0.22.1, gix-object v0.64.0, gix-glob v0.27.1, gix-attributes v0.35.0, gix-filter v0.34.0, gix-chunk v0.8.0, gix-commitgraph v0.39.0, gix-revwalk v0.35.0, gix-traverse v0.61.0, gix-worktree-stream v0.36.0, gix-archive v0.36.0, gix-bitmap v0.4.0, gix-index v0.55.0, gix-pathspec v0.20.0, gix-ignore v0.22.1, gix-worktree v0.56.0, gix-imara-diff v0.2.5, gix-diff v0.67.0, gix-blame v0.17.0, gix-ref v0.67.0, gix-config v0.60.0, gix-prompt v0.17.0, gix-url v0.38.0, gix-credentials v0.40.0, gix-discover v0.55.0, gix-dir v0.29.0, gix-mailmap v0.34.0, gix-revision v0.49.0, gix-merge v0.20.0, gix-negotiate v0.35.0, gix-note v0.1.0, gix-pack v0.74.0, gix-odb v0.84.0, gix-refspec v0.45.0, gix-transport v0.59.0, gix-protocol v0.65.0, gix-status v0.34.0, gix-submodule v0.34.0, gix-worktree-state v0.34.0, gix v0.87.0, gix-fsck v0.25.0, gitoxide-core v0.61.0, gix-tix v0.2.0, gitoxide v0.57.0 ([`d2af4ed`](https://github.com/GitoxideLabs/gitoxide/commit/d2af4ed5532ea660fbd643e48d8925cd88de5ee0))
2751 - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
2852 - Merge pull request #2905 from GitoxideLabs/various-improvements ([`f3bbfad`](https://github.com/GitoxideLabs/gitoxide/commit/f3bbfadd4b4f1d72c85c62eb3d7ae337c922f945))
gix-worktree-state/Cargo.toml+1−1
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-worktree-state"
5−version = "0.34.0"
5+version = "0.34.1"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
77 license = "MIT OR Apache-2.0"
88 description = "A crate of the gitoxide project implementing setting the worktree to a particular state"
gix-worktree-stream/CHANGELOG.md+25−1
@@ -5,13 +5,36 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines
55 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77
8+## 0.36.1 (2026-08-24)
9+
10+### Commit Statistics
11+
12+<csr-read-only-do-not-edit/>
13+
14+ - 3 commits contributed to the release over the course of 1 calendar day.
15+ - 2 days passed between releases.
16+ - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17+ - 0 issues like '(#ID)' were seen in commit messages
18+
19+### Commit Details
20+
21+<csr-read-only-do-not-edit/>
22+
23+<details><summary>view details</summary>
24+
25+ * **Uncategorized**
26+ - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03))
27+ - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558))
28+ - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb))
29+</details>
30+
831 ## 0.36.0 (2026-08-22)
932
1033 ### Commit Statistics
1134
1235 <csr-read-only-do-not-edit/>
1336
14− - 6 commits contributed to the release over the course of 30 calendar days.
37+ - 7 commits contributed to the release over the course of 30 calendar days.
1538 - 30 days passed between releases.
1639 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
1740 - 0 issues like '(#ID)' were seen in commit messages
@@ -23,6 +46,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 5 unmodified lines
2346 <details><summary>view details</summary>
2447
2548 * **Uncategorized**
49+ - Release gix-error v0.3.0, gix-date v0.16.0, gix-actor v0.42.0, gix-validate v0.11.4, gix-path v0.12.5, gix-utils v0.3.6, gix-quote v0.8.0, gix-command v0.10.0, gix-features v0.49.1, gix-hash v0.26.1, gix-fs v0.22.1, gix-object v0.64.0, gix-glob v0.27.1, gix-attributes v0.35.0, gix-filter v0.34.0, gix-chunk v0.8.0, gix-commitgraph v0.39.0, gix-revwalk v0.35.0, gix-traverse v0.61.0, gix-worktree-stream v0.36.0, gix-archive v0.36.0, gix-bitmap v0.4.0, gix-index v0.55.0, gix-pathspec v0.20.0, gix-ignore v0.22.1, gix-worktree v0.56.0, gix-imara-diff v0.2.5, gix-diff v0.67.0, gix-blame v0.17.0, gix-ref v0.67.0, gix-config v0.60.0, gix-prompt v0.17.0, gix-url v0.38.0, gix-credentials v0.40.0, gix-discover v0.55.0, gix-dir v0.29.0, gix-mailmap v0.34.0, gix-revision v0.49.0, gix-merge v0.20.0, gix-negotiate v0.35.0, gix-note v0.1.0, gix-pack v0.74.0, gix-odb v0.84.0, gix-refspec v0.45.0, gix-transport v0.59.0, gix-protocol v0.65.0, gix-status v0.34.0, gix-submodule v0.34.0, gix-worktree-state v0.34.0, gix v0.87.0, gix-fsck v0.25.0, gitoxide-core v0.61.0, gix-tix v0.2.0, gitoxide v0.57.0 ([`d2af4ed`](https://github.com/GitoxideLabs/gitoxide/commit/d2af4ed5532ea660fbd643e48d8925cd88de5ee0))
2650 - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
2751 - Merge pull request #2901 from cruessler/switch-to-gix-odb-at-opts ([`2a4d996`](https://github.com/GitoxideLabs/gitoxide/commit/2a4d996ca53bd38a5e9889da0b180580315d905f))
2852 - Introduce `Store::at()` where possible ([`17fea2a`](https://github.com/GitoxideLabs/gitoxide/commit/17fea2ab8a1c23f2e8bc50b78b90feb1e361f66a))
gix-worktree-stream/Cargo.toml+1−1
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
22
33 [package]
44 name = "gix-worktree-stream"
5−version = "0.36.0"
5+version = "0.36.1"
66 repository = "https://github.com/GitoxideLabs/gitoxide"
77 license = "MIT OR Apache-2.0"
88 description = "generate a byte-stream from a git-tree"
gix/Cargo.toml+17−17
@@ -5,7 +5,7 @@ name = "gix" · 4 unmodified lines
55 repository = "https://github.com/GitoxideLabs/gitoxide"
66 description = "Interact with git repositories just like git would"
77 license = "MIT OR Apache-2.0"
8−version = "0.87.0"
8+version = "0.87.1"
99 authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
1010 edition = "2024"
1111 include = ["/src/**/*", "/LICENSE-*"]
@@ -338,9 +338,9 @@ gix-lock = { version = "^24.0.0", path = "../gix-lock" } · 326 unmodified lines
338338 gix-validate = { version = "^0.11.4", path = "../gix-validate" }
339339 gix-sec = { version = "^0.14.2", path = "../gix-sec" }
340340 gix-date = { version = "^0.16.0", path = "../gix-date" }
341−gix-refspec = { version = "^0.45.0", path = "../gix-refspec" }
341+gix-refspec = { version = "^0.45.1", path = "../gix-refspec" }
342342 gix-filter = { version = "^0.34.0", path = "../gix-filter", optional = true }
343−gix-dir = { version = "^0.29.0", path = "../gix-dir", optional = true }
343+gix-dir = { version = "^0.29.1", path = "../gix-dir", optional = true }
344344
345345 gix-config = { version = "^0.60.0", path = "../gix-config" }
346346 gix-odb = { version = "^0.84.0", path = "../gix-odb" }
@@ -349,21 +349,21 @@ gix-hash = { version = "^0.26.2", path = "../gix-hash" } · 2 unmodified lines
349349 gix-shallow = { version = "^0.13.0", path = "../gix-shallow" }
350350 gix-object = { version = "^0.64.1", path = "../gix-object" }
351351 gix-actor = { version = "^0.42.0", path = "../gix-actor" }
352−gix-pack = { version = "^0.74.1", path = "../gix-pack", default-features = false, features = [
352+gix-pack = { version = "^0.74.2", path = "../gix-pack", default-features = false, features = [
353353 "object-cache-dynamic",
354354 ] }
355−gix-revision = { version = "^0.49.0", path = "../gix-revision", default-features = false }
355+gix-revision = { version = "^0.49.1", path = "../gix-revision", default-features = false }
356356 gix-revwalk = { version = "^0.35.0", path = "../gix-revwalk" }
357−gix-negotiate = { version = "^0.35.0", path = "../gix-negotiate", optional = true }
357+gix-negotiate = { version = "^0.35.1", path = "../gix-negotiate", optional = true }
358358
359359 gix-path = { version = "^0.12.5", path = "../gix-path" }
360360 gix-quote = { version = "^0.8.0", path = "../gix-quote" }
361361 gix-url = { version = "^0.38.0", path = "../gix-url" }
362362 gix-traverse = { version = "^0.61.0", path = "../gix-traverse" }
363−gix-diff = { version = "^0.67.0", path = "../gix-diff", default-features = false }
364−gix-merge = { version = "^0.20.0", path = "../gix-merge", default-features = false, optional = true }
365−gix-mailmap = { version = "^0.34.0", path = "../gix-mailmap", optional = true }
366−gix-note = { version = "^0.1.0", path = "../gix-note", optional = true }
363+gix-diff = { version = "^0.67.1", path = "../gix-diff", default-features = false }
364+gix-merge = { version = "^0.20.1", path = "../gix-merge", default-features = false, optional = true }
365+gix-mailmap = { version = "^0.34.1", path = "../gix-mailmap", optional = true }
366+gix-note = { version = "^0.1.1", path = "../gix-note", optional = true }
367367 gix-features = { version = "^0.49.1", path = "../gix-features", features = [
368368 "progress",
369369 "once_cell",
@@ -377,23 +377,23 @@ gix-index = { version = "^0.55.0", path = "../gix-index", optional = true } · 7 unmodified lines
377377 gix-attributes = { version = "^0.35.0", path = "../gix-attributes", optional = true }
378378 gix-ignore = { version = "^0.22.1", path = "../gix-ignore", optional = true }
379379 gix-worktree = { version = "^0.56.0", path = "../gix-worktree", optional = true, default-features = false }
380−gix-worktree-state = { version = "^0.34.0", path = "../gix-worktree-state", optional = true }
380+gix-worktree-state = { version = "^0.34.1", path = "../gix-worktree-state", optional = true }
381381 gix-hashtable = { version = "^0.16.0", path = "../gix-hashtable" }
382382 gix-commitgraph = { version = "^0.39.0", path = "../gix-commitgraph" }
383383 gix-pathspec = { version = "^0.20.0", path = "../gix-pathspec", optional = true }
384384 gix-submodule = { version = "^0.34.0", path = "../gix-submodule", optional = true }
385−gix-status = { version = "^0.34.0", path = "../gix-status", optional = true, features = [
385+gix-status = { version = "^0.34.1", path = "../gix-status", optional = true, features = [
386386 "worktree-rewrites",
387387 ] }
388388 gix-command = { version = "^0.10.0", path = "../gix-command", optional = true }
389389
390−gix-worktree-stream = { version = "^0.36.0", path = "../gix-worktree-stream", optional = true }
391−gix-archive = { version = "^0.36.0", path = "../gix-archive", default-features = false, optional = true }
392−gix-blame = { version = "^0.17.0", path = "../gix-blame", optional = true }
390+gix-worktree-stream = { version = "^0.36.1", path = "../gix-worktree-stream", optional = true }
391+gix-archive = { version = "^0.36.1", path = "../gix-archive", default-features = false, optional = true }
392+gix-blame = { version = "^0.17.1", path = "../gix-blame", optional = true }
393393
394394 # For communication with remotes
395−gix-protocol = { version = "^0.65.0", path = "../gix-protocol" }
396−gix-transport = { version = "^0.59.0", path = "../gix-transport", optional = true }
395+gix-protocol = { version = "^0.65.1", path = "../gix-protocol" }
396+gix-transport = { version = "^0.59.1", path = "../gix-transport", optional = true }
397397
398398 # Just to get the progress-tree feature
399399 prodash = { version = "31.0.0", optional = true, features = ["progress-tree"] }
tests/it/Cargo.toml+1−1
@@ -17,5 +17,5 @@ path = "src/main.rs" · 16 unmodified lines
1717 [dependencies]
1818 anyhow = "1.0.102"
1919 clap = { version = "4.5.60", features = ["derive"] }
20−gix = { version = "^0.87.0", path = "../../gix", default-features = false, features = ["attributes", "blame", "blob-diff", "parallel", "revision", "sha1"] }
20+gix = { version = "^0.87.1", path = "../../gix", default-features = false, features = ["attributes", "blame", "blob-diff", "parallel", "revision", "sha1"] }
2121 regex = { version = "1.12.3", default-features = false, features = ["std"] }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t