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
1508 1508
1509[[package]]1509[[package]]
1510name = "gitoxide"1510name = "gitoxide"
1511version = "0.57.0"1511version = "0.58.0"
1512dependencies = [1512dependencies = [
1513 "anyhow",1513 "anyhow",
1514 "clap",1514 "clap",
@@ -1532,7 +1532,7 @@ dependencies = [ · 17 unmodified lines
1532 1532
1533[[package]]1533[[package]]
1534name = "gitoxide-core"1534name = "gitoxide-core"
1535version = "0.61.0"1535version = "0.61.1"
1536dependencies = [1536dependencies = [
1537 "anyhow",1537 "anyhow",
1538 "async-io",1538 "async-io",
@@ -1572,7 +1572,7 @@ dependencies = [ · 33 unmodified lines
1572 1572
1573[[package]]1573[[package]]
1574name = "gix"1574name = "gix"
1575version = "0.87.0"1575version = "0.87.1"
1576dependencies = [1576dependencies = [
1577 "anyhow",1577 "anyhow",
1578 "async-std",1578 "async-std",
@@ -1663,7 +1663,7 @@ dependencies = [ · 84 unmodified lines
1663 1663
1664[[package]]1664[[package]]
1665name = "gix-archive"1665name = "gix-archive"
1666version = "0.36.0"1666version = "0.36.1"
1667dependencies = [1667dependencies = [
1668 "bstr",1668 "bstr",
1669 "document-features",1669 "document-features",
@@ -1713,7 +1713,7 @@ dependencies = [ · 43 unmodified lines
1713 1713
1714[[package]]1714[[package]]
1715name = "gix-blame"1715name = "gix-blame"
1716version = "0.17.0"1716version = "0.17.1"
1717dependencies = [1717dependencies = [
1718 "gix-commitgraph",1718 "gix-commitgraph",
1719 "gix-date",1719 "gix-date",
@@ -1847,7 +1847,7 @@ dependencies = [ · 127 unmodified lines
1847 1847
1848[[package]]1848[[package]]
1849name = "gix-diff"1849name = "gix-diff"
1850version = "0.67.0"1850version = "0.67.1"
1851dependencies = [1851dependencies = [
1852 "bstr",1852 "bstr",
1853 "criterion",1853 "criterion",
@@ -1878,7 +1878,7 @@ dependencies = [ · 24 unmodified lines
1878 1878
1879[[package]]1879[[package]]
1880name = "gix-dir"1880name = "gix-dir"
1881version = "0.29.0"1881version = "0.29.1"
1882dependencies = [1882dependencies = [
1883 "bstr",1883 "bstr",
1884 "gix-dir",1884 "gix-dir",
@@ -1988,7 +1988,7 @@ dependencies = [ · 103 unmodified lines
1988 1988
1989[[package]]1989[[package]]
1990name = "gix-fsck"1990name = "gix-fsck"
1991version = "0.25.0"1991version = "0.25.1"
1992dependencies = [1992dependencies = [
1993 "gix-hash",1993 "gix-hash",
1994 "gix-hashtable",1994 "gix-hashtable",
@@ -2114,7 +2114,7 @@ dependencies = [ · 119 unmodified lines
2114 2114
2115[[package]]2115[[package]]
2116name = "gix-macros"2116name = "gix-macros"
2117version = "0.1.5"2117version = "0.1.6"
2118dependencies = [2118dependencies = [
2119 "proc-macro2",2119 "proc-macro2",
2120 "quote",2120 "quote",
@@ -2124,7 +2124,7 @@ dependencies = [ · 3 unmodified lines
2124 2124
2125[[package]]2125[[package]]
2126name = "gix-mailmap"2126name = "gix-mailmap"
2127version = "0.34.0"2127version = "0.34.1"
2128dependencies = [2128dependencies = [
2129 "bstr",2129 "bstr",
2130 "document-features",2130 "document-features",
@@ -2137,7 +2137,7 @@ dependencies = [ · 6 unmodified lines
2137 2137
2138[[package]]2138[[package]]
2139name = "gix-merge"2139name = "gix-merge"
2140version = "0.20.0"2140version = "0.20.1"
2141dependencies = [2141dependencies = [
2142 "arbitrary",2142 "arbitrary",
2143 "bstr",2143 "bstr",
@@ -2171,7 +2171,7 @@ dependencies = [ · 27 unmodified lines
2171 2171
2172[[package]]2172[[package]]
2173name = "gix-negotiate"2173name = "gix-negotiate"
2174version = "0.35.0"2174version = "0.35.1"
2175dependencies = [2175dependencies = [
2176 "bitflags 2.13.0",2176 "bitflags 2.13.0",
2177 "gix-commitgraph",2177 "gix-commitgraph",
@@ -2186,7 +2186,7 @@ dependencies = [ · 8 unmodified lines
2186 2186
2187[[package]]2187[[package]]
2188name = "gix-note"2188name = "gix-note"
2189version = "0.1.0"2189version = "0.1.1"
2190dependencies = [2190dependencies = [
2191 "gix-error",2191 "gix-error",
2192 "gix-hash",2192 "gix-hash",
@@ -2258,7 +2258,7 @@ dependencies = [ · 65 unmodified lines
2258 2258
2259[[package]]2259[[package]]
2260name = "gix-pack"2260name = "gix-pack"
2261version = "0.74.1"2261version = "0.74.2"
2262dependencies = [2262dependencies = [
2263 "bstr",2263 "bstr",
2264 "clru",2264 "clru",
@@ -2291,7 +2291,7 @@ dependencies = [ · 26 unmodified lines
2291 2291
2292[[package]]2292[[package]]
2293name = "gix-packetline"2293name = "gix-packetline"
2294version = "0.22.1"2294version = "0.22.2"
2295dependencies = [2295dependencies = [
2296 "async-std",2296 "async-std",
2297 "bstr",2297 "bstr",
@@ -2354,7 +2354,7 @@ dependencies = [ · 56 unmodified lines
2354 2354
2355[[package]]2355[[package]]
2356name = "gix-protocol"2356name = "gix-protocol"
2357version = "0.65.0"2357version = "0.65.1"
2358dependencies = [2358dependencies = [
2359 "async-std",2359 "async-std",
2360 "async-trait",2360 "async-trait",
@@ -2425,7 +2425,7 @@ dependencies = [ · 64 unmodified lines
2425 2425
2426[[package]]2426[[package]]
2427name = "gix-refspec"2427name = "gix-refspec"
2428version = "0.45.0"2428version = "0.45.1"
2429dependencies = [2429dependencies = [
2430 "bstr",2430 "bstr",
2431 "gix-hash",2431 "gix-hash",
@@ -2438,7 +2438,7 @@ dependencies = [ · 6 unmodified lines
2438 2438
2439[[package]]2439[[package]]
2440name = "gix-revision"2440name = "gix-revision"
2441version = "0.49.0"2441version = "0.49.1"
2442dependencies = [2442dependencies = [
2443 "bitflags 2.13.0",2443 "bitflags 2.13.0",
2444 "bstr",2444 "bstr",
@@ -2506,7 +2506,7 @@ dependencies = [ · 61 unmodified lines
2506 2506
2507[[package]]2507[[package]]
2508name = "gix-status"2508name = "gix-status"
2509version = "0.34.0"2509version = "0.34.1"
2510dependencies = [2510dependencies = [
2511 "bstr",2511 "bstr",
2512 "document-features",2512 "document-features",
@@ -2596,7 +2596,7 @@ dependencies = [ · 83 unmodified lines
2596 2596
2597[[package]]2597[[package]]
2598name = "gix-tix"2598name = "gix-tix"
2599version = "0.2.0"2599version = "0.3.0"
2600dependencies = [2600dependencies = [
2601 "anyhow",2601 "anyhow",
2602 "clap",2602 "clap",
@@ -2624,7 +2624,7 @@ dependencies = [ · 21 unmodified lines
2624 2624
2625[[package]]2625[[package]]
2626name = "gix-transport"2626name = "gix-transport"
2627version = "0.59.0"2627version = "0.59.1"
2628dependencies = [2628dependencies = [
2629 "async-std",2629 "async-std",
2630 "async-trait",2630 "async-trait",
@@ -2737,7 +2737,7 @@ dependencies = [ · 106 unmodified lines
2737 2737
2738[[package]]2738[[package]]
2739name = "gix-worktree-state"2739name = "gix-worktree-state"
2740version = "0.34.0"2740version = "0.34.1"
2741dependencies = [2741dependencies = [
2742 "bstr",2742 "bstr",
2743 "gix-discover",2743 "gix-discover",
@@ -2759,7 +2759,7 @@ dependencies = [ · 15 unmodified lines
2759 2759
2760[[package]]2760[[package]]
2761name = "gix-worktree-stream"2761name = "gix-worktree-stream"
2762version = "0.36.0"2762version = "0.36.1"
2763dependencies = [2763dependencies = [
2764 "gix-attributes",2764 "gix-attributes",
2765 "gix-error",2765 "gix-error",
Cargo.toml+4−4
@@ -7,7 +7,7 @@ repository = "https://github.com/GitoxideLabs/gitoxide" · 6 unmodified lines
7authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]7authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
8edition = "2024"8edition = "2024"
9license = "MIT OR Apache-2.0"9license = "MIT OR Apache-2.0"
10version = "0.57.0"10version = "0.58.0"
11# Rust 1.85 is required so hash-related dependencies can use Rust 2024 crates,11# Rust 1.85 is required so hash-related dependencies can use Rust 2024 crates,
12# notably `sha2` 0.11 and `hashbrown` 0.17.12# notably `sha2` 0.11 and `hashbrown` 0.17.
13rust-version = "1.85"13rust-version = "1.85"
@@ -171,10 +171,10 @@ gitoxide-core-async-client = ["gitoxide-core/async-client", "futures-lite"] · 157 unmodified lines
171[dependencies]171[dependencies]
172anyhow = "1.0.98"172anyhow = "1.0.98"
173 173
174gitoxide-core = { version = "^0.61.0", path = "gitoxide-core" }174gitoxide-core = { version = "^0.61.1", path = "gitoxide-core" }
175gix-features = { version = "^0.49.1", path = "gix-features" }175gix-features = { version = "^0.49.1", path = "gix-features" }
176gix = { version = "^0.87.0", path = "gix", default-features = false }176gix = { version = "^0.87.1", path = "gix", default-features = false }
177gix-tix = { version = "^0.2.0", path = "gix-tix", default-features = false, optional = true }177gix-tix = { version = "^0.3.0", path = "gix-tix", default-features = false, optional = true }
178 178
179clap = { version = "4.5.42", features = ["derive", "cargo"] }179clap = { version = "4.5.42", features = ["derive", "cargo"] }
180clap_complete = "4.5.55"180clap_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
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 7
8## Unreleased8## 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)
9 142
10### New Features143### New Features
11 144
@@ -100,7 +233,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 88 unmodified lines
100 233
101<csr-read-only-do-not-edit/>234<csr-read-only-do-not-edit/>
102 235
103 - 46 commits contributed to the release.236 - 48 commits contributed to the release.
104 - 31 days passed between releases.237 - 31 days passed between releases.
105 - 10 commits were understood as [conventional](https://www.conventionalcommits.org).238 - 10 commits were understood as [conventional](https://www.conventionalcommits.org).
106 - 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)239 - 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
124 * **[#2696](https://github.com/GitoxideLabs/gitoxide/issues/2696)**257 * **[#2696](https://github.com/GitoxideLabs/gitoxide/issues/2696)**
125 - Preserve multiple remote URLs ([`5f244b3`](https://github.com/GitoxideLabs/gitoxide/commit/5f244b32c44795062b0aa9e352404cbd1412a844))258 - Preserve multiple remote URLs ([`5f244b3`](https://github.com/GitoxideLabs/gitoxide/commit/5f244b32c44795062b0aa9e352404cbd1412a844))
126 * **Uncategorized**259 * **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))
127 - 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))262 - 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))
128 - Merge pull request #2737 from GitoxideLabs/encoding-fallback-pony ([`2315ede`](https://github.com/GitoxideLabs/gitoxide/commit/2315ede714da6a43c885ed534f37901b2e1db687))263 - Merge pull request #2737 from GitoxideLabs/encoding-fallback-pony ([`2315ede`](https://github.com/GitoxideLabs/gitoxide/commit/2315ede714da6a43c885ed534f37901b2e1db687))
129 - Adapt to changes in `gix-filter` ([`552402f`](https://github.com/GitoxideLabs/gitoxide/commit/552402f6147b8ed4f412b9d24bf8408320b4a5d8))264 - 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
4name = "gitoxide-core"4name = "gitoxide-core"
5description = "The library implementing all capabilities of the gitoxide CLI"5description = "The library implementing all capabilities of the gitoxide CLI"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7version = "0.61.0"7version = "0.61.1"
8authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]8authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
9license = "MIT OR Apache-2.0"9license = "MIT OR Apache-2.0"
10edition = "2024"10edition = "2024"
@@ -49,12 +49,12 @@ serde = ["gix/serde", "dep:serde_json", "dep:serde", "bytesize/serde"] · 38 unmodified lines
49 49
50[dependencies]50[dependencies]
51# deselect everything else (like "performance") as this should be controllable by the parent application.51# deselect everything else (like "performance") as this should be controllable by the parent application.
52gix = { 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"] }52gix = { 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"] }
53gix-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"] }53gix-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"] }
54gix-transport-configuration-only = { package = "gix-transport", version = "^0.59.0", path = "../gix-transport", default-features = false }54gix-transport-configuration-only = { package = "gix-transport", version = "^0.59.1", path = "../gix-transport", default-features = false }
55gix-archive-for-configuration-only = { package = "gix-archive", version = "^0.36.0", path = "../gix-archive", optional = true, features = ["tar", "tar_gz"] }55gix-archive-for-configuration-only = { package = "gix-archive", version = "^0.36.1", path = "../gix-archive", optional = true, features = ["tar", "tar_gz"] }
56gix-status = { version = "^0.34.0", path = "../gix-status" }56gix-status = { version = "^0.34.1", path = "../gix-status" }
57gix-fsck = { version = "^0.25.0", path = "../gix-fsck" }57gix-fsck = { version = "^0.25.1", path = "../gix-fsck" }
58gix-error-for-configuration-only = { package = "gix-error", version = "^0.3.1", path = "../gix-error", features = ["anyhow"] }58gix-error-for-configuration-only = { package = "gix-error", version = "^0.3.1", path = "../gix-error", features = ["anyhow"] }
59serde = { version = "1.0.114", optional = true, default-features = false, features = ["derive"] }59serde = { version = "1.0.114", optional = true, default-features = false, features = ["derive"] }
60anyhow = "1.0.102"60anyhow = "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
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 7
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
8## 0.36.0 (2026-08-22)31## 0.36.0 (2026-08-22)
9 32
10### Commit Statistics33### Commit Statistics
11 34
12<csr-read-only-do-not-edit/>35<csr-read-only-do-not-edit/>
13 36
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.
15 - 30 days passed between releases.38 - 30 days passed between releases.
16 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).39 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17 - 0 issues like '(#ID)' were seen in commit messages40 - 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
23<details><summary>view details</summary>46<details><summary>view details</summary>
24 47
25 * **Uncategorized**48 * **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))
26 - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))50 - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
27 - Merge pull request #2930 from GitoxideLabs/gix-notes ([`7424676`](https://github.com/GitoxideLabs/gitoxide/commit/7424676f86cd3f5a67c53f8db6baf0803e937d4a))51 - Merge pull request #2930 from GitoxideLabs/gix-notes ([`7424676`](https://github.com/GitoxideLabs/gitoxide/commit/7424676f86cd3f5a67c53f8db6baf0803e937d4a))
28 - Use automatic Box conversion in tests ([`ad4a9d1`](https://github.com/GitoxideLabs/gitoxide/commit/ad4a9d1c06aeb6a5534a03639230bd36cc690f3d))52 - 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
2 2
3[package]3[package]
4name = "gix-archive"4name = "gix-archive"
5version = "0.36.0"5version = "0.36.1"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7license = "MIT OR Apache-2.0"7license = "MIT OR Apache-2.0"
8description = "archive generation from of a worktree stream"8description = "archive generation from of a worktree stream"
@@ -31,7 +31,7 @@ zip = ["dep:rawzip", "dep:flate2"] · 22 unmodified lines
31 31
32 32
33[dependencies]33[dependencies]
34gix-worktree-stream = { version = "^0.36.0", path = "../gix-worktree-stream" }34gix-worktree-stream = { version = "^0.36.1", path = "../gix-worktree-stream" }
35gix-object = { version = "^0.64.1", path = "../gix-object" }35gix-object = { version = "^0.64.1", path = "../gix-object" }
36gix-path = { version = "^0.12.5", path = "../gix-path", optional = true }36gix-path = { version = "^0.12.5", path = "../gix-path", optional = true }
37gix-date = { version = "^0.16.0", path = "../gix-date" }37gix-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
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 7
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
8## 0.16.0 (2026-07-23)67## 0.16.0 (2026-07-23)
9 68
10### Commit Statistics69### Commit Statistics
11 70
12<csr-read-only-do-not-edit/>71<csr-read-only-do-not-edit/>
13 72
14 - 7 commits contributed to the release.73 - 8 commits contributed to the release.
15 - 31 days passed between releases.74 - 31 days passed between releases.
16 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).75 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17 - 0 issues like '(#ID)' were seen in commit messages76 - 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
23<details><summary>view details</summary>82<details><summary>view details</summary>
24 83
25 * **Uncategorized**84 * **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))
26 - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f))86 - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f))
27 - 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))87 - 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))
28 - Merge pull request #2722 from GitoxideLabs/reasons ([`c16b5a1`](https://github.com/GitoxideLabs/gitoxide/commit/c16b5a1892704b7c72a253bdd74a6848dd61032a))88 - 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
2 2
3[package]3[package]
4name = "gix-blame"4name = "gix-blame"
5version = "0.17.0"5version = "0.17.1"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7license = "MIT OR Apache-2.0"7license = "MIT OR Apache-2.0"
8description = "A crate of the gitoxide project dedicated to implementing a 'blame' algorithm"8description = "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
23gix-revwalk = { version = "^0.35.0", path = "../gix-revwalk" }23gix-revwalk = { version = "^0.35.0", path = "../gix-revwalk" }
24gix-trace = { version = "^0.1.21", path = "../gix-trace" }24gix-trace = { version = "^0.1.21", path = "../gix-trace" }
25gix-date = { version = "^0.16.0", path = "../gix-date" }25gix-date = { version = "^0.16.0", path = "../gix-date" }
26gix-diff = { version = "^0.67.0", path = "../gix-diff", default-features = false, features = ["blob"] }26gix-diff = { version = "^0.67.1", path = "../gix-diff", default-features = false, features = ["blob"] }
27gix-object = { version = "^0.64.1", path = "../gix-object" }27gix-object = { version = "^0.64.1", path = "../gix-object" }
28gix-hash = { version = "^0.26.2", path = "../gix-hash" }28gix-hash = { version = "^0.26.2", path = "../gix-hash" }
29gix-worktree = { version = "^0.56.0", path = "../gix-worktree", default-features = false, features = ["attributes"] }29gix-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
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 7
8## Unreleased8## 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)
9 201
10### Chore202### Chore
11 203
@@ -36,7 +228,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 24 unmodified lines
36 228
37<csr-read-only-do-not-edit/>229<csr-read-only-do-not-edit/>
38 230
39 - 14 commits contributed to the release.231 - 16 commits contributed to the release.
40 - 31 days passed between releases.232 - 31 days passed between releases.
41 - 3 commits were understood as [conventional](https://www.conventionalcommits.org).233 - 3 commits were understood as [conventional](https://www.conventionalcommits.org).
42 - 1 unique issue was worked on: [#1832](https://github.com/GitoxideLabs/gitoxide/issues/1832)234 - 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
51 - Prefer file-name matches when pairing rename candidates, like Git ([`cea5ea7`](https://github.com/GitoxideLabs/gitoxide/commit/cea5ea77b57f840de618e1d15508add8293f30f2))243 - Prefer file-name matches when pairing rename candidates, like Git ([`cea5ea7`](https://github.com/GitoxideLabs/gitoxide/commit/cea5ea77b57f840de618e1d15508add8293f30f2))
52 - Make rename tracking independent of the input order ([`1acc43d`](https://github.com/GitoxideLabs/gitoxide/commit/1acc43d14af57e7711407af8172d43a75733ae16))244 - Make rename tracking independent of the input order ([`1acc43d`](https://github.com/GitoxideLabs/gitoxide/commit/1acc43d14af57e7711407af8172d43a75733ae16))
53 * **Uncategorized**245 * **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))
54 - 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))248 - 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))
55 - Merge pull request #2737 from GitoxideLabs/encoding-fallback-pony ([`2315ede`](https://github.com/GitoxideLabs/gitoxide/commit/2315ede714da6a43c885ed534f37901b2e1db687))249 - Merge pull request #2737 from GitoxideLabs/encoding-fallback-pony ([`2315ede`](https://github.com/GitoxideLabs/gitoxide/commit/2315ede714da6a43c885ed534f37901b2e1db687))
56 - Adapt to changes in `gix-filter` ([`552402f`](https://github.com/GitoxideLabs/gitoxide/commit/552402f6147b8ed4f412b9d24bf8408320b4a5d8))250 - 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
2 2
3[package]3[package]
4name = "gix-diff"4name = "gix-diff"
5version = "0.67.0"5version = "0.67.1"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7license = "MIT OR Apache-2.0"7license = "MIT OR Apache-2.0"
8description = "Calculate differences between various git objects"8description = "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
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 7
8## Unreleased8## 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)
9 81
10### Bug Fixes82### Bug Fixes
11 83
@@ -33,7 +105,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 21 unmodified lines
33 105
34<csr-read-only-do-not-edit/>106<csr-read-only-do-not-edit/>
35 107
36 - 9 commits contributed to the release.108 - 11 commits contributed to the release.
37 - 31 days passed between releases.109 - 31 days passed between releases.
38 - 1 commit was understood as [conventional](https://www.conventionalcommits.org).110 - 1 commit was understood as [conventional](https://www.conventionalcommits.org).
39 - 1 unique issue was worked on: [#2490](https://github.com/GitoxideLabs/gitoxide/issues/2490)111 - 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
47 * **[#2490](https://github.com/GitoxideLabs/gitoxide/issues/2490)**119 * **[#2490](https://github.com/GitoxideLabs/gitoxide/issues/2490)**
48 - Keep EmptyDirectory when collapsing trees of only empty dirs ([`4b38ff1`](https://github.com/GitoxideLabs/gitoxide/commit/4b38ff1267ec73afe79c727a3a998a7da209077e))120 - Keep EmptyDirectory when collapsing trees of only empty dirs ([`4b38ff1`](https://github.com/GitoxideLabs/gitoxide/commit/4b38ff1267ec73afe79c727a3a998a7da209077e))
49 * **Uncategorized**121 * **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))
50 - 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))124 - 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))
51 - Merge pull request #2722 from GitoxideLabs/reasons ([`c16b5a1`](https://github.com/GitoxideLabs/gitoxide/commit/c16b5a1892704b7c72a253bdd74a6848dd61032a))125 - Merge pull request #2722 from GitoxideLabs/reasons ([`c16b5a1`](https://github.com/GitoxideLabs/gitoxide/commit/c16b5a1892704b7c72a253bdd74a6848dd61032a))
52 - Replace lint allowances with expectations ([`43ff87a`](https://github.com/GitoxideLabs/gitoxide/commit/43ff87a73897b70313e3a58e7de82231be5b59ad))126 - 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
2 2
3[package]3[package]
4name = "gix-dir"4name = "gix-dir"
5version = "0.29.0"5version = "0.29.1"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7license = "MIT OR Apache-2.0"7license = "MIT OR Apache-2.0"
8description = "A crate of the gitoxide project dealing with directory walks"8description = "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
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 7
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
8## 0.25.0 (2026-08-22)31## 0.25.0 (2026-08-22)
9 32
10### Commit Statistics33### Commit Statistics
11 34
12<csr-read-only-do-not-edit/>35<csr-read-only-do-not-edit/>
13 36
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.
15 - 30 days passed between releases.38 - 30 days passed between releases.
16 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).39 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17 - 0 issues like '(#ID)' were seen in commit messages40 - 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
23<details><summary>view details</summary>46<details><summary>view details</summary>
24 47
25 * **Uncategorized**48 * **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))
26 - 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))50 - 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))
27 - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))51 - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
28 - Merge pull request #2901 from cruessler/switch-to-gix-odb-at-opts ([`2a4d996`](https://github.com/GitoxideLabs/gitoxide/commit/2a4d996ca53bd38a5e9889da0b180580315d905f))52 - 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
2 2
3[package]3[package]
4name = "gix-fsck"4name = "gix-fsck"
5version = "0.25.0"5version = "0.25.1"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7authors = ["Cameron Esfahani <cesfahani@gmail.com>", "Sebastian Thiel <sebastian.thiel@icloud.com>"]7authors = ["Cameron Esfahani <cesfahani@gmail.com>", "Sebastian Thiel <sebastian.thiel@icloud.com>"]
8license = "MIT OR Apache-2.0"8license = "MIT OR Apache-2.0"
gix-macros/Cargo.toml+1−1
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
2 2
3[package]3[package]
4name = "gix-macros"4name = "gix-macros"
5version = "0.1.5"5version = "0.1.6"
6edition = "2024"6edition = "2024"
7description = "Proc-macro utilities for gix"7description = "Proc-macro utilities for gix"
8authors = [8authors = [
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
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 7
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
8## 0.33.2 (2026-07-23)95## 0.33.2 (2026-07-23)
9 96
10### Commit Statistics97### Commit Statistics
11 98
12<csr-read-only-do-not-edit/>99<csr-read-only-do-not-edit/>
13 100
14 - 4 commits contributed to the release.101 - 5 commits contributed to the release.
15 - 58 days passed between releases.102 - 58 days passed between releases.
16 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).103 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17 - 0 issues like '(#ID)' were seen in commit messages104 - 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
23<details><summary>view details</summary>110<details><summary>view details</summary>
24 111
25 * **Uncategorized**112 * **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))
26 - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f))114 - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f))
27 - Merge pull request #2714 from GitoxideLabs/fix-credentials-parsing ([`cf3053a`](https://github.com/GitoxideLabs/gitoxide/commit/cf3053a3c18e2de788cdaa9f41b5bd343bdc0091))115 - Merge pull request #2714 from GitoxideLabs/fix-credentials-parsing ([`cf3053a`](https://github.com/GitoxideLabs/gitoxide/commit/cf3053a3c18e2de788cdaa9f41b5bd343bdc0091))
28 - 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))116 - 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
2 2
3[package]3[package]
4name = "gix-mailmap"4name = "gix-mailmap"
5version = "0.34.0"5version = "0.34.1"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7license = "MIT OR Apache-2.0"7license = "MIT OR Apache-2.0"
8description = "A crate of the gitoxide project for parsing mailmap files"8description = "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
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 7
8## Unreleased8## 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)
9 256
10### Bug Fixes257### Bug Fixes
11 258
@@ -40,7 +287,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 28 unmodified lines
40 287
41<csr-read-only-do-not-edit/>288<csr-read-only-do-not-edit/>
42 289
43 - 16 commits contributed to the release.290 - 18 commits contributed to the release.
44 - 31 days passed between releases.291 - 31 days passed between releases.
45 - 2 commits were understood as [conventional](https://www.conventionalcommits.org).292 - 2 commits were understood as [conventional](https://www.conventionalcommits.org).
46 - 1 unique issue was worked on: [#1832](https://github.com/GitoxideLabs/gitoxide/issues/1832)293 - 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
54 * **[#1832](https://github.com/GitoxideLabs/gitoxide/issues/1832)**301 * **[#1832](https://github.com/GitoxideLabs/gitoxide/issues/1832)**
55 - Prefer file-name matches when pairing rename candidates, like Git ([`cea5ea7`](https://github.com/GitoxideLabs/gitoxide/commit/cea5ea77b57f840de618e1d15508add8293f30f2))302 - Prefer file-name matches when pairing rename candidates, like Git ([`cea5ea7`](https://github.com/GitoxideLabs/gitoxide/commit/cea5ea77b57f840de618e1d15508add8293f30f2))
56 * **Uncategorized**303 * **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))
57 - 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))306 - 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))
58 - Merge pull request #2737 from GitoxideLabs/encoding-fallback-pony ([`2315ede`](https://github.com/GitoxideLabs/gitoxide/commit/2315ede714da6a43c885ed534f37901b2e1db687))307 - Merge pull request #2737 from GitoxideLabs/encoding-fallback-pony ([`2315ede`](https://github.com/GitoxideLabs/gitoxide/commit/2315ede714da6a43c885ed534f37901b2e1db687))
59 - Adapt to changes in `gix-filter` ([`552402f`](https://github.com/GitoxideLabs/gitoxide/commit/552402f6147b8ed4f412b9d24bf8408320b4a5d8))308 - Adapt to changes in `gix-filter` ([`552402f`](https://github.com/GitoxideLabs/gitoxide/commit/552402f6147b8ed4f412b9d24bf8408320b4a5d8))
gix-merge/Cargo.toml+3−3
@@ -1,6 +1,6 @@
1[package]1[package]
2name = "gix-merge"2name = "gix-merge"
3version = "0.20.0"3version = "0.20.1"
4repository = "https://github.com/GitoxideLabs/gitoxide"4repository = "https://github.com/GitoxideLabs/gitoxide"
5license = "MIT OR Apache-2.0"5license = "MIT OR Apache-2.0"
6description = "A crate of the gitoxide project implementing merge algorithms"6description = "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
38gix-tempfile = { version = "^24.0.0", path = "../gix-tempfile" }38gix-tempfile = { version = "^24.0.0", path = "../gix-tempfile" }
39gix-trace = { version = "^0.1.21", path = "../gix-trace" }39gix-trace = { version = "^0.1.21", path = "../gix-trace" }
40gix-quote = { version = "^0.8.0", path = "../gix-quote" }40gix-quote = { version = "^0.8.0", path = "../gix-quote" }
41gix-revision = { version = "^0.49.0", path = "../gix-revision", default-features = false, features = ["merge_base"] }41gix-revision = { version = "^0.49.1", path = "../gix-revision", default-features = false, features = ["merge_base"] }
42gix-revwalk = { version = "^0.35.0", path = "../gix-revwalk" }42gix-revwalk = { version = "^0.35.0", path = "../gix-revwalk" }
43gix-diff = { version = "^0.67.0", path = "../gix-diff", default-features = false, features = ["blob"] }43gix-diff = { version = "^0.67.1", path = "../gix-diff", default-features = false, features = ["blob"] }
44gix-index = { version = "^0.55.0", path = "../gix-index" }44gix-index = { version = "^0.55.0", path = "../gix-index" }
45imara-diff = { package = "gix-imara-diff", version = "^0.2.5", path = "../gix-imara-diff" }45imara-diff = { package = "gix-imara-diff", version = "^0.2.5", path = "../gix-imara-diff" }
46 46
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
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 7
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
8## 0.35.0 (2026-08-22)31## 0.35.0 (2026-08-22)
9 32
10### Commit Statistics33### Commit Statistics
11 34
12<csr-read-only-do-not-edit/>35<csr-read-only-do-not-edit/>
13 36
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.
15 - 30 days passed between releases.38 - 30 days passed between releases.
16 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).39 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17 - 0 issues like '(#ID)' were seen in commit messages40 - 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
23<details><summary>view details</summary>46<details><summary>view details</summary>
24 47
25 * **Uncategorized**48 * **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))
26 - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))50 - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
27 - Merge pull request #2919 from cruessler/require-object-hash-in-file-store-at ([`e5452ba`](https://github.com/GitoxideLabs/gitoxide/commit/e5452baec8ad94736a9f489ec5135c46091eab97))51 - Merge pull request #2919 from cruessler/require-object-hash-in-file-store-at ([`e5452ba`](https://github.com/GitoxideLabs/gitoxide/commit/e5452baec8ad94736a9f489ec5135c46091eab97))
28 - Adapt to changes in `gix-ref` ([`5810922`](https://github.com/GitoxideLabs/gitoxide/commit/5810922cdb1c2028236b923f6003db7445da35ea))52 - 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
2 2
3[package]3[package]
4name = "gix-negotiate"4name = "gix-negotiate"
5version = "0.35.0"5version = "0.35.1"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7license = "MIT OR Apache-2.0"7license = "MIT OR Apache-2.0"
8description = "A crate of the gitoxide project implementing negotiation algorithms"8description = "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
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 7
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
8## 0.0.0 (2023-08-17)151## 0.0.0 (2023-08-17)
9 152
10An empty crate without any content to reserve the name for the gitoxide project.153An 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
32 175
33<csr-read-only-do-not-edit/>176<csr-read-only-do-not-edit/>
34 177
35 - 21 commits contributed to the release over the course of 504 calendar days.178 - 22 commits contributed to the release.
36 - 4 commits were understood as [conventional](https://www.conventionalcommits.org).179 - 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)
38 181
39### Commit Details182### Commit Details
40 183
@@ -42,28 +185,29 @@ An empty crate without any content to reserve the name for the gitoxide project. · 1 unmodified line
42 185
43<details><summary>view details</summary>186<details><summary>view details</summary>
44 187
45 * **[#691](https://github.com/Byron/gitoxide/issues/691)**188 * **[#691](https://github.com/GitoxideLabs/gitoxide/issues/691)**
46 - Set `rust-version` to 1.64 ([`55066ce`](https://github.com/Byron/gitoxide/commit/55066ce5fd71209abb5d84da2998b903504584bb))189 - Set `rust-version` to 1.64 ([`55066ce`](https://github.com/GitoxideLabs/gitoxide/commit/55066ce5fd71209abb5d84da2998b903504584bb))
47 * **Uncategorized**190 * **Uncategorized**
48 - Don't call crate 'WIP' in manifest anymore. ([`229bd48`](https://github.com/Byron/gitoxide/commit/229bd4899213f749a7cc124aa2b82a1368fba40f))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))
49 - Update license field following SPDX 2.1 license expression standard ([`9064ea3`](https://github.com/Byron/gitoxide/commit/9064ea31fae4dc59a56bdd3a06c0ddc990ee689e))192 - Don't call crate 'WIP' in manifest anymore. ([`229bd48`](https://github.com/GitoxideLabs/gitoxide/commit/229bd4899213f749a7cc124aa2b82a1368fba40f))
50 - Merge branch 'corpus' ([`aa16c8c`](https://github.com/Byron/gitoxide/commit/aa16c8ce91452a3e3063cf1cf0240b6014c4743f))193 - Update license field following SPDX 2.1 license expression standard ([`9064ea3`](https://github.com/GitoxideLabs/gitoxide/commit/9064ea31fae4dc59a56bdd3a06c0ddc990ee689e))
51 - Change MSRV to 1.65 ([`4f635fc`](https://github.com/Byron/gitoxide/commit/4f635fc4429350bae2582d25de86429969d28f30))194 - Merge branch 'corpus' ([`aa16c8c`](https://github.com/GitoxideLabs/gitoxide/commit/aa16c8ce91452a3e3063cf1cf0240b6014c4743f))
52 - Merge branch 'main' into auto-clippy ([`3ef5c90`](https://github.com/Byron/gitoxide/commit/3ef5c90aebce23385815f1df674c1d28d58b4b0d))195 - Change MSRV to 1.65 ([`4f635fc`](https://github.com/GitoxideLabs/gitoxide/commit/4f635fc4429350bae2582d25de86429969d28f30))
53 - Merge branch 'blinxen/main' ([`9375cd7`](https://github.com/Byron/gitoxide/commit/9375cd75b01aa22a0e2eed6305fe45fabfd6c1ac))196 - Merge branch 'main' into auto-clippy ([`3ef5c90`](https://github.com/GitoxideLabs/gitoxide/commit/3ef5c90aebce23385815f1df674c1d28d58b4b0d))
54 - Include license files in all crates ([`facaaf6`](https://github.com/Byron/gitoxide/commit/facaaf633f01c857dcf2572c6dbe0a92b7105c1c))197 - Merge branch 'blinxen/main' ([`9375cd7`](https://github.com/GitoxideLabs/gitoxide/commit/9375cd75b01aa22a0e2eed6305fe45fabfd6c1ac))
55 - Merge branch 'rename-crates' into inform-about-gix-rename ([`c9275b9`](https://github.com/Byron/gitoxide/commit/c9275b99ea43949306d93775d9d78c98fb86cfb1))198 - Include license files in all crates ([`facaaf6`](https://github.com/GitoxideLabs/gitoxide/commit/facaaf633f01c857dcf2572c6dbe0a92b7105c1c))
56 - Adjust to renaming of `git-note` to `gix-note` ([`9cc9ae2`](https://github.com/Byron/gitoxide/commit/9cc9ae28102bca9c5eac4c7699be7029e7f7697f))199 - Merge branch 'rename-crates' into inform-about-gix-rename ([`c9275b9`](https://github.com/GitoxideLabs/gitoxide/commit/c9275b99ea43949306d93775d9d78c98fb86cfb1))
57 - Rename `git-note` to `gix-note` ([`794b485`](https://github.com/Byron/gitoxide/commit/794b485e40728aba3a364455210a2035e7ba9fbd))200 - Adjust to renaming of `git-note` to `gix-note` ([`9cc9ae2`](https://github.com/GitoxideLabs/gitoxide/commit/9cc9ae28102bca9c5eac4c7699be7029e7f7697f))
58 - Merge branch 'main' into http-config ([`bcd9654`](https://github.com/Byron/gitoxide/commit/bcd9654e56169799eb706646da6ee1f4ef2021a9))201 - Rename `git-note` to `gix-note` ([`794b485`](https://github.com/GitoxideLabs/gitoxide/commit/794b485e40728aba3a364455210a2035e7ba9fbd))
59 - Merge branch 'version2021' ([`0e4462d`](https://github.com/Byron/gitoxide/commit/0e4462df7a5166fe85c23a779462cdca8ee013e8))202 - Merge branch 'main' into http-config ([`bcd9654`](https://github.com/GitoxideLabs/gitoxide/commit/bcd9654e56169799eb706646da6ee1f4ef2021a9))
60 - Upgrade edition to 2021 in most crates. ([`3d8fa8f`](https://github.com/Byron/gitoxide/commit/3d8fa8fef9800b1576beab8a5bc39b821157a5ed))203 - Merge branch 'version2021' ([`0e4462d`](https://github.com/GitoxideLabs/gitoxide/commit/0e4462df7a5166fe85c23a779462cdca8ee013e8))
61 - Merge branch 'main' into index-from-tree ([`bc64b96`](https://github.com/Byron/gitoxide/commit/bc64b96a2ec781c72d1d4daad38aa7fb8b74f99b))204 - Upgrade edition to 2021 in most crates. ([`3d8fa8f`](https://github.com/GitoxideLabs/gitoxide/commit/3d8fa8fef9800b1576beab8a5bc39b821157a5ed))
62 - Merge branch 'main' into remote-ls-refs ([`e2ee3de`](https://github.com/Byron/gitoxide/commit/e2ee3ded97e5c449933712883535b30d151c7c78))205 - Merge branch 'main' into index-from-tree ([`bc64b96`](https://github.com/GitoxideLabs/gitoxide/commit/bc64b96a2ec781c72d1d4daad38aa7fb8b74f99b))
63 - Merge branch 'docsrs-show-features' ([`31c2351`](https://github.com/Byron/gitoxide/commit/31c235140cad212d16a56195763fbddd971d87ce))206 - Merge branch 'main' into remote-ls-refs ([`e2ee3de`](https://github.com/GitoxideLabs/gitoxide/commit/e2ee3ded97e5c449933712883535b30d151c7c78))
64 - Uniformize deny attributes ([`f7f136d`](https://github.com/Byron/gitoxide/commit/f7f136dbe4f86e7dee1d54835c420ec07c96cd78))207 - Merge branch 'docsrs-show-features' ([`31c2351`](https://github.com/GitoxideLabs/gitoxide/commit/31c235140cad212d16a56195763fbddd971d87ce))
65 - Remove default link to cargo doc everywhere ([`533e887`](https://github.com/Byron/gitoxide/commit/533e887e80c5f7ede8392884562e1c5ba56fb9a8))208 - Uniformize deny attributes ([`f7f136d`](https://github.com/GitoxideLabs/gitoxide/commit/f7f136dbe4f86e7dee1d54835c420ec07c96cd78))
66 - Release git-note v0.0.0 ([`2dcb3f3`](https://github.com/Byron/gitoxide/commit/2dcb3f3e030bc87914c7c58ce2916d81649aa0d9))209 - Remove default link to cargo doc everywhere ([`533e887`](https://github.com/GitoxideLabs/gitoxide/commit/533e887e80c5f7ede8392884562e1c5ba56fb9a8))
67 - Empty crate for git-note ([`2fb8b46`](https://github.com/Byron/gitoxide/commit/2fb8b46abd3905bdf654977e77ec2f36f09e754f))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))
68</details>212</details>
69 213
gix-note/Cargo.toml+1−1
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
2 2
3[package]3[package]
4name = "gix-note"4name = "gix-note"
5version = "0.1.0"5version = "0.1.1"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7license = "MIT OR Apache-2.0"7license = "MIT OR Apache-2.0"
8description = "A crate of the gitoxide project dealing with git notes"8description = "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
2 2
3[package]3[package]
4name = "gix-pack"4name = "gix-pack"
5version = "0.74.1"5version = "0.74.2"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]7authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
8license = "MIT OR Apache-2.0"8license = "MIT OR Apache-2.0"
@@ -56,7 +56,7 @@ gix-hashtable = { version = "^0.16.0", path = "../gix-hashtable", optional = tru · 47 unmodified lines
56 56
57# for streaming of packs (input, output)57# for streaming of packs (input, output)
58gix-traverse = { version = "^0.61.0", path = "../gix-traverse", optional = true }58gix-traverse = { version = "^0.61.0", path = "../gix-traverse", optional = true }
59gix-diff = { version = "^0.67.0", path = "../gix-diff", default-features = false, optional = true }59gix-diff = { version = "^0.67.1", path = "../gix-diff", default-features = false, optional = true }
60 60
61memmap2 = "0.9.11"61memmap2 = "0.9.11"
62smallvec = "1.15.1"62smallvec = "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
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 7
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
8## 0.22.1 (2026-08-23)29## 0.22.1 (2026-08-23)
9 30
10### Commit Statistics31### Commit Statistics
11 32
12<csr-read-only-do-not-edit/>33<csr-read-only-do-not-edit/>
13 34
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.
15 - 31 days passed between releases.36 - 31 days passed between releases.
16 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).37 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17 - 0 issues like '(#ID)' were seen in commit messages38 - 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
23<details><summary>view details</summary>44<details><summary>view details</summary>
24 45
25 * **Uncategorized**46 * **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))
26 - Use fundamental-type comparisons throughout tests ([`47536a5`](https://github.com/GitoxideLabs/gitoxide/commit/47536a5c2b22da3a9f4892c8af5e460c2d5bda0a))48 - Use fundamental-type comparisons throughout tests ([`47536a5`](https://github.com/GitoxideLabs/gitoxide/commit/47536a5c2b22da3a9f4892c8af5e460c2d5bda0a))
27 - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b))49 - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b))
28</details>50</details>
gix-packetline/Cargo.toml+1−1
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
2 2
3[package]3[package]
4name = "gix-packetline"4name = "gix-packetline"
5version = "0.22.1"5version = "0.22.2"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7license = "MIT OR Apache-2.0"7license = "MIT OR Apache-2.0"
8description = "A crate of the gitoxide project implementing the pkt-line serialization format"8description = "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
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 7
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
8## 0.65.0 (2026-08-22)32## 0.65.0 (2026-08-22)
9 33
10### Commit Statistics34### Commit Statistics
11 35
12<csr-read-only-do-not-edit/>36<csr-read-only-do-not-edit/>
13 37
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.
15 - 30 days passed between releases.39 - 30 days passed between releases.
16 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).40 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17 - 0 issues like '(#ID)' were seen in commit messages41 - 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
23<details><summary>view details</summary>47<details><summary>view details</summary>
24 48
25 * **Uncategorized**49 * **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))
26 - 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))51 - 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))
27 - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))52 - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
28 - Merge pull request #2867 from GitoxideLabs/fix-url-authority-parsing ([`cc3ee80`](https://github.com/GitoxideLabs/gitoxide/commit/cc3ee8060ad7a32ee8d2eb9139854be7f7561b70))53 - 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
2 2
3[package]3[package]
4name = "gix-protocol"4name = "gix-protocol"
5version = "0.65.0"5version = "0.65.1"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7license = "MIT OR Apache-2.0"7license = "MIT OR Apache-2.0"
8description = "A crate of the gitoxide project for implementing git protocols"8description = "A crate of the gitoxide project for implementing git protocols"
@@ -75,20 +75,20 @@ required-features = ["async-client"] · 66 unmodified lines
75gix-features = { version = "^0.49.1", path = "../gix-features", features = [75gix-features = { version = "^0.49.1", path = "../gix-features", features = [
76 "progress",76 "progress",
77] }77] }
78gix-transport = { version = "^0.59.0", path = "../gix-transport" }78gix-transport = { version = "^0.59.1", path = "../gix-transport" }
79gix-hash = { version = "^0.26.2", path = "../gix-hash" }79gix-hash = { version = "^0.26.2", path = "../gix-hash" }
80gix-shallow = { version = "^0.13.0", path = "../gix-shallow" }80gix-shallow = { version = "^0.13.0", path = "../gix-shallow" }
81gix-date = { version = "^0.16.0", path = "../gix-date" }81gix-date = { version = "^0.16.0", path = "../gix-date" }
82gix-utils = { version = "^0.3.6", path = "../gix-utils" }82gix-utils = { version = "^0.3.6", path = "../gix-utils" }
83gix-ref = { version = "^0.67.1", path = "../gix-ref" }83gix-ref = { version = "^0.67.1", path = "../gix-ref" }
84gix-macros = { version = "^0.1.5", path = "../gix-macros" }84gix-macros = { version = "^0.1.6", path = "../gix-macros" }
85 85
86gix-trace = { version = "^0.1.21", path = "../gix-trace", optional = true }86gix-trace = { version = "^0.1.21", path = "../gix-trace", optional = true }
87gix-negotiate = { version = "^0.35.0", path = "../gix-negotiate", optional = true }87gix-negotiate = { version = "^0.35.1", path = "../gix-negotiate", optional = true }
88gix-object = { version = "^0.64.1", path = "../gix-object", optional = true }88gix-object = { version = "^0.64.1", path = "../gix-object", optional = true }
89gix-revwalk = { version = "^0.35.0", path = "../gix-revwalk", optional = true }89gix-revwalk = { version = "^0.35.0", path = "../gix-revwalk", optional = true }
90gix-credentials = { version = "^0.40.0", path = "../gix-credentials", optional = true }90gix-credentials = { version = "^0.40.0", path = "../gix-credentials", optional = true }
91gix-refspec = { version = "^0.45.0", path = "../gix-refspec", optional = true }91gix-refspec = { version = "^0.45.1", path = "../gix-refspec", optional = true }
92gix-lock = { version = "^24.0.0", path = "../gix-lock", optional = true }92gix-lock = { version = "^24.0.0", path = "../gix-lock", optional = true }
93 93
94thiserror = "2.0.18"94thiserror = "2.0.18"
@@ -110,7 +110,7 @@ document-features = { version = "0.2.0", optional = true } · 15 unmodified lines
110 110
111[dev-dependencies]111[dev-dependencies]
112async-std = { version = "1.9.0", features = ["attributes"] }112async-std = { version = "1.9.0", features = ["attributes"] }
113gix-packetline = { path = "../gix-packetline", version = "^0.22.1" }113gix-packetline = { path = "../gix-packetline", version = "^0.22.2" }
114gix-protocol = { path = "../gix-protocol", features = ["sha1"] }114gix-protocol = { path = "../gix-protocol", features = ["sha1"] }
115 115
116[package.metadata.docs.rs]116[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
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 7
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
8## 0.44.0 (2026-07-23)134## 0.44.0 (2026-07-23)
9 135
10### Commit Statistics136### Commit Statistics
11 137
12<csr-read-only-do-not-edit/>138<csr-read-only-do-not-edit/>
13 139
14 - 7 commits contributed to the release.140 - 8 commits contributed to the release.
15 - 31 days passed between releases.141 - 31 days passed between releases.
16 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).142 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17 - 0 issues like '(#ID)' were seen in commit messages143 - 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
23<details><summary>view details</summary>149<details><summary>view details</summary>
24 150
25 * **Uncategorized**151 * **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))
26 - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f))153 - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f))
27 - 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))154 - 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))
28 - Merge pull request #2722 from GitoxideLabs/reasons ([`c16b5a1`](https://github.com/GitoxideLabs/gitoxide/commit/c16b5a1892704b7c72a253bdd74a6848dd61032a))155 - 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
2 2
3[package]3[package]
4name = "gix-refspec"4name = "gix-refspec"
5version = "0.45.0"5version = "0.45.1"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7license = "MIT OR Apache-2.0"7license = "MIT OR Apache-2.0"
8description = "A crate of the gitoxide project for parsing and representing refspecs"8description = "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
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 7
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
8## 0.48.0 (2026-07-23)121## 0.48.0 (2026-07-23)
9 122
10### Commit Statistics123### Commit Statistics
11 124
12<csr-read-only-do-not-edit/>125<csr-read-only-do-not-edit/>
13 126
14 - 7 commits contributed to the release.127 - 8 commits contributed to the release.
15 - 31 days passed between releases.128 - 31 days passed between releases.
16 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).129 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17 - 0 issues like '(#ID)' were seen in commit messages130 - 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
23<details><summary>view details</summary>136<details><summary>view details</summary>
24 137
25 * **Uncategorized**138 * **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))
26 - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f))140 - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f))
27 - 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))141 - 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))
28 - Merge pull request #2722 from GitoxideLabs/reasons ([`c16b5a1`](https://github.com/GitoxideLabs/gitoxide/commit/c16b5a1892704b7c72a253bdd74a6848dd61032a))142 - 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
2 2
3[package]3[package]
4name = "gix-revision"4name = "gix-revision"
5version = "0.49.0"5version = "0.49.1"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7license = "MIT OR Apache-2.0"7license = "MIT OR Apache-2.0"
8description = "A crate of the gitoxide project dealing with finding names for revisions and parsing specifications"8description = "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
2 2
3[package]3[package]
4name = "gix-status"4name = "gix-status"
5version = "0.34.0"5version = "0.34.1"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7license = "MIT OR Apache-2.0"7license = "MIT OR Apache-2.0"
8description = "A crate of the gitoxide project dealing with 'git status'-like functionality"8description = "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
35gix-worktree = { version = "^0.56.0", path = "../gix-worktree", default-features = false, features = ["attributes"] }35gix-worktree = { version = "^0.56.0", path = "../gix-worktree", default-features = false, features = ["attributes"] }
36gix-pathspec = { version = "^0.20.0", path = "../gix-pathspec" }36gix-pathspec = { version = "^0.20.0", path = "../gix-pathspec" }
37 37
38gix-dir = { version = "^0.29.0", path = "../gix-dir", optional = true }38gix-dir = { version = "^0.29.1", path = "../gix-dir", optional = true }
39gix-diff = { version = "^0.67.0", path = "../gix-diff", default-features = false, features = ["blob"], optional = true }39gix-diff = { version = "^0.67.1", path = "../gix-diff", default-features = false, features = ["blob"], optional = true }
40 40
41thiserror = "2.0.18"41thiserror = "2.0.18"
42filetime = "0.2.29"42filetime = "0.2.29"
gix-tix/Cargo.toml+2−2
@@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line
2 2
3[package]3[package]
4name = "gix-tix"4name = "gix-tix"
5version = "0.2.0"5version = "0.3.0"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7license = "MIT OR Apache-2.0"7license = "MIT OR Apache-2.0"
8description = "A tool like `tig`, but minimal, fast and efficient"8description = "A tool like `tig`, but minimal, fast and efficient"
@@ -27,7 +27,7 @@ anyhow = "1.0.98" · 18 unmodified lines
27clap = { version = "4.5.42", features = ["derive"] }27clap = { version = "4.5.42", features = ["derive"] }
28crossterm = { version = "0.29.0", features = ["osc52"] }28crossterm = { version = "0.29.0", features = ["osc52"] }
29directories = "6.0.0"29directories = "6.0.0"
30gix = { version = "^0.87.0", path = "../gix", default-features = false, features = ["blob-diff", "mailmap", "merge", "notes", "parallel", "revision", "command", "status"] }30gix = { version = "^0.87.1", path = "../gix", default-features = false, features = ["blob-diff", "mailmap", "merge", "notes", "parallel", "revision", "command", "status"] }
31notify = "8.2.0"31notify = "8.2.0"
32ratatui = { version = "0.30.2", default-features = false, features = ["crossterm", "unstable-rendered-line-info"] }32ratatui = { version = "0.30.2", default-features = false, features = ["crossterm", "unstable-rendered-line-info"] }
33terminal-colorsaurus = "1.0.3"33terminal-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
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 7
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
8## 0.58.1 (2026-08-03)76## 0.58.1 (2026-08-03)
9 77
10### Bug Fixes78### Bug Fixes
@@ -31,7 +99,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 · 20 unmodified lines
31 99
32<csr-read-only-do-not-edit/>100<csr-read-only-do-not-edit/>
33 101
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.
35 - 11 days passed between releases.103 - 11 days passed between releases.
36 - 2 commits were understood as [conventional](https://www.conventionalcommits.org).104 - 2 commits were understood as [conventional](https://www.conventionalcommits.org).
37 - 0 issues like '(#ID)' were seen in commit messages105 - 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
43<details><summary>view details</summary>111<details><summary>view details</summary>
44 112
45 * **Uncategorized**113 * **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))
46 - Preserve encoded HTTP paths across redirects. ([`60850df`](https://github.com/GitoxideLabs/gitoxide/commit/60850df267f902ef6b65e8211e6d40aeb45e1970))115 - Preserve encoded HTTP paths across redirects. ([`60850df`](https://github.com/GitoxideLabs/gitoxide/commit/60850df267f902ef6b65e8211e6d40aeb45e1970))
47 - Terminate URL authorities at query and fragment delimiters. ([`156b53d`](https://github.com/GitoxideLabs/gitoxide/commit/156b53de2b7d93087aceee623965110a19750d37))116 - Terminate URL authorities at query and fragment delimiters. ([`156b53d`](https://github.com/GitoxideLabs/gitoxide/commit/156b53de2b7d93087aceee623965110a19750d37))
48 - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b))117 - 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
2 2
3[package]3[package]
4name = "gix-transport"4name = "gix-transport"
5version = "0.59.0"5version = "0.59.1"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7license = "MIT OR Apache-2.0"7license = "MIT OR Apache-2.0"
8description = "A crate of the gitoxide project dedicated to implementing the git transport layer"8description = "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
96gix-features = { version = "^0.49.1", path = "../gix-features" }96gix-features = { version = "^0.49.1", path = "../gix-features" }
97gix-url = { version = "^0.38.0", path = "../gix-url" }97gix-url = { version = "^0.38.0", path = "../gix-url" }
98gix-sec = { version = "^0.14.2", path = "../gix-sec" }98gix-sec = { version = "^0.14.2", path = "../gix-sec" }
99gix-packetline = { version = "^0.22.1", path = "../gix-packetline" }99gix-packetline = { version = "^0.22.2", path = "../gix-packetline" }
100gix-credentials = { version = "^0.40.0", path = "../gix-credentials", optional = true }100gix-credentials = { version = "^0.40.0", path = "../gix-credentials", optional = true }
101gix-quote = { version = "^0.8.0", path = "../gix-quote" }101gix-quote = { version = "^0.8.0", path = "../gix-quote" }
102 102
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
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 7
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
8## 0.34.0 (2026-08-22)31## 0.34.0 (2026-08-22)
9 32
10### Commit Statistics33### Commit Statistics
11 34
12<csr-read-only-do-not-edit/>35<csr-read-only-do-not-edit/>
13 36
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.
15 - 30 days passed between releases.38 - 30 days passed between releases.
16 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).39 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17 - 0 issues like '(#ID)' were seen in commit messages40 - 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
23<details><summary>view details</summary>46<details><summary>view details</summary>
24 47
25 * **Uncategorized**48 * **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))
26 - 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))50 - 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))
27 - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))51 - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
28 - Merge pull request #2905 from GitoxideLabs/various-improvements ([`f3bbfad`](https://github.com/GitoxideLabs/gitoxide/commit/f3bbfadd4b4f1d72c85c62eb3d7ae337c922f945))52 - 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
2 2
3[package]3[package]
4name = "gix-worktree-state"4name = "gix-worktree-state"
5version = "0.34.0"5version = "0.34.1"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7license = "MIT OR Apache-2.0"7license = "MIT OR Apache-2.0"
8description = "A crate of the gitoxide project implementing setting the worktree to a particular state"8description = "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
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 7
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
8## 0.36.0 (2026-08-22)31## 0.36.0 (2026-08-22)
9 32
10### Commit Statistics33### Commit Statistics
11 34
12<csr-read-only-do-not-edit/>35<csr-read-only-do-not-edit/>
13 36
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.
15 - 30 days passed between releases.38 - 30 days passed between releases.
16 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).39 - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
17 - 0 issues like '(#ID)' were seen in commit messages40 - 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
23<details><summary>view details</summary>46<details><summary>view details</summary>
24 47
25 * **Uncategorized**48 * **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))
26 - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))50 - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb))
27 - Merge pull request #2901 from cruessler/switch-to-gix-odb-at-opts ([`2a4d996`](https://github.com/GitoxideLabs/gitoxide/commit/2a4d996ca53bd38a5e9889da0b180580315d905f))51 - Merge pull request #2901 from cruessler/switch-to-gix-odb-at-opts ([`2a4d996`](https://github.com/GitoxideLabs/gitoxide/commit/2a4d996ca53bd38a5e9889da0b180580315d905f))
28 - Introduce `Store::at()` where possible ([`17fea2a`](https://github.com/GitoxideLabs/gitoxide/commit/17fea2ab8a1c23f2e8bc50b78b90feb1e361f66a))52 - 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
2 2
3[package]3[package]
4name = "gix-worktree-stream"4name = "gix-worktree-stream"
5version = "0.36.0"5version = "0.36.1"
6repository = "https://github.com/GitoxideLabs/gitoxide"6repository = "https://github.com/GitoxideLabs/gitoxide"
7license = "MIT OR Apache-2.0"7license = "MIT OR Apache-2.0"
8description = "generate a byte-stream from a git-tree"8description = "generate a byte-stream from a git-tree"
gix/Cargo.toml+17−17
@@ -5,7 +5,7 @@ name = "gix" · 4 unmodified lines
5repository = "https://github.com/GitoxideLabs/gitoxide"5repository = "https://github.com/GitoxideLabs/gitoxide"
6description = "Interact with git repositories just like git would"6description = "Interact with git repositories just like git would"
7license = "MIT OR Apache-2.0"7license = "MIT OR Apache-2.0"
8version = "0.87.0"8version = "0.87.1"
9authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]9authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
10edition = "2024"10edition = "2024"
11include = ["/src/**/*", "/LICENSE-*"]11include = ["/src/**/*", "/LICENSE-*"]
@@ -338,9 +338,9 @@ gix-lock = { version = "^24.0.0", path = "../gix-lock" } · 326 unmodified lines
338gix-validate = { version = "^0.11.4", path = "../gix-validate" }338gix-validate = { version = "^0.11.4", path = "../gix-validate" }
339gix-sec = { version = "^0.14.2", path = "../gix-sec" }339gix-sec = { version = "^0.14.2", path = "../gix-sec" }
340gix-date = { version = "^0.16.0", path = "../gix-date" }340gix-date = { version = "^0.16.0", path = "../gix-date" }
341gix-refspec = { version = "^0.45.0", path = "../gix-refspec" }341gix-refspec = { version = "^0.45.1", path = "../gix-refspec" }
342gix-filter = { version = "^0.34.0", path = "../gix-filter", optional = true }342gix-filter = { version = "^0.34.0", path = "../gix-filter", optional = true }
343gix-dir = { version = "^0.29.0", path = "../gix-dir", optional = true }343gix-dir = { version = "^0.29.1", path = "../gix-dir", optional = true }
344 344
345gix-config = { version = "^0.60.0", path = "../gix-config" }345gix-config = { version = "^0.60.0", path = "../gix-config" }
346gix-odb = { version = "^0.84.0", path = "../gix-odb" }346gix-odb = { version = "^0.84.0", path = "../gix-odb" }
@@ -349,21 +349,21 @@ gix-hash = { version = "^0.26.2", path = "../gix-hash" } · 2 unmodified lines
349gix-shallow = { version = "^0.13.0", path = "../gix-shallow" }349gix-shallow = { version = "^0.13.0", path = "../gix-shallow" }
350gix-object = { version = "^0.64.1", path = "../gix-object" }350gix-object = { version = "^0.64.1", path = "../gix-object" }
351gix-actor = { version = "^0.42.0", path = "../gix-actor" }351gix-actor = { version = "^0.42.0", path = "../gix-actor" }
352gix-pack = { version = "^0.74.1", path = "../gix-pack", default-features = false, features = [352gix-pack = { version = "^0.74.2", path = "../gix-pack", default-features = false, features = [
353 "object-cache-dynamic",353 "object-cache-dynamic",
354] }354] }
355gix-revision = { version = "^0.49.0", path = "../gix-revision", default-features = false }355gix-revision = { version = "^0.49.1", path = "../gix-revision", default-features = false }
356gix-revwalk = { version = "^0.35.0", path = "../gix-revwalk" }356gix-revwalk = { version = "^0.35.0", path = "../gix-revwalk" }
357gix-negotiate = { version = "^0.35.0", path = "../gix-negotiate", optional = true }357gix-negotiate = { version = "^0.35.1", path = "../gix-negotiate", optional = true }
358 358
359gix-path = { version = "^0.12.5", path = "../gix-path" }359gix-path = { version = "^0.12.5", path = "../gix-path" }
360gix-quote = { version = "^0.8.0", path = "../gix-quote" }360gix-quote = { version = "^0.8.0", path = "../gix-quote" }
361gix-url = { version = "^0.38.0", path = "../gix-url" }361gix-url = { version = "^0.38.0", path = "../gix-url" }
362gix-traverse = { version = "^0.61.0", path = "../gix-traverse" }362gix-traverse = { version = "^0.61.0", path = "../gix-traverse" }
363gix-diff = { version = "^0.67.0", path = "../gix-diff", default-features = false }363gix-diff = { version = "^0.67.1", path = "../gix-diff", default-features = false }
364gix-merge = { version = "^0.20.0", path = "../gix-merge", default-features = false, optional = true }364gix-merge = { version = "^0.20.1", path = "../gix-merge", default-features = false, optional = true }
365gix-mailmap = { version = "^0.34.0", path = "../gix-mailmap", optional = true }365gix-mailmap = { version = "^0.34.1", path = "../gix-mailmap", optional = true }
366gix-note = { version = "^0.1.0", path = "../gix-note", optional = true }366gix-note = { version = "^0.1.1", path = "../gix-note", optional = true }
367gix-features = { version = "^0.49.1", path = "../gix-features", features = [367gix-features = { version = "^0.49.1", path = "../gix-features", features = [
368 "progress",368 "progress",
369 "once_cell",369 "once_cell",
@@ -377,23 +377,23 @@ gix-index = { version = "^0.55.0", path = "../gix-index", optional = true } · 7 unmodified lines
377gix-attributes = { version = "^0.35.0", path = "../gix-attributes", optional = true }377gix-attributes = { version = "^0.35.0", path = "../gix-attributes", optional = true }
378gix-ignore = { version = "^0.22.1", path = "../gix-ignore", optional = true }378gix-ignore = { version = "^0.22.1", path = "../gix-ignore", optional = true }
379gix-worktree = { version = "^0.56.0", path = "../gix-worktree", optional = true, default-features = false }379gix-worktree = { version = "^0.56.0", path = "../gix-worktree", optional = true, default-features = false }
380gix-worktree-state = { version = "^0.34.0", path = "../gix-worktree-state", optional = true }380gix-worktree-state = { version = "^0.34.1", path = "../gix-worktree-state", optional = true }
381gix-hashtable = { version = "^0.16.0", path = "../gix-hashtable" }381gix-hashtable = { version = "^0.16.0", path = "../gix-hashtable" }
382gix-commitgraph = { version = "^0.39.0", path = "../gix-commitgraph" }382gix-commitgraph = { version = "^0.39.0", path = "../gix-commitgraph" }
383gix-pathspec = { version = "^0.20.0", path = "../gix-pathspec", optional = true }383gix-pathspec = { version = "^0.20.0", path = "../gix-pathspec", optional = true }
384gix-submodule = { version = "^0.34.0", path = "../gix-submodule", optional = true }384gix-submodule = { version = "^0.34.0", path = "../gix-submodule", optional = true }
385gix-status = { version = "^0.34.0", path = "../gix-status", optional = true, features = [385gix-status = { version = "^0.34.1", path = "../gix-status", optional = true, features = [
386 "worktree-rewrites",386 "worktree-rewrites",
387] }387] }
388gix-command = { version = "^0.10.0", path = "../gix-command", optional = true }388gix-command = { version = "^0.10.0", path = "../gix-command", optional = true }
389 389
390gix-worktree-stream = { version = "^0.36.0", path = "../gix-worktree-stream", optional = true }390gix-worktree-stream = { version = "^0.36.1", path = "../gix-worktree-stream", optional = true }
391gix-archive = { version = "^0.36.0", path = "../gix-archive", default-features = false, optional = true }391gix-archive = { version = "^0.36.1", path = "../gix-archive", default-features = false, optional = true }
392gix-blame = { version = "^0.17.0", path = "../gix-blame", optional = true }392gix-blame = { version = "^0.17.1", path = "../gix-blame", optional = true }
393 393
394# For communication with remotes394# For communication with remotes
395gix-protocol = { version = "^0.65.0", path = "../gix-protocol" }395gix-protocol = { version = "^0.65.1", path = "../gix-protocol" }
396gix-transport = { version = "^0.59.0", path = "../gix-transport", optional = true }396gix-transport = { version = "^0.59.1", path = "../gix-transport", optional = true }
397 397
398# Just to get the progress-tree feature398# Just to get the progress-tree feature
399prodash = { version = "31.0.0", optional = true, features = ["progress-tree"] }399prodash = { 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
17[dependencies]17[dependencies]
18anyhow = "1.0.102"18anyhow = "1.0.102"
19clap = { version = "4.5.60", features = ["derive"] }19clap = { version = "4.5.60", features = ["derive"] }
20gix = { version = "^0.87.0", path = "../../gix", default-features = false, features = ["attributes", "blame", "blob-diff", "parallel", "revision", "sha1"] }20gix = { version = "^0.87.1", path = "../../gix", default-features = false, features = ["attributes", "blame", "blob-diff", "parallel", "revision", "sha1"] }
21regex = { version = "1.12.3", default-features = false, features = ["std"] }21regex = { 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