Unified · Split
| @@ -1508,7 +1508,7 @@ dependencies = [ · 1507 unmodified lines | ||
| 1508 | 1508 | |
| 1509 | 1509 | [[package]] |
| 1510 | 1510 | name = "gitoxide" |
| 1511 | −version = "0.57.0" | |
| 1511 | +version = "0.58.0" | |
| 1512 | 1512 | dependencies = [ |
| 1513 | 1513 | "anyhow", |
| 1514 | 1514 | "clap", |
| @@ -1532,7 +1532,7 @@ dependencies = [ · 17 unmodified lines | ||
| 1532 | 1532 | |
| 1533 | 1533 | [[package]] |
| 1534 | 1534 | name = "gitoxide-core" |
| 1535 | −version = "0.61.0" | |
| 1535 | +version = "0.61.1" | |
| 1536 | 1536 | dependencies = [ |
| 1537 | 1537 | "anyhow", |
| 1538 | 1538 | "async-io", |
| @@ -1572,7 +1572,7 @@ dependencies = [ · 33 unmodified lines | ||
| 1572 | 1572 | |
| 1573 | 1573 | [[package]] |
| 1574 | 1574 | name = "gix" |
| 1575 | −version = "0.87.0" | |
| 1575 | +version = "0.87.1" | |
| 1576 | 1576 | dependencies = [ |
| 1577 | 1577 | "anyhow", |
| 1578 | 1578 | "async-std", |
| @@ -1663,7 +1663,7 @@ dependencies = [ · 84 unmodified lines | ||
| 1663 | 1663 | |
| 1664 | 1664 | [[package]] |
| 1665 | 1665 | name = "gix-archive" |
| 1666 | −version = "0.36.0" | |
| 1666 | +version = "0.36.1" | |
| 1667 | 1667 | dependencies = [ |
| 1668 | 1668 | "bstr", |
| 1669 | 1669 | "document-features", |
| @@ -1713,7 +1713,7 @@ dependencies = [ · 43 unmodified lines | ||
| 1713 | 1713 | |
| 1714 | 1714 | [[package]] |
| 1715 | 1715 | name = "gix-blame" |
| 1716 | −version = "0.17.0" | |
| 1716 | +version = "0.17.1" | |
| 1717 | 1717 | dependencies = [ |
| 1718 | 1718 | "gix-commitgraph", |
| 1719 | 1719 | "gix-date", |
| @@ -1847,7 +1847,7 @@ dependencies = [ · 127 unmodified lines | ||
| 1847 | 1847 | |
| 1848 | 1848 | [[package]] |
| 1849 | 1849 | name = "gix-diff" |
| 1850 | −version = "0.67.0" | |
| 1850 | +version = "0.67.1" | |
| 1851 | 1851 | dependencies = [ |
| 1852 | 1852 | "bstr", |
| 1853 | 1853 | "criterion", |
| @@ -1878,7 +1878,7 @@ dependencies = [ · 24 unmodified lines | ||
| 1878 | 1878 | |
| 1879 | 1879 | [[package]] |
| 1880 | 1880 | name = "gix-dir" |
| 1881 | −version = "0.29.0" | |
| 1881 | +version = "0.29.1" | |
| 1882 | 1882 | dependencies = [ |
| 1883 | 1883 | "bstr", |
| 1884 | 1884 | "gix-dir", |
| @@ -1988,7 +1988,7 @@ dependencies = [ · 103 unmodified lines | ||
| 1988 | 1988 | |
| 1989 | 1989 | [[package]] |
| 1990 | 1990 | name = "gix-fsck" |
| 1991 | −version = "0.25.0" | |
| 1991 | +version = "0.25.1" | |
| 1992 | 1992 | dependencies = [ |
| 1993 | 1993 | "gix-hash", |
| 1994 | 1994 | "gix-hashtable", |
| @@ -2114,7 +2114,7 @@ dependencies = [ · 119 unmodified lines | ||
| 2114 | 2114 | |
| 2115 | 2115 | [[package]] |
| 2116 | 2116 | name = "gix-macros" |
| 2117 | −version = "0.1.5" | |
| 2117 | +version = "0.1.6" | |
| 2118 | 2118 | dependencies = [ |
| 2119 | 2119 | "proc-macro2", |
| 2120 | 2120 | "quote", |
| @@ -2124,7 +2124,7 @@ dependencies = [ · 3 unmodified lines | ||
| 2124 | 2124 | |
| 2125 | 2125 | [[package]] |
| 2126 | 2126 | name = "gix-mailmap" |
| 2127 | −version = "0.34.0" | |
| 2127 | +version = "0.34.1" | |
| 2128 | 2128 | dependencies = [ |
| 2129 | 2129 | "bstr", |
| 2130 | 2130 | "document-features", |
| @@ -2137,7 +2137,7 @@ dependencies = [ · 6 unmodified lines | ||
| 2137 | 2137 | |
| 2138 | 2138 | [[package]] |
| 2139 | 2139 | name = "gix-merge" |
| 2140 | −version = "0.20.0" | |
| 2140 | +version = "0.20.1" | |
| 2141 | 2141 | dependencies = [ |
| 2142 | 2142 | "arbitrary", |
| 2143 | 2143 | "bstr", |
| @@ -2171,7 +2171,7 @@ dependencies = [ · 27 unmodified lines | ||
| 2171 | 2171 | |
| 2172 | 2172 | [[package]] |
| 2173 | 2173 | name = "gix-negotiate" |
| 2174 | −version = "0.35.0" | |
| 2174 | +version = "0.35.1" | |
| 2175 | 2175 | dependencies = [ |
| 2176 | 2176 | "bitflags 2.13.0", |
| 2177 | 2177 | "gix-commitgraph", |
| @@ -2186,7 +2186,7 @@ dependencies = [ · 8 unmodified lines | ||
| 2186 | 2186 | |
| 2187 | 2187 | [[package]] |
| 2188 | 2188 | name = "gix-note" |
| 2189 | −version = "0.1.0" | |
| 2189 | +version = "0.1.1" | |
| 2190 | 2190 | dependencies = [ |
| 2191 | 2191 | "gix-error", |
| 2192 | 2192 | "gix-hash", |
| @@ -2258,7 +2258,7 @@ dependencies = [ · 65 unmodified lines | ||
| 2258 | 2258 | |
| 2259 | 2259 | [[package]] |
| 2260 | 2260 | name = "gix-pack" |
| 2261 | −version = "0.74.1" | |
| 2261 | +version = "0.74.2" | |
| 2262 | 2262 | dependencies = [ |
| 2263 | 2263 | "bstr", |
| 2264 | 2264 | "clru", |
| @@ -2291,7 +2291,7 @@ dependencies = [ · 26 unmodified lines | ||
| 2291 | 2291 | |
| 2292 | 2292 | [[package]] |
| 2293 | 2293 | name = "gix-packetline" |
| 2294 | −version = "0.22.1" | |
| 2294 | +version = "0.22.2" | |
| 2295 | 2295 | dependencies = [ |
| 2296 | 2296 | "async-std", |
| 2297 | 2297 | "bstr", |
| @@ -2354,7 +2354,7 @@ dependencies = [ · 56 unmodified lines | ||
| 2354 | 2354 | |
| 2355 | 2355 | [[package]] |
| 2356 | 2356 | name = "gix-protocol" |
| 2357 | −version = "0.65.0" | |
| 2357 | +version = "0.65.1" | |
| 2358 | 2358 | dependencies = [ |
| 2359 | 2359 | "async-std", |
| 2360 | 2360 | "async-trait", |
| @@ -2425,7 +2425,7 @@ dependencies = [ · 64 unmodified lines | ||
| 2425 | 2425 | |
| 2426 | 2426 | [[package]] |
| 2427 | 2427 | name = "gix-refspec" |
| 2428 | −version = "0.45.0" | |
| 2428 | +version = "0.45.1" | |
| 2429 | 2429 | dependencies = [ |
| 2430 | 2430 | "bstr", |
| 2431 | 2431 | "gix-hash", |
| @@ -2438,7 +2438,7 @@ dependencies = [ · 6 unmodified lines | ||
| 2438 | 2438 | |
| 2439 | 2439 | [[package]] |
| 2440 | 2440 | name = "gix-revision" |
| 2441 | −version = "0.49.0" | |
| 2441 | +version = "0.49.1" | |
| 2442 | 2442 | dependencies = [ |
| 2443 | 2443 | "bitflags 2.13.0", |
| 2444 | 2444 | "bstr", |
| @@ -2506,7 +2506,7 @@ dependencies = [ · 61 unmodified lines | ||
| 2506 | 2506 | |
| 2507 | 2507 | [[package]] |
| 2508 | 2508 | name = "gix-status" |
| 2509 | −version = "0.34.0" | |
| 2509 | +version = "0.34.1" | |
| 2510 | 2510 | dependencies = [ |
| 2511 | 2511 | "bstr", |
| 2512 | 2512 | "document-features", |
| @@ -2596,7 +2596,7 @@ dependencies = [ · 83 unmodified lines | ||
| 2596 | 2596 | |
| 2597 | 2597 | [[package]] |
| 2598 | 2598 | name = "gix-tix" |
| 2599 | −version = "0.2.0" | |
| 2599 | +version = "0.3.0" | |
| 2600 | 2600 | dependencies = [ |
| 2601 | 2601 | "anyhow", |
| 2602 | 2602 | "clap", |
| @@ -2624,7 +2624,7 @@ dependencies = [ · 21 unmodified lines | ||
| 2624 | 2624 | |
| 2625 | 2625 | [[package]] |
| 2626 | 2626 | name = "gix-transport" |
| 2627 | −version = "0.59.0" | |
| 2627 | +version = "0.59.1" | |
| 2628 | 2628 | dependencies = [ |
| 2629 | 2629 | "async-std", |
| 2630 | 2630 | "async-trait", |
| @@ -2737,7 +2737,7 @@ dependencies = [ · 106 unmodified lines | ||
| 2737 | 2737 | |
| 2738 | 2738 | [[package]] |
| 2739 | 2739 | name = "gix-worktree-state" |
| 2740 | −version = "0.34.0" | |
| 2740 | +version = "0.34.1" | |
| 2741 | 2741 | dependencies = [ |
| 2742 | 2742 | "bstr", |
| 2743 | 2743 | "gix-discover", |
| @@ -2759,7 +2759,7 @@ dependencies = [ · 15 unmodified lines | ||
| 2759 | 2759 | |
| 2760 | 2760 | [[package]] |
| 2761 | 2761 | name = "gix-worktree-stream" |
| 2762 | −version = "0.36.0" | |
| 2762 | +version = "0.36.1" | |
| 2763 | 2763 | dependencies = [ |
| 2764 | 2764 | "gix-attributes", |
| 2765 | 2765 | "gix-error", |
| @@ -7,7 +7,7 @@ repository = "https://github.com/GitoxideLabs/gitoxide" · 6 unmodified lines | ||
| 7 | 7 | authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"] |
| 8 | 8 | edition = "2024" |
| 9 | 9 | license = "MIT OR Apache-2.0" |
| 10 | −version = "0.57.0" | |
| 10 | +version = "0.58.0" | |
| 11 | 11 | # Rust 1.85 is required so hash-related dependencies can use Rust 2024 crates, |
| 12 | 12 | # notably `sha2` 0.11 and `hashbrown` 0.17. |
| 13 | 13 | rust-version = "1.85" |
| @@ -171,10 +171,10 @@ gitoxide-core-async-client = ["gitoxide-core/async-client", "futures-lite"] · 157 unmodified lines | ||
| 171 | 171 | [dependencies] |
| 172 | 172 | anyhow = "1.0.98" |
| 173 | 173 | |
| 174 | −gitoxide-core = { version = "^0.61.0", path = "gitoxide-core" } | |
| 174 | +gitoxide-core = { version = "^0.61.1", path = "gitoxide-core" } | |
| 175 | 175 | gix-features = { version = "^0.49.1", path = "gix-features" } |
| 176 | −gix = { version = "^0.87.0", path = "gix", default-features = false } | |
| 177 | −gix-tix = { version = "^0.2.0", path = "gix-tix", default-features = false, optional = true } | |
| 176 | +gix = { version = "^0.87.1", path = "gix", default-features = false } | |
| 177 | +gix-tix = { version = "^0.3.0", path = "gix-tix", default-features = false, optional = true } | |
| 178 | 178 | |
| 179 | 179 | clap = { version = "4.5.42", features = ["derive", "cargo"] } |
| 180 | 180 | clap_complete = "4.5.55" |
| @@ -5,7 +5,140 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines | ||
| 5 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | 6 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | 7 | |
| 8 | −## Unreleased | |
| 8 | +## 0.61.1 (2026-08-24) | |
| 9 | + | |
| 10 | +### Commit Statistics | |
| 11 | + | |
| 12 | +<csr-read-only-do-not-edit/> | |
| 13 | + | |
| 14 | + - 3 commits contributed to the release over the course of 1 calendar day. | |
| 15 | + - 2 days passed between releases. | |
| 16 | + - 0 commits were understood as [conventional](https://www.conventionalcommits.org). | |
| 17 | + - 0 issues like '(#ID)' were seen in commit messages | |
| 18 | + | |
| 19 | +### Commit Details | |
| 20 | + | |
| 21 | +<csr-read-only-do-not-edit/> | |
| 22 | + | |
| 23 | +<details><summary>view details</summary> | |
| 24 | + | |
| 25 | + * **Uncategorized** | |
| 26 | + - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03)) | |
| 27 | + - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558)) | |
| 28 | + - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb)) | |
| 29 | +</details> | |
| 30 | + | |
| 31 | +## 0.61.0 (2026-08-22) | |
| 32 | + | |
| 33 | +### New Features | |
| 34 | + | |
| 35 | + - <csr-id-d934f5b150146860b5a844218c3733869bfeb44f/> expose git notes in `gix::Repository` | |
| 36 | + <!-- agent --> | |
| 37 | + Add the notes feature and `Repository::notes` as the porcelain layer over `gix-note` | |
| 38 | + for repeated queries and mutations. | |
| 39 | + | |
| 40 | + Select the default notes ref from `core.notesRef`, including the `GIT_NOTES_REF` | |
| 41 | + environment override represented in `config::tree`, and fall back to | |
| 42 | + `refs/notes/commits`. Discover additional display refs from `notes.displayRef` or | |
| 43 | + `GIT_NOTES_DISPLAY_REF`, expand glob patterns, preserve display order, and avoid | |
| 44 | + duplicates. | |
| 45 | + | |
| 46 | + For mutations, accept conventional short notes-ref names, write note blobs and | |
| 47 | + notes commits, and update refs with compare-and-swap expectations so concurrent | |
| 48 | + changes are not silently overwritten. | |
| 49 | + - <csr-id-da39b92a4722d4e8eae47a78301cf005d2079835/> use Git signature configuration in `gix commit verify` | |
| 50 | + <!-- agent --> | |
| 51 | + Replace the command-specific GPG invocation with gix::Commit::verify_signature | |
| 52 | + so the CLI and library share one implementation and one interpretation of | |
| 53 | + repository configuration. | |
| 54 | + | |
| 55 | + This extends the command from hard-coded OpenPGP verification to the OpenPGP, | |
| 56 | + X.509, and SSH formats supported by Git, including configured programs and trust | |
| 57 | + policy. Preserve verifier diagnostics on stderr and fail when a signature is | |
| 58 | + invalid or insufficiently trusted. | |
| 59 | + | |
| 60 | + Enable the gix command feature in gitoxide-core to make the shared verification | |
| 61 | + API available. | |
| 62 | + - <csr-id-b1174b69b60b478be24f0b81787e95ac08564e7e/> support cloning a single revision | |
| 63 | + <!-- agent --> | |
| 64 | + A full object ID passed through with_ref_name() produced an object-ID refspec | |
| 65 | + mapping and panicked while clone assumed every mapping had a name. Branch and | |
| 66 | + tag checkout also retained ordinary clone tracking semantics instead of offering | |
| 67 | + a single-revision mode. | |
| 68 | + | |
| 69 | + Add PrepareFetch::with_revision() and gix clone --revision for full refs, HEAD, | |
| 70 | + and full object IDs. Revision clones use a one source-only implicit refspec, | |
| 71 | + detach HEAD to the fetched commit, create no ordinary refs, persist no fetch | |
| 72 | + refspec, and disable tag following. Existing with_ref_name() and --ref behavior | |
| 73 | + stays unchanged. | |
| 74 | + | |
| 75 | + This follows Git commit 337855629f59 (builtin/clone: teach git-clone(1) the | |
| 76 | + --revision= option) and its t/t5621-clone-revision.sh behavior. | |
| 77 | + | |
| 78 | +### Bug Fixes | |
| 79 | + | |
| 80 | + - <csr-id-45e6d93fe48ed625b92363e94ed2053f2bc88e27/> peel revspecs to a commit in `gix merge-base` | |
| 81 | + The revspecs were resolved with `rev_parse_single()` and handed to the | |
| 82 | + commit-only merge-base traversal unchanged, so a revspec naming an annotated | |
| 83 | + tag arrived as the id of the tag object. No commit is found for such an id and | |
| 84 | + no error is raised. In a clone of this repository, | |
| 85 | + `gix merge-base HEAD cargo-smart-release-v0.10.0 cargo-smart-release-v0.1.0` | |
| 86 | + printed 0fa37f5d8c96aee551bb6442756059dc203a6cbc, dropping the tag and | |
| 87 | + computing the base of the two revspecs that were left, while `git merge-base` | |
| 88 | + with the same arguments prints ceb6dff13362a2b4318a551893217c1d11643b9f - the | |
| 89 | + commit the annotated tag points at. Git dereferences tags before computing | |
| 90 | + anything. | |
| 91 | + | |
| 92 | + Each revspec is now peeled to a commit before the traversal. Lightweight tags, | |
| 93 | + branches and raw commit ids resolve as before, and a revspec that cannot be | |
| 94 | + peeled to a commit is rejected with the peel error. | |
| 95 | + | |
| 96 | +### Commit Statistics | |
| 97 | + | |
| 98 | +<csr-read-only-do-not-edit/> | |
| 99 | + | |
| 100 | + - 26 commits contributed to the release over the course of 30 calendar days. | |
| 101 | + - 30 days passed between releases. | |
| 102 | + - 4 commits were understood as [conventional](https://www.conventionalcommits.org). | |
| 103 | + - 1 unique issue was worked on: [#1930](https://github.com/GitoxideLabs/gitoxide/issues/1930) | |
| 104 | + | |
| 105 | +### Commit Details | |
| 106 | + | |
| 107 | +<csr-read-only-do-not-edit/> | |
| 108 | + | |
| 109 | +<details><summary>view details</summary> | |
| 110 | + | |
| 111 | + * **[#1930](https://github.com/GitoxideLabs/gitoxide/issues/1930)** | |
| 112 | + - Support cloning a single revision ([`b1174b6`](https://github.com/GitoxideLabs/gitoxide/commit/b1174b69b60b478be24f0b81787e95ac08564e7e)) | |
| 113 | + * **Uncategorized** | |
| 114 | + - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb)) | |
| 115 | + - Merge pull request #2930 from GitoxideLabs/gix-notes ([`7424676`](https://github.com/GitoxideLabs/gitoxide/commit/7424676f86cd3f5a67c53f8db6baf0803e937d4a)) | |
| 116 | + - Expose git notes in `gix::Repository` ([`d934f5b`](https://github.com/GitoxideLabs/gitoxide/commit/d934f5b150146860b5a844218c3733869bfeb44f)) | |
| 117 | + - Merge pull request #2926 from cruessler/remove-object-hash-from-options ([`b2d919a`](https://github.com/GitoxideLabs/gitoxide/commit/b2d919a11655fdab5c47001ec1b21d7bbebe24c0)) | |
| 118 | + - Merge pull request #2905 from GitoxideLabs/various-improvements ([`f3bbfad`](https://github.com/GitoxideLabs/gitoxide/commit/f3bbfadd4b4f1d72c85c62eb3d7ae337c922f945)) | |
| 119 | + - Adapt to changes in `gix-object` (object signing) ([`723d3de`](https://github.com/GitoxideLabs/gitoxide/commit/723d3dedc7a327d19103b53bf80d661f23ee8aca)) | |
| 120 | + - Use Git signature configuration in `gix commit verify` ([`da39b92`](https://github.com/GitoxideLabs/gitoxide/commit/da39b92a4722d4e8eae47a78301cf005d2079835)) | |
| 121 | + - Merge pull request #2919 from cruessler/require-object-hash-in-file-store-at ([`e5452ba`](https://github.com/GitoxideLabs/gitoxide/commit/e5452baec8ad94736a9f489ec5135c46091eab97)) | |
| 122 | + - Adapt to changes in `gix-ref` ([`5810922`](https://github.com/GitoxideLabs/gitoxide/commit/5810922cdb1c2028236b923f6003db7445da35ea)) | |
| 123 | + - Merge pull request #2916 from cruessler/require-object-hash-in-store-at ([`dd8c759`](https://github.com/GitoxideLabs/gitoxide/commit/dd8c759e0343c2b5c9776c948d109e9d1ea5943b)) | |
| 124 | + - Adapt to changes in `gix-odb` ([`a0b93a3`](https://github.com/GitoxideLabs/gitoxide/commit/a0b93a3877678720f4268adc37317c0f99a8be6d)) | |
| 125 | + - Merge pull request #2896 from shuvamk/fix/merge-base-peel-tag ([`e1af444`](https://github.com/GitoxideLabs/gitoxide/commit/e1af44408cf26cb6448a59b2b32b92b265ba2e8a)) | |
| 126 | + - Peel revspecs to a commit in `gix merge-base` ([`45e6d93`](https://github.com/GitoxideLabs/gitoxide/commit/45e6d93fe48ed625b92363e94ed2053f2bc88e27)) | |
| 127 | + - Merge pull request #2892 from ameyypawar/rev-conformity ([`453c17c`](https://github.com/GitoxideLabs/gitoxide/commit/453c17c343c83b569ad817e6459fadf406926a42)) | |
| 128 | + - Adapt to changes in `gix-revision`. ([`21c5614`](https://github.com/GitoxideLabs/gitoxide/commit/21c5614e1eb3cfa21d208083544913305b3986f1)) | |
| 129 | + - Merge pull request #2719 from cruessler/blame-untracked-changes ([`95e0213`](https://github.com/GitoxideLabs/gitoxide/commit/95e0213259162d357e68fe459962cbcdce38590f)) | |
| 130 | + - Review ([`2ea191f`](https://github.com/GitoxideLabs/gitoxide/commit/2ea191fffb63a2c21f5ed8c9f9f77cc91a763bcc)) | |
| 131 | + - Align line numbers in output and start `gix blame` from worktree contents ([`86e90d8`](https://github.com/GitoxideLabs/gitoxide/commit/86e90d8626c01613220ae88100eb3815b31f30ef)) | |
| 132 | + - Adapt to changes in `gix-blame` ([`93d4019`](https://github.com/GitoxideLabs/gitoxide/commit/93d4019fdd97200bebcd7b2197da7db74e678877)) | |
| 133 | + - Merge pull request #2824 from GitoxideLabs/fetch-revision ([`7a34c17`](https://github.com/GitoxideLabs/gitoxide/commit/7a34c175866222ba6ebeb108d2594369a97d5526)) | |
| 134 | + - Merge pull request #2879 from GitoxideLabs/remove-jwalk ([`b6492d3`](https://github.com/GitoxideLabs/gitoxide/commit/b6492d3a4b10d1c4b58988fac62171b65731b42d)) | |
| 135 | + - Replace jwalk with dua-core ([`c49dc45`](https://github.com/GitoxideLabs/gitoxide/commit/c49dc457b879eb9f9d6c844878d82e11c185babd)) | |
| 136 | + - Merge pull request #2867 from GitoxideLabs/fix-url-authority-parsing ([`cc3ee80`](https://github.com/GitoxideLabs/gitoxide/commit/cc3ee8060ad7a32ee8d2eb9139854be7f7561b70)) | |
| 137 | + - Release gix-path v0.12.4, gix-command v0.9.2, gix-config-value v0.19.1, gix-url v0.37.1, gix-credentials v0.39.1, gix-transport v0.58.1 ([`ab4fcb0`](https://github.com/GitoxideLabs/gitoxide/commit/ab4fcb0364ec4d01115595198f383b1ad9c29808)) | |
| 138 | + - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b)) | |
| 139 | +</details> | |
| 140 | + | |
| 141 | +## 0.60.0 (2026-07-23) | |
| 9 | 142 | |
| 10 | 143 | ### 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 | 234 | <csr-read-only-do-not-edit/> |
| 102 | 235 | |
| 103 | − - 46 commits contributed to the release. | |
| 236 | + - 48 commits contributed to the release. | |
| 104 | 237 | - 31 days passed between releases. |
| 105 | 238 | - 10 commits were understood as [conventional](https://www.conventionalcommits.org). |
| 106 | 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 | 257 | * **[#2696](https://github.com/GitoxideLabs/gitoxide/issues/2696)** |
| 125 | 258 | - Preserve multiple remote URLs ([`5f244b3`](https://github.com/GitoxideLabs/gitoxide/commit/5f244b32c44795062b0aa9e352404cbd1412a844)) |
| 126 | 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 | 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 | 263 | - Merge pull request #2737 from GitoxideLabs/encoding-fallback-pony ([`2315ede`](https://github.com/GitoxideLabs/gitoxide/commit/2315ede714da6a43c885ed534f37901b2e1db687)) |
| 129 | 264 | - Adapt to changes in `gix-filter` ([`552402f`](https://github.com/GitoxideLabs/gitoxide/commit/552402f6147b8ed4f412b9d24bf8408320b4a5d8)) |
| @@ -4,7 +4,7 @@ lints.workspace = true · 3 unmodified lines | ||
| 4 | 4 | name = "gitoxide-core" |
| 5 | 5 | description = "The library implementing all capabilities of the gitoxide CLI" |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | −version = "0.61.0" | |
| 7 | +version = "0.61.1" | |
| 8 | 8 | authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"] |
| 9 | 9 | license = "MIT OR Apache-2.0" |
| 10 | 10 | edition = "2024" |
| @@ -49,12 +49,12 @@ serde = ["gix/serde", "dep:serde_json", "dep:serde", "bytesize/serde"] · 38 unmodified lines | ||
| 49 | 49 | |
| 50 | 50 | [dependencies] |
| 51 | 51 | # deselect everything else (like "performance") as this should be controllable by the parent application. |
| 52 | −gix = { version = "^0.87.0", path = "../gix", default-features = false, features = ["merge", "blob-diff", "blame", "revision", "mailmap", "excludes", "attributes", "worktree-mutation", "credentials", "interrupt", "status", "dirwalk", "command"] } | |
| 53 | −gix-pack-for-configuration-only = { package = "gix-pack", version = "^0.74.1", path = "../gix-pack", default-features = false, features = ["pack-cache-lru-dynamic", "pack-cache-lru-static", "generate", "streaming-input"] } | |
| 54 | −gix-transport-configuration-only = { package = "gix-transport", version = "^0.59.0", path = "../gix-transport", default-features = false } | |
| 55 | −gix-archive-for-configuration-only = { package = "gix-archive", version = "^0.36.0", path = "../gix-archive", optional = true, features = ["tar", "tar_gz"] } | |
| 56 | −gix-status = { version = "^0.34.0", path = "../gix-status" } | |
| 57 | −gix-fsck = { version = "^0.25.0", path = "../gix-fsck" } | |
| 52 | +gix = { version = "^0.87.1", path = "../gix", default-features = false, features = ["merge", "blob-diff", "blame", "revision", "mailmap", "excludes", "attributes", "worktree-mutation", "credentials", "interrupt", "status", "dirwalk", "command"] } | |
| 53 | +gix-pack-for-configuration-only = { package = "gix-pack", version = "^0.74.2", path = "../gix-pack", default-features = false, features = ["pack-cache-lru-dynamic", "pack-cache-lru-static", "generate", "streaming-input"] } | |
| 54 | +gix-transport-configuration-only = { package = "gix-transport", version = "^0.59.1", path = "../gix-transport", default-features = false } | |
| 55 | +gix-archive-for-configuration-only = { package = "gix-archive", version = "^0.36.1", path = "../gix-archive", optional = true, features = ["tar", "tar_gz"] } | |
| 56 | +gix-status = { version = "^0.34.1", path = "../gix-status" } | |
| 57 | +gix-fsck = { version = "^0.25.1", path = "../gix-fsck" } | |
| 58 | 58 | gix-error-for-configuration-only = { package = "gix-error", version = "^0.3.1", path = "../gix-error", features = ["anyhow"] } |
| 59 | 59 | serde = { version = "1.0.114", optional = true, default-features = false, features = ["derive"] } |
| 60 | 60 | anyhow = "1.0.102" |
| @@ -5,13 +5,36 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines | ||
| 5 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | 6 | and 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 | 31 | ## 0.36.0 (2026-08-22) |
| 9 | 32 | |
| 10 | 33 | ### Commit Statistics |
| 11 | 34 | |
| 12 | 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 | 38 | - 30 days passed between releases. |
| 16 | 39 | - 0 commits were understood as [conventional](https://www.conventionalcommits.org). |
| 17 | 40 | - 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 | 46 | <details><summary>view details</summary> |
| 24 | 47 | |
| 25 | 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 | 50 | - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb)) |
| 27 | 51 | - Merge pull request #2930 from GitoxideLabs/gix-notes ([`7424676`](https://github.com/GitoxideLabs/gitoxide/commit/7424676f86cd3f5a67c53f8db6baf0803e937d4a)) |
| 28 | 52 | - Use automatic Box conversion in tests ([`ad4a9d1`](https://github.com/GitoxideLabs/gitoxide/commit/ad4a9d1c06aeb6a5534a03639230bd36cc690f3d)) |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-archive" |
| 5 | −version = "0.36.0" | |
| 5 | +version = "0.36.1" | |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | 7 | license = "MIT OR Apache-2.0" |
| 8 | 8 | description = "archive generation from of a worktree stream" |
| @@ -31,7 +31,7 @@ zip = ["dep:rawzip", "dep:flate2"] · 22 unmodified lines | ||
| 31 | 31 | |
| 32 | 32 | |
| 33 | 33 | [dependencies] |
| 34 | −gix-worktree-stream = { version = "^0.36.0", path = "../gix-worktree-stream" } | |
| 34 | +gix-worktree-stream = { version = "^0.36.1", path = "../gix-worktree-stream" } | |
| 35 | 35 | gix-object = { version = "^0.64.1", path = "../gix-object" } |
| 36 | 36 | gix-path = { version = "^0.12.5", path = "../gix-path", optional = true } |
| 37 | 37 | gix-date = { version = "^0.16.0", path = "../gix-date" } |
| @@ -5,13 +5,72 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines | ||
| 5 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | 6 | and 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 | 67 | ## 0.16.0 (2026-07-23) |
| 9 | 68 | |
| 10 | 69 | ### Commit Statistics |
| 11 | 70 | |
| 12 | 71 | <csr-read-only-do-not-edit/> |
| 13 | 72 | |
| 14 | − - 7 commits contributed to the release. | |
| 73 | + - 8 commits contributed to the release. | |
| 15 | 74 | - 31 days passed between releases. |
| 16 | 75 | - 0 commits were understood as [conventional](https://www.conventionalcommits.org). |
| 17 | 76 | - 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 | 82 | <details><summary>view details</summary> |
| 24 | 83 | |
| 25 | 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 | 86 | - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f)) |
| 27 | 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 | 88 | - Merge pull request #2722 from GitoxideLabs/reasons ([`c16b5a1`](https://github.com/GitoxideLabs/gitoxide/commit/c16b5a1892704b7c72a253bdd74a6848dd61032a)) |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-blame" |
| 5 | −version = "0.17.0" | |
| 5 | +version = "0.17.1" | |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | 7 | license = "MIT OR Apache-2.0" |
| 8 | 8 | description = "A crate of the gitoxide project dedicated to implementing a 'blame' algorithm" |
| @@ -23,7 +23,7 @@ gix-commitgraph = { version = "^0.39.0", path = "../gix-commitgraph" } · 14 unmodified lines | ||
| 23 | 23 | gix-revwalk = { version = "^0.35.0", path = "../gix-revwalk" } |
| 24 | 24 | gix-trace = { version = "^0.1.21", path = "../gix-trace" } |
| 25 | 25 | gix-date = { version = "^0.16.0", path = "../gix-date" } |
| 26 | −gix-diff = { version = "^0.67.0", path = "../gix-diff", default-features = false, features = ["blob"] } | |
| 26 | +gix-diff = { version = "^0.67.1", path = "../gix-diff", default-features = false, features = ["blob"] } | |
| 27 | 27 | gix-object = { version = "^0.64.1", path = "../gix-object" } |
| 28 | 28 | gix-hash = { version = "^0.26.2", path = "../gix-hash" } |
| 29 | 29 | gix-worktree = { version = "^0.56.0", path = "../gix-worktree", default-features = false, features = ["attributes"] } |
| @@ -5,7 +5,199 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines | ||
| 5 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | 6 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | 7 | |
| 8 | −## Unreleased | |
| 8 | +## 0.67.1 (2026-08-24) | |
| 9 | + | |
| 10 | +### Commit Statistics | |
| 11 | + | |
| 12 | +<csr-read-only-do-not-edit/> | |
| 13 | + | |
| 14 | + - 4 commits contributed to the release over the course of 1 calendar day. | |
| 15 | + - 2 days passed between releases. | |
| 16 | + - 0 commits were understood as [conventional](https://www.conventionalcommits.org). | |
| 17 | + - 0 issues like '(#ID)' were seen in commit messages | |
| 18 | + | |
| 19 | +### Commit Details | |
| 20 | + | |
| 21 | +<csr-read-only-do-not-edit/> | |
| 22 | + | |
| 23 | +<details><summary>view details</summary> | |
| 24 | + | |
| 25 | + * **Uncategorized** | |
| 26 | + - Merge pull request #2931 from cruessler/make-slider-test-more-granular ([`0f837c0`](https://github.com/GitoxideLabs/gitoxide/commit/0f837c07ae47671daf5f5cec5d2834321813f8f8)) | |
| 27 | + - Review ([`169ae96`](https://github.com/GitoxideLabs/gitoxide/commit/169ae964f47b82237f33b616fd0c94fd3ea7d344)) | |
| 28 | + - Add optional detailed report to slider test ([`7192d9a`](https://github.com/GitoxideLabs/gitoxide/commit/7192d9a8e00f6b4e0836610f90dcbb990618cc7c)) | |
| 29 | + - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb)) | |
| 30 | +</details> | |
| 31 | + | |
| 32 | +## 0.67.0 (2026-08-22) | |
| 33 | + | |
| 34 | +### Bug Fixes | |
| 35 | + | |
| 36 | + - <csr-id-752f16f284796630aecdab558c8bd2f40eda8d29/> support shell commands in external blob diffs | |
| 37 | + <!-- agent --> | |
| 38 | + Treat configured external diff commands as shell command lines instead of | |
| 39 | + executable paths that require manual argument splitting. | |
| 40 | + | |
| 41 | + Git diff drivers may contain a program followed by arguments. Passing such | |
| 42 | + values through the shell-aware gix-command preparation path preserves that | |
| 43 | + configuration while still appending Git diff arguments and environment variables | |
| 44 | + in the established platform code. | |
| 45 | + | |
| 46 | + Add coverage for a configured command containing an argument so custom diff | |
| 47 | + drivers and text-conversion commands are launched as configured. | |
| 48 | + | |
| 49 | +### Test | |
| 50 | + | |
| 51 | + - <csr-id-6ade0d4dbbb199f92961cc1e775346409b88945b/> add test for binary diff with textconv | |
| 52 | + I want to add similar tests for `gix-blame` as well, but first I want to | |
| 53 | + properly understand this part of the `gix-diff` machinery. | |
| 54 | + | |
| 55 | +### Changed (BREAKING) | |
| 56 | + | |
| 57 | + - <csr-id-43cf77fdb52b547e727343644264fe60c05e6589/> Refactor tree-merge change matching and resolution. | |
| 58 | + Breaking because of added `ResolutionFailure` variants. | |
| 59 | + | |
| 60 | + <!-- agent --> | |
| 61 | + The tree-merge implementation previously combined side-diff collection, | |
| 62 | + path matching, scheduling, and the complete conflict-resolution matrix in a | |
| 63 | + single function. It also duplicated change collection for both sides and | |
| 64 | + represented pair outcomes with independent boolean flags. | |
| 65 | + | |
| 66 | + Keep the public tree() entry point as a small facade and move the merge | |
| 67 | + engine into focused private modules. Collect each ancestor-to-side diff | |
| 68 | + through one helper that constructs a SideState containing the flat change | |
| 69 | + list and its matching tree together. Isolate path and rename candidate | |
| 70 | + matching, including identical-change suppression, from classification into | |
| 71 | + pairs that the resolution matrix understands. | |
| 72 | + | |
| 73 | + Represent the result of handling each paired change explicitly as a | |
| 74 | + ChangeDisposition. This preserves the important distinction between a | |
| 75 | + change that was merely processed and one whose effect is present in the | |
| 76 | + editor, without duplicating the final state transition in the scheduler. | |
| 77 | + Replace the type-specific side-picking helpers with generic pick() and | |
| 78 | + pick_mut() helpers as well. | |
| 79 | + | |
| 80 | + These boundaries make the state machine easier to review and reduce the | |
| 81 | + chance that a future rename or forced-resolution fix accidentally changes | |
| 82 | + collection, matching, and application at once. They also remove duplicated | |
| 83 | + setup while keeping the exhaustive resolution match in one place, where | |
| 84 | + its symmetry remains visible. The public API and all recorded merge results | |
| 85 | + remain unchanged. | |
| 86 | + | |
| 87 | + Fixes and Improvements | |
| 88 | + ---------------------- | |
| 89 | + | |
| 90 | + Tree merging combines a flat change schedule with per-side path indexes. Valid | |
| 91 | + Git operations can therefore arrive in different orders or expose structural | |
| 92 | + relationships before the leaf changes that ultimately apply them. Several | |
| 93 | + resolver branches treated those relationships as physical occupancy or as | |
| 94 | + content changes for the same identity, leading to hangs, assertions, duplicate | |
| 95 | + entries, lost siblings, or merge results that depended on diff and side order. | |
| 96 | + | |
| 97 | + Separate unique-path occupancy from PassedRewrittenDirectory scheduling so a | |
| 98 | + side-qualified name can terminate below directory rewrites. Prune empty path | |
| 99 | + nodes back to the root, and allow a deferred rewrite to insert only its new | |
| 100 | + destination because its source is already indexed. | |
| 101 | + | |
| 102 | + Resolve the structural cases at their actual identity boundaries: | |
| 103 | + - handle an added file blocking an added directory before mode-specific add/add | |
| 104 | + resolution and defer early descendants until their parent deletion runs; | |
| 105 | + - keep explicit file renames ahead of inferred directory renames, and keep | |
| 106 | + directory replacements at their explicit sources; | |
| 107 | + - treat file replacements of incompatible non-blob ancestors as additions with | |
| 108 | + an empty compatible merge base; | |
| 109 | + - pair shared deletions before descendants and allow file renames into paths | |
| 110 | + vacated by directory renames; | |
| 111 | + - preserve unrelated nested or overlapping rename destinations by keeping the | |
| 112 | + directory in place and moving only the blocking file; | |
| 113 | + - reject incompatible same-destination rewrites before blob merging, while | |
| 114 | + collapsing identical rewrites to one clean shared destination; and | |
| 115 | + - defer file-to-directory children until the parent rename/delete decision is | |
| 116 | + made exactly once. | |
| 117 | + | |
| 118 | + Forced Ancestor and Ours resolution continues to apply only the selected side. | |
| 119 | + Git-backed baselines cover both directions, forced policies, modes, symlinks, | |
| 120 | + gitlinks, nested directories, and documented index-only deviations. The | |
| 121 | + resulting suite contains 155 directional baseline cases, and the Cartesian | |
| 122 | + model reaches 210/210 Git/gix agreement for trees and path/mode results. | |
| 123 | + | |
| 124 | + More Hardening | |
| 125 | + -------------- | |
| 126 | + | |
| 127 | + Deferred tree changes may be reconsidered after another conflict has already | |
| 128 | + consumed or pruned the same path-tree node. This is valid when rename detection | |
| 129 | + has ambiguous identical sources, when structural conflicts overlap, or when a | |
| 130 | + change follows a detected directory rename. The editor and conflict records | |
| 131 | + still contain the required state, but strict bookkeeping removals and older | |
| 132 | + same-path assertions turned these schedules into debug panics, hangs, or | |
| 133 | + side-order-dependent duplicate content. | |
| 134 | + | |
| 135 | + Make cleanup idempotent wherever absence is already the required end state: | |
| 136 | + add/add type conflicts, same-source rewrites, blocking conflict destinations, | |
| 137 | + delete/rewrite sources, and changes deferred through directory renames. Accept | |
| 138 | + cross-path structural matches from ambiguous rewrite candidates and let the | |
| 139 | + existing conservative unknown-conflict fallback handle them. | |
| 140 | + | |
| 141 | + Preserve each rewrite input mode when blob content is identical so executable | |
| 142 | + mode changes remain visible to the merge. Make unique-path selection respect | |
| 143 | + childless tracked directories and qualify the first blocking file component, | |
| 144 | + which guarantees termination instead of varying an ineffective descendant | |
| 145 | + suffix forever. Finally, when a deferred addition is relocated to a unique | |
| 146 | + conflict path, remove its temporary original path from the side index before | |
| 147 | + marking it processed so a later descendant cannot relocate the same content a | |
| 148 | + second time. | |
| 149 | + | |
| 150 | + The minimized and accumulated fuzz inputs now complete without failure. | |
| 151 | + Git-backed regressions cover ambiguous sources, consumed nodes, repeated | |
| 152 | + rename/delete candidates, mode-only rewrite collisions, unique paths below | |
| 153 | + files, and nested rename destinations in both side orderings. The final tree | |
| 154 | + baseline contains 165 directional cases with 130 intentionally skipped forced | |
| 155 | + resolution checks, and reversing the nested relocation case retains exactly | |
| 156 | + `a/a/a` and `a~A` without inventing `a~A_0`. | |
| 157 | + | |
| 158 | +### Commit Statistics | |
| 159 | + | |
| 160 | +<csr-read-only-do-not-edit/> | |
| 161 | + | |
| 162 | + - 18 commits contributed to the release over the course of 30 calendar days. | |
| 163 | + - 30 days passed between releases. | |
| 164 | + - 3 commits were understood as [conventional](https://www.conventionalcommits.org). | |
| 165 | + - 0 issues like '(#ID)' were seen in commit messages | |
| 166 | + | |
| 167 | +### Thanks Clippy | |
| 168 | + | |
| 169 | +<csr-read-only-do-not-edit/> | |
| 170 | + | |
| 171 | +[Clippy](https://github.com/rust-lang/rust-clippy) helped 1 time to make code idiomatic. | |
| 172 | + | |
| 173 | +### Commit Details | |
| 174 | + | |
| 175 | +<csr-read-only-do-not-edit/> | |
| 176 | + | |
| 177 | +<details><summary>view details</summary> | |
| 178 | + | |
| 179 | + * **Uncategorized** | |
| 180 | + - Release gix-error v0.3.0, gix-date v0.16.0, gix-actor v0.42.0, gix-validate v0.11.4, gix-path v0.12.5, gix-utils v0.3.6, gix-quote v0.8.0, gix-command v0.10.0, gix-features v0.49.1, gix-hash v0.26.1, gix-fs v0.22.1, gix-object v0.64.0, gix-glob v0.27.1, gix-attributes v0.35.0, gix-filter v0.34.0, gix-chunk v0.8.0, gix-commitgraph v0.39.0, gix-revwalk v0.35.0, gix-traverse v0.61.0, gix-worktree-stream v0.36.0, gix-archive v0.36.0, gix-bitmap v0.4.0, gix-index v0.55.0, gix-pathspec v0.20.0, gix-ignore v0.22.1, gix-worktree v0.56.0, gix-imara-diff v0.2.5, gix-diff v0.67.0, gix-blame v0.17.0, gix-ref v0.67.0, gix-config v0.60.0, gix-prompt v0.17.0, gix-url v0.38.0, gix-credentials v0.40.0, gix-discover v0.55.0, gix-dir v0.29.0, gix-mailmap v0.34.0, gix-revision v0.49.0, gix-merge v0.20.0, gix-negotiate v0.35.0, gix-note v0.1.0, gix-pack v0.74.0, gix-odb v0.84.0, gix-refspec v0.45.0, gix-transport v0.59.0, gix-protocol v0.65.0, gix-status v0.34.0, gix-submodule v0.34.0, gix-worktree-state v0.34.0, gix v0.87.0, gix-fsck v0.25.0, gitoxide-core v0.61.0, gix-tix v0.2.0, gitoxide v0.57.0 ([`d2af4ed`](https://github.com/GitoxideLabs/gitoxide/commit/d2af4ed5532ea660fbd643e48d8925cd88de5ee0)) | |
| 181 | + - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb)) | |
| 182 | + - Merge pull request #2930 from GitoxideLabs/gix-notes ([`7424676`](https://github.com/GitoxideLabs/gitoxide/commit/7424676f86cd3f5a67c53f8db6baf0803e937d4a)) | |
| 183 | + - Thanks clippy ([`5c8d935`](https://github.com/GitoxideLabs/gitoxide/commit/5c8d9351dcab6c59c456787db7a40d38b5b5c5c0)) | |
| 184 | + - Merge pull request #2928 from cruessler/add-git-diff-textconv-test ([`227619a`](https://github.com/GitoxideLabs/gitoxide/commit/227619ad066af0dbbdbd855be4c9442228e0ce98)) | |
| 185 | + - Review ([`5e600cb`](https://github.com/GitoxideLabs/gitoxide/commit/5e600cb6fcb4ad646cf46cefba1968dc64afcb23)) | |
| 186 | + - Add test for binary diff with textconv ([`6ade0d4`](https://github.com/GitoxideLabs/gitoxide/commit/6ade0d4dbbb199f92961cc1e775346409b88945b)) | |
| 187 | + - Merge pull request #2905 from GitoxideLabs/various-improvements ([`f3bbfad`](https://github.com/GitoxideLabs/gitoxide/commit/f3bbfadd4b4f1d72c85c62eb3d7ae337c922f945)) | |
| 188 | + - Support shell commands in external blob diffs ([`752f16f`](https://github.com/GitoxideLabs/gitoxide/commit/752f16f284796630aecdab558c8bd2f40eda8d29)) | |
| 189 | + - Adapt to changes in `gix-testtools` ([`0cbe539`](https://github.com/GitoxideLabs/gitoxide/commit/0cbe53971687fb3b1959925aa9d8dc89deb5b474)) | |
| 190 | + - Use `gix_object::tree::name_order` instead of copy of the same function ([`db1f7d4`](https://github.com/GitoxideLabs/gitoxide/commit/db1f7d462253a713837ef31b2942ff21c5a9df72)) | |
| 191 | + - Merge pull request #2901 from cruessler/switch-to-gix-odb-at-opts ([`2a4d996`](https://github.com/GitoxideLabs/gitoxide/commit/2a4d996ca53bd38a5e9889da0b180580315d905f)) | |
| 192 | + - Introduce `Store::at()` where possible ([`17fea2a`](https://github.com/GitoxideLabs/gitoxide/commit/17fea2ab8a1c23f2e8bc50b78b90feb1e361f66a)) | |
| 193 | + - Merge pull request #2843 from GitoxideLabs/deleted-file-added-dir ([`f33e250`](https://github.com/GitoxideLabs/gitoxide/commit/f33e250d35391faf981cabc1ff5c7c1ab0af62a9)) | |
| 194 | + - Refactor tree-merge change matching and resolution. ([`43cf77f`](https://github.com/GitoxideLabs/gitoxide/commit/43cf77fdb52b547e727343644264fe60c05e6589)) | |
| 195 | + - Merge pull request #2867 from GitoxideLabs/fix-url-authority-parsing ([`cc3ee80`](https://github.com/GitoxideLabs/gitoxide/commit/cc3ee8060ad7a32ee8d2eb9139854be7f7561b70)) | |
| 196 | + - Release gix-path v0.12.4, gix-command v0.9.2, gix-config-value v0.19.1, gix-url v0.37.1, gix-credentials v0.39.1, gix-transport v0.58.1 ([`ab4fcb0`](https://github.com/GitoxideLabs/gitoxide/commit/ab4fcb0364ec4d01115595198f383b1ad9c29808)) | |
| 197 | + - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b)) | |
| 198 | +</details> | |
| 199 | + | |
| 200 | +## 0.66.0 (2026-07-23) | |
| 9 | 201 | |
| 10 | 202 | ### 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 | 229 | <csr-read-only-do-not-edit/> |
| 38 | 230 | |
| 39 | − - 14 commits contributed to the release. | |
| 231 | + - 16 commits contributed to the release. | |
| 40 | 232 | - 31 days passed between releases. |
| 41 | 233 | - 3 commits were understood as [conventional](https://www.conventionalcommits.org). |
| 42 | 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 | 243 | - Prefer file-name matches when pairing rename candidates, like Git ([`cea5ea7`](https://github.com/GitoxideLabs/gitoxide/commit/cea5ea77b57f840de618e1d15508add8293f30f2)) |
| 52 | 244 | - Make rename tracking independent of the input order ([`1acc43d`](https://github.com/GitoxideLabs/gitoxide/commit/1acc43d14af57e7711407af8172d43a75733ae16)) |
| 53 | 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 | 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 | 249 | - Merge pull request #2737 from GitoxideLabs/encoding-fallback-pony ([`2315ede`](https://github.com/GitoxideLabs/gitoxide/commit/2315ede714da6a43c885ed534f37901b2e1db687)) |
| 56 | 250 | - Adapt to changes in `gix-filter` ([`552402f`](https://github.com/GitoxideLabs/gitoxide/commit/552402f6147b8ed4f412b9d24bf8408320b4a5d8)) |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-diff" |
| 5 | −version = "0.67.0" | |
| 5 | +version = "0.67.1" | |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | 7 | license = "MIT OR Apache-2.0" |
| 8 | 8 | description = "Calculate differences between various git objects" |
| @@ -5,7 +5,79 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines | ||
| 5 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | 6 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | 7 | |
| 8 | −## Unreleased | |
| 8 | +## 0.29.1 (2026-08-24) | |
| 9 | + | |
| 10 | +### Commit Statistics | |
| 11 | + | |
| 12 | +<csr-read-only-do-not-edit/> | |
| 13 | + | |
| 14 | + - 3 commits contributed to the release over the course of 1 calendar day. | |
| 15 | + - 2 days passed between releases. | |
| 16 | + - 0 commits were understood as [conventional](https://www.conventionalcommits.org). | |
| 17 | + - 0 issues like '(#ID)' were seen in commit messages | |
| 18 | + | |
| 19 | +### Commit Details | |
| 20 | + | |
| 21 | +<csr-read-only-do-not-edit/> | |
| 22 | + | |
| 23 | +<details><summary>view details</summary> | |
| 24 | + | |
| 25 | + * **Uncategorized** | |
| 26 | + - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03)) | |
| 27 | + - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558)) | |
| 28 | + - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb)) | |
| 29 | +</details> | |
| 30 | + | |
| 31 | +## 0.29.0 (2026-08-22) | |
| 32 | + | |
| 33 | +### Bug Fixes | |
| 34 | + | |
| 35 | + - <csr-id-234181b199b533594ec9e41f3623e399d414e9e1/> preserve combining-mark order when precomposing paths | |
| 36 | + <!-- agent --> | |
| 37 | + On macOS, gix status reported a tracked dua-cli fixture as untracked while git | |
| 38 | + status was clean. The filename contains valid combining marks in noncanonical | |
| 39 | + order; full NFC normalization reordered them before the directory walk looked | |
| 40 | + the path up in the index. | |
| 41 | + | |
| 42 | + Recompose filesystem-decomposed characters without canonical reordering, | |
| 43 | + preserving non-composable combining-mark byte order. Cover both the helper behavior | |
| 44 | + and a Git-created index entry in the directory walk. | |
| 45 | + | |
| 46 | + Git baseline: Git 2.50.1 uses UTF-8-MAC to UTF-8 iconv conversion | |
| 47 | + in compat/precompose_utf8.c, with directory-read coverage in | |
| 48 | + t/t3910-mac-os-precompose.sh. That conversion leaves the reported combining-mark | |
| 49 | + order unchanged. | |
| 50 | + | |
| 51 | +### Commit Statistics | |
| 52 | + | |
| 53 | +<csr-read-only-do-not-edit/> | |
| 54 | + | |
| 55 | + - 11 commits contributed to the release over the course of 30 calendar days. | |
| 56 | + - 30 days passed between releases. | |
| 57 | + - 1 commit was understood as [conventional](https://www.conventionalcommits.org). | |
| 58 | + - 0 issues like '(#ID)' were seen in commit messages | |
| 59 | + | |
| 60 | +### Commit Details | |
| 61 | + | |
| 62 | +<csr-read-only-do-not-edit/> | |
| 63 | + | |
| 64 | +<details><summary>view details</summary> | |
| 65 | + | |
| 66 | + * **Uncategorized** | |
| 67 | + - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb)) | |
| 68 | + - Merge pull request #2905 from GitoxideLabs/various-improvements ([`f3bbfad`](https://github.com/GitoxideLabs/gitoxide/commit/f3bbfadd4b4f1d72c85c62eb3d7ae337c922f945)) | |
| 69 | + - Adapt to changes in `gix-testtools` ([`0cbe539`](https://github.com/GitoxideLabs/gitoxide/commit/0cbe53971687fb3b1959925aa9d8dc89deb5b474)) | |
| 70 | + - Merge pull request #2898 from cruessler/run-more-tests-with-sha-256-2 ([`7241150`](https://github.com/GitoxideLabs/gitoxide/commit/7241150fbf60ab4e9be48d65d7f2b269a393b756)) | |
| 71 | + - Review ([`351d793`](https://github.com/GitoxideLabs/gitoxide/commit/351d793eb6660febe82c6db2e78bedd2c518216f)) | |
| 72 | + - Use `GIX_TEST_FIXTURE_HASH` for more tests ([`9bb4148`](https://github.com/GitoxideLabs/gitoxide/commit/9bb4148b841f2566887638a646099bc86683bd78)) | |
| 73 | + - Merge pull request #2874 from GitoxideLabs/fix-status-untracked ([`8f18657`](https://github.com/GitoxideLabs/gitoxide/commit/8f18657718a1098fb3382aee51d866b9a1a1d10d)) | |
| 74 | + - Preserve combining-mark order when precomposing paths ([`234181b`](https://github.com/GitoxideLabs/gitoxide/commit/234181b199b533594ec9e41f3623e399d414e9e1)) | |
| 75 | + - Merge pull request #2867 from GitoxideLabs/fix-url-authority-parsing ([`cc3ee80`](https://github.com/GitoxideLabs/gitoxide/commit/cc3ee8060ad7a32ee8d2eb9139854be7f7561b70)) | |
| 76 | + - Release gix-path v0.12.4, gix-command v0.9.2, gix-config-value v0.19.1, gix-url v0.37.1, gix-credentials v0.39.1, gix-transport v0.58.1 ([`ab4fcb0`](https://github.com/GitoxideLabs/gitoxide/commit/ab4fcb0364ec4d01115595198f383b1ad9c29808)) | |
| 77 | + - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b)) | |
| 78 | +</details> | |
| 79 | + | |
| 80 | +## 0.28.0 (2026-07-23) | |
| 9 | 81 | |
| 10 | 82 | ### 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 | 106 | <csr-read-only-do-not-edit/> |
| 35 | 107 | |
| 36 | − - 9 commits contributed to the release. | |
| 108 | + - 11 commits contributed to the release. | |
| 37 | 109 | - 31 days passed between releases. |
| 38 | 110 | - 1 commit was understood as [conventional](https://www.conventionalcommits.org). |
| 39 | 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 | 119 | * **[#2490](https://github.com/GitoxideLabs/gitoxide/issues/2490)** |
| 48 | 120 | - Keep EmptyDirectory when collapsing trees of only empty dirs ([`4b38ff1`](https://github.com/GitoxideLabs/gitoxide/commit/4b38ff1267ec73afe79c727a3a998a7da209077e)) |
| 49 | 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 | 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 | 125 | - Merge pull request #2722 from GitoxideLabs/reasons ([`c16b5a1`](https://github.com/GitoxideLabs/gitoxide/commit/c16b5a1892704b7c72a253bdd74a6848dd61032a)) |
| 52 | 126 | - Replace lint allowances with expectations ([`43ff87a`](https://github.com/GitoxideLabs/gitoxide/commit/43ff87a73897b70313e3a58e7de82231be5b59ad)) |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-dir" |
| 5 | −version = "0.29.0" | |
| 5 | +version = "0.29.1" | |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | 7 | license = "MIT OR Apache-2.0" |
| 8 | 8 | description = "A crate of the gitoxide project dealing with directory walks" |
| @@ -5,13 +5,36 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines | ||
| 5 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | 6 | and 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 | 31 | ## 0.25.0 (2026-08-22) |
| 9 | 32 | |
| 10 | 33 | ### Commit Statistics |
| 11 | 34 | |
| 12 | 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 | 38 | - 30 days passed between releases. |
| 16 | 39 | - 0 commits were understood as [conventional](https://www.conventionalcommits.org). |
| 17 | 40 | - 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 | 46 | <details><summary>view details</summary> |
| 24 | 47 | |
| 25 | 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 | 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 | 51 | - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb)) |
| 28 | 52 | - Merge pull request #2901 from cruessler/switch-to-gix-odb-at-opts ([`2a4d996`](https://github.com/GitoxideLabs/gitoxide/commit/2a4d996ca53bd38a5e9889da0b180580315d905f)) |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-fsck" |
| 5 | −version = "0.25.0" | |
| 5 | +version = "0.25.1" | |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | 7 | authors = ["Cameron Esfahani <cesfahani@gmail.com>", "Sebastian Thiel <sebastian.thiel@icloud.com>"] |
| 8 | 8 | license = "MIT OR Apache-2.0" |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-macros" |
| 5 | −version = "0.1.5" | |
| 5 | +version = "0.1.6" | |
| 6 | 6 | edition = "2024" |
| 7 | 7 | description = "Proc-macro utilities for gix" |
| 8 | 8 | authors = [ |
| @@ -5,13 +5,100 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines | ||
| 5 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | 6 | and 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 | 95 | ## 0.33.2 (2026-07-23) |
| 9 | 96 | |
| 10 | 97 | ### Commit Statistics |
| 11 | 98 | |
| 12 | 99 | <csr-read-only-do-not-edit/> |
| 13 | 100 | |
| 14 | − - 4 commits contributed to the release. | |
| 101 | + - 5 commits contributed to the release. | |
| 15 | 102 | - 58 days passed between releases. |
| 16 | 103 | - 0 commits were understood as [conventional](https://www.conventionalcommits.org). |
| 17 | 104 | - 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 | 110 | <details><summary>view details</summary> |
| 24 | 111 | |
| 25 | 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 | 114 | - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f)) |
| 27 | 115 | - Merge pull request #2714 from GitoxideLabs/fix-credentials-parsing ([`cf3053a`](https://github.com/GitoxideLabs/gitoxide/commit/cf3053a3c18e2de788cdaa9f41b5bd343bdc0091)) |
| 28 | 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)) |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-mailmap" |
| 5 | −version = "0.34.0" | |
| 5 | +version = "0.34.1" | |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | 7 | license = "MIT OR Apache-2.0" |
| 8 | 8 | description = "A crate of the gitoxide project for parsing mailmap files" |
| @@ -5,7 +5,254 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines | ||
| 5 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | 6 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | 7 | |
| 8 | −## Unreleased | |
| 8 | +## 0.20.1 (2026-08-24) | |
| 9 | + | |
| 10 | +### Commit Statistics | |
| 11 | + | |
| 12 | +<csr-read-only-do-not-edit/> | |
| 13 | + | |
| 14 | + - 4 commits contributed to the release over the course of 1 calendar day. | |
| 15 | + - 2 days passed between releases. | |
| 16 | + - 0 commits were understood as [conventional](https://www.conventionalcommits.org). | |
| 17 | + - 0 issues like '(#ID)' were seen in commit messages | |
| 18 | + | |
| 19 | +### Commit Details | |
| 20 | + | |
| 21 | +<csr-read-only-do-not-edit/> | |
| 22 | + | |
| 23 | +<details><summary>view details</summary> | |
| 24 | + | |
| 25 | + * **Uncategorized** | |
| 26 | + - Merge pull request #2932 from GitoxideLabs/fundamental-types-comp ([`6704303`](https://github.com/GitoxideLabs/gitoxide/commit/6704303ed5ef3403b129e2b6cc4a9214432ffd03)) | |
| 27 | + - Release gix-error v0.3.1, gix-hash v0.26.2, gix-object v0.64.1, gix-ref v0.67.1, gix-packetline v0.22.1, gix-pack v0.74.1, gix-testtools v0.20.0 ([`e52fe9d`](https://github.com/GitoxideLabs/gitoxide/commit/e52fe9d03e82437a25bdfb1098e7046ec7e1b558)) | |
| 28 | + - Use fundamental-type comparisons throughout tests ([`47536a5`](https://github.com/GitoxideLabs/gitoxide/commit/47536a5c2b22da3a9f4892c8af5e460c2d5bda0a)) | |
| 29 | + - Merge pull request #2933 from GitoxideLabs/report-august ([`b8914ff`](https://github.com/GitoxideLabs/gitoxide/commit/b8914ffda5bc8f6ea851aaf1f720140acfe96dbb)) | |
| 30 | +</details> | |
| 31 | + | |
| 32 | +## 0.20.0 (2026-08-22) | |
| 33 | + | |
| 34 | +### Bug Fixes | |
| 35 | + | |
| 36 | + - <csr-id-61b45a81911561761b1546e8bf74541263b964be/> track whether tree changes were actually applied | |
| 37 | + <!-- agent --> | |
| 38 | + | |
| 39 | + Replace the ambiguous `was_written` flag with an explicit change state: | |
| 40 | + | |
| 41 | + - `Pending` means the change still needs processing. | |
| 42 | + - `Processed` means conflict handling consumed the change without applying it. | |
| 43 | + - `Applied` means its effect was written to the tree editor. | |
| 44 | + | |
| 45 | + This distinction matters for forced ancestor resolution. A deletion may participate | |
| 46 | + in a conflict while the ancestor entry is deliberately retained. Treating that | |
| 47 | + deletion as written caused later changes below the same path to assume the file | |
| 48 | + had been removed and replace it with a directory. | |
| 49 | + | |
| 50 | + Only suppress subsequent conflicts for deletions that were actually applied. | |
| 51 | + Keep applied state monotonic so later bookkeeping cannot downgrade it to merely | |
| 52 | + processed. | |
| 53 | + | |
| 54 | + The expanded rename baselines exposed related ordering issues, to allow a fix: | |
| 55 | + | |
| 56 | + - Preserve trie children when removing a change attached to an interior node. | |
| 57 | + - Associate deferred rewrite additions with the opposing change index so the | |
| 58 | + same rename content is not merged twice. | |
| 59 | + - Detect different source files renamed onto the same destination. | |
| 60 | + - Merge converging rename contents as competing additions instead of silently | |
| 61 | + allowing one rename to win. | |
| 62 | + - Define forced resolution for converging renames: ancestor retains both source | |
| 63 | + files, while ours applies only the selected side's rename. | |
| 64 | + | |
| 65 | + Add an inspectable rename/change matrix covering: | |
| 66 | + | |
| 67 | + - rename versus source modification | |
| 68 | + - rename versus source deletion | |
| 69 | + - rename versus destination addition | |
| 70 | + - rename onto a modified destination | |
| 71 | + - rename onto a deleted destination | |
| 72 | + - the same source renamed to different destinations | |
| 73 | + - additions below a renamed directory | |
| 74 | + - both sides modifying and choosing the same rename | |
| 75 | + - different sources renamed onto the same destination | |
| 76 | + - rename/delete combined with file-to-directory replacement | |
| 77 | + - <csr-id-195f0b99a650c626d951ef7a902733a0e2ac44cc/> treat adjacent text changes as conflicting. | |
| 78 | + <!-- agent --> | |
| 79 | + | |
| 80 | + The text merge previously considered changes from opposing sides to | |
| 81 | + overlap only when the later hunk started inside the earlier hunk's | |
| 82 | + half-open base range. For adjacent ranges `[a, b)` and `[b, c)`, the | |
| 83 | + second hunk starts exactly at the end of the first and therefore wasn't | |
| 84 | + considered to overlap. | |
| 85 | + | |
| 86 | + This caused gix to merge edits to neighboring lines cleanly even though | |
| 87 | + there was no unchanged base line separating them. Git instead combines | |
| 88 | + such touching changes into one conflicting region. | |
| 89 | + | |
| 90 | + Treat opposing hunks as disjoint only when there is an actual gap | |
| 91 | + between their base ranges. A later hunk whose start is equal to the | |
| 92 | + earlier hunk's end now intersects it, while same-side hunks and changes | |
| 93 | + separated by an unchanged line retain their previous behavior. | |
| 94 | + | |
| 95 | + Add direct text-driver coverage for both merge directions. The tests | |
| 96 | + verify that adjacent edits produce one conflict with the expected | |
| 97 | + content and that edits separated by an unchanged base line still merge | |
| 98 | + cleanly while preserving both changes. | |
| 99 | + - <csr-id-1ee3fc6adf44520ee3397982ec42dbf65a9126f8/> merge additions below jointly deleted files | |
| 100 | + <!-- agent --> | |
| 101 | + | |
| 102 | + When both sides delete a file and one side replaces it with a directory, | |
| 103 | + the tree merge matched the directory parent instead of the non-tree deletion | |
| 104 | + and later treated a child addition as a conflict. In debug builds this reached | |
| 105 | + an assertion for changes at different paths. | |
| 106 | + | |
| 107 | + Prefer non-tree changes when multiple changes occupy the same lookup path. | |
| 108 | + Mark matching deletions as consumed so their child additions can be applied | |
| 109 | + without colliding with stale conflict state. Add a bidirectional baseline | |
| 110 | + covering the file-to-directory replacement. | |
| 111 | + | |
| 112 | + Git baseline: Git 2.50.1 merge-tree resolves the fixture cleanly in both | |
| 113 | + directions and retains to-be-deleted/a. The reference checkout was at | |
| 114 | + a23bace963. | |
| 115 | + | |
| 116 | +### Changed (BREAKING) | |
| 117 | + | |
| 118 | + - <csr-id-43cf77fdb52b547e727343644264fe60c05e6589/> Refactor tree-merge change matching and resolution. | |
| 119 | + Breaking because of added `ResolutionFailure` variants. | |
| 120 | + | |
| 121 | + <!-- agent --> | |
| 122 | + The tree-merge implementation previously combined side-diff collection, | |
| 123 | + path matching, scheduling, and the complete conflict-resolution matrix in a | |
| 124 | + single function. It also duplicated change collection for both sides and | |
| 125 | + represented pair outcomes with independent boolean flags. | |
| 126 | + | |
| 127 | + Keep the public tree() entry point as a small facade and move the merge | |
| 128 | + engine into focused private modules. Collect each ancestor-to-side diff | |
| 129 | + through one helper that constructs a SideState containing the flat change | |
| 130 | + list and its matching tree together. Isolate path and rename candidate | |
| 131 | + matching, including identical-change suppression, from classification into | |
| 132 | + pairs that the resolution matrix understands. | |
| 133 | + | |
| 134 | + Represent the result of handling each paired change explicitly as a | |
| 135 | + ChangeDisposition. This preserves the important distinction between a | |
| 136 | + change that was merely processed and one whose effect is present in the | |
| 137 | + editor, without duplicating the final state transition in the scheduler. | |
| 138 | + Replace the type-specific side-picking helpers with generic pick() and | |
| 139 | + pick_mut() helpers as well. | |
| 140 | + | |
| 141 | + These boundaries make the state machine easier to review and reduce the | |
| 142 | + chance that a future rename or forced-resolution fix accidentally changes | |
| 143 | + collection, matching, and application at once. They also remove duplicated | |
| 144 | + setup while keeping the exhaustive resolution match in one place, where | |
| 145 | + its symmetry remains visible. The public API and all recorded merge results | |
| 146 | + remain unchanged. | |
| 147 | + | |
| 148 | + Fixes and Improvements | |
| 149 | + ---------------------- | |
| 150 | + | |
| 151 | + Tree merging combines a flat change schedule with per-side path indexes. Valid | |
| 152 | + Git operations can therefore arrive in different orders or expose structural | |
| 153 | + relationships before the leaf changes that ultimately apply them. Several | |
| 154 | + resolver branches treated those relationships as physical occupancy or as | |
| 155 | + content changes for the same identity, leading to hangs, assertions, duplicate | |
| 156 | + entries, lost siblings, or merge results that depended on diff and side order. | |
| 157 | + | |
| 158 | + Separate unique-path occupancy from PassedRewrittenDirectory scheduling so a | |
| 159 | + side-qualified name can terminate below directory rewrites. Prune empty path | |
| 160 | + nodes back to the root, and allow a deferred rewrite to insert only its new | |
| 161 | + destination because its source is already indexed. | |
| 162 | + | |
| 163 | + Resolve the structural cases at their actual identity boundaries: | |
| 164 | + - handle an added file blocking an added directory before mode-specific add/add | |
| 165 | + resolution and defer early descendants until their parent deletion runs; | |
| 166 | + - keep explicit file renames ahead of inferred directory renames, and keep | |
| 167 | + directory replacements at their explicit sources; | |
| 168 | + - treat file replacements of incompatible non-blob ancestors as additions with | |
| 169 | + an empty compatible merge base; | |
| 170 | + - pair shared deletions before descendants and allow file renames into paths | |
| 171 | + vacated by directory renames; | |
| 172 | + - preserve unrelated nested or overlapping rename destinations by keeping the | |
| 173 | + directory in place and moving only the blocking file; | |
| 174 | + - reject incompatible same-destination rewrites before blob merging, while | |
| 175 | + collapsing identical rewrites to one clean shared destination; and | |
| 176 | + - defer file-to-directory children until the parent rename/delete decision is | |
| 177 | + made exactly once. | |
| 178 | + | |
| 179 | + Forced Ancestor and Ours resolution continues to apply only the selected side. | |
| 180 | + Git-backed baselines cover both directions, forced policies, modes, symlinks, | |
| 181 | + gitlinks, nested directories, and documented index-only deviations. The | |
| 182 | + resulting suite contains 155 directional baseline cases, and the Cartesian | |
| 183 | + model reaches 210/210 Git/gix agreement for trees and path/mode results. | |
| 184 | + | |
| 185 | + More Hardening | |
| 186 | + -------------- | |
| 187 | + | |
| 188 | + Deferred tree changes may be reconsidered after another conflict has already | |
| 189 | + consumed or pruned the same path-tree node. This is valid when rename detection | |
| 190 | + has ambiguous identical sources, when structural conflicts overlap, or when a | |
| 191 | + change follows a detected directory rename. The editor and conflict records | |
| 192 | + still contain the required state, but strict bookkeeping removals and older | |
| 193 | + same-path assertions turned these schedules into debug panics, hangs, or | |
| 194 | + side-order-dependent duplicate content. | |
| 195 | + | |
| 196 | + Make cleanup idempotent wherever absence is already the required end state: | |
| 197 | + add/add type conflicts, same-source rewrites, blocking conflict destinations, | |
| 198 | + delete/rewrite sources, and changes deferred through directory renames. Accept | |
| 199 | + cross-path structural matches from ambiguous rewrite candidates and let the | |
| 200 | + existing conservative unknown-conflict fallback handle them. | |
| 201 | + | |
| 202 | + Preserve each rewrite input mode when blob content is identical so executable | |
| 203 | + mode changes remain visible to the merge. Make unique-path selection respect | |
| 204 | + childless tracked directories and qualify the first blocking file component, | |
| 205 | + which guarantees termination instead of varying an ineffective descendant | |
| 206 | + suffix forever. Finally, when a deferred addition is relocated to a unique | |
| 207 | + conflict path, remove its temporary original path from the side index before | |
| 208 | + marking it processed so a later descendant cannot relocate the same content a | |
| 209 | + second time. | |
| 210 | + | |
| 211 | + The minimized and accumulated fuzz inputs now complete without failure. | |
| 212 | + Git-backed regressions cover ambiguous sources, consumed nodes, repeated | |
| 213 | + rename/delete candidates, mode-only rewrite collisions, unique paths below | |
| 214 | + files, and nested rename destinations in both side orderings. The final tree | |
| 215 | + baseline contains 165 directional cases with 130 intentionally skipped forced | |
| 216 | + resolution checks, and reversing the nested relocation case retains exactly | |
| 217 | + `a/a/a` and `a~A` without inventing `a~A_0`. | |
| 218 | + | |
| 219 | +### Commit Statistics | |
| 220 | + | |
| 221 | +<csr-read-only-do-not-edit/> | |
| 222 | + | |
| 223 | + - 18 commits contributed to the release over the course of 30 calendar days. | |
| 224 | + - 30 days passed between releases. | |
| 225 | + - 4 commits were understood as [conventional](https://www.conventionalcommits.org). | |
| 226 | + - 0 issues like '(#ID)' were seen in commit messages | |
| 227 | + | |
| 228 | +### Commit Details | |
| 229 | + | |
| 230 | +<csr-read-only-do-not-edit/> | |
| 231 | + | |
| 232 | +<details><summary>view details</summary> | |
| 233 | + | |
| 234 | + * **Uncategorized** | |
| 235 | + - Release gix-error v0.3.0, gix-date v0.16.0, gix-actor v0.42.0, gix-validate v0.11.4, gix-path v0.12.5, gix-utils v0.3.6, gix-quote v0.8.0, gix-command v0.10.0, gix-features v0.49.1, gix-hash v0.26.1, gix-fs v0.22.1, gix-object v0.64.0, gix-glob v0.27.1, gix-attributes v0.35.0, gix-filter v0.34.0, gix-chunk v0.8.0, gix-commitgraph v0.39.0, gix-revwalk v0.35.0, gix-traverse v0.61.0, gix-worktree-stream v0.36.0, gix-archive v0.36.0, gix-bitmap v0.4.0, gix-index v0.55.0, gix-pathspec v0.20.0, gix-ignore v0.22.1, gix-worktree v0.56.0, gix-imara-diff v0.2.5, gix-diff v0.67.0, gix-blame v0.17.0, gix-ref v0.67.0, gix-config v0.60.0, gix-prompt v0.17.0, gix-url v0.38.0, gix-credentials v0.40.0, gix-discover v0.55.0, gix-dir v0.29.0, gix-mailmap v0.34.0, gix-revision v0.49.0, gix-merge v0.20.0, gix-negotiate v0.35.0, gix-note v0.1.0, gix-pack v0.74.0, gix-odb v0.84.0, gix-refspec v0.45.0, gix-transport v0.59.0, gix-protocol v0.65.0, gix-status v0.34.0, gix-submodule v0.34.0, gix-worktree-state v0.34.0, gix v0.87.0, gix-fsck v0.25.0, gitoxide-core v0.61.0, gix-tix v0.2.0, gitoxide v0.57.0 ([`d2af4ed`](https://github.com/GitoxideLabs/gitoxide/commit/d2af4ed5532ea660fbd643e48d8925cd88de5ee0)) | |
| 236 | + - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb)) | |
| 237 | + - Merge pull request #2905 from GitoxideLabs/various-improvements ([`f3bbfad`](https://github.com/GitoxideLabs/gitoxide/commit/f3bbfadd4b4f1d72c85c62eb3d7ae337c922f945)) | |
| 238 | + - Adapt to changes in `gix-testtools` ([`0cbe539`](https://github.com/GitoxideLabs/gitoxide/commit/0cbe53971687fb3b1959925aa9d8dc89deb5b474)) | |
| 239 | + - Merge pull request #2901 from cruessler/switch-to-gix-odb-at-opts ([`2a4d996`](https://github.com/GitoxideLabs/gitoxide/commit/2a4d996ca53bd38a5e9889da0b180580315d905f)) | |
| 240 | + - Introduce `Store::at()` where possible ([`17fea2a`](https://github.com/GitoxideLabs/gitoxide/commit/17fea2ab8a1c23f2e8bc50b78b90feb1e361f66a)) | |
| 241 | + - Merge pull request #2843 from GitoxideLabs/deleted-file-added-dir ([`f33e250`](https://github.com/GitoxideLabs/gitoxide/commit/f33e250d35391faf981cabc1ff5c7c1ab0af62a9)) | |
| 242 | + - Refactor tree-merge change matching and resolution. ([`43cf77f`](https://github.com/GitoxideLabs/gitoxide/commit/43cf77fdb52b547e727343644264fe60c05e6589)) | |
| 243 | + - Add Linux-sized tree merge benchmarks ([`7ccac01`](https://github.com/GitoxideLabs/gitoxide/commit/7ccac0132e48e23aaf56ad29eed9e9d35bff89cc)) | |
| 244 | + - Add structural tree-merge validation. ([`af2aa23`](https://github.com/GitoxideLabs/gitoxide/commit/af2aa2302506df476297a14db388fa4169a811ba)) | |
| 245 | + - Merge pull request #2867 from GitoxideLabs/fix-url-authority-parsing ([`cc3ee80`](https://github.com/GitoxideLabs/gitoxide/commit/cc3ee8060ad7a32ee8d2eb9139854be7f7561b70)) | |
| 246 | + - Release gix-path v0.12.4, gix-command v0.9.2, gix-config-value v0.19.1, gix-url v0.37.1, gix-credentials v0.39.1, gix-transport v0.58.1 ([`ab4fcb0`](https://github.com/GitoxideLabs/gitoxide/commit/ab4fcb0364ec4d01115595198f383b1ad9c29808)) | |
| 247 | + - Merge pull request #2826 from GitoxideLabs/deleted-file-added-dir ([`83e074c`](https://github.com/GitoxideLabs/gitoxide/commit/83e074c1e2d070059febaaab1022058948855101)) | |
| 248 | + - Add a Cartesian tree-merge correctness baseline. ([`df845cf`](https://github.com/GitoxideLabs/gitoxide/commit/df845cfedca98e9c9b52922223ebf4d77581af90)) | |
| 249 | + - Track whether tree changes were actually applied ([`61b45a8`](https://github.com/GitoxideLabs/gitoxide/commit/61b45a81911561761b1546e8bf74541263b964be)) | |
| 250 | + - Treat adjacent text changes as conflicting. ([`195f0b9`](https://github.com/GitoxideLabs/gitoxide/commit/195f0b99a650c626d951ef7a902733a0e2ac44cc)) | |
| 251 | + - Merge additions below jointly deleted files ([`1ee3fc6`](https://github.com/GitoxideLabs/gitoxide/commit/1ee3fc6adf44520ee3397982ec42dbf65a9126f8)) | |
| 252 | + - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b)) | |
| 253 | +</details> | |
| 254 | + | |
| 255 | +## 0.19.0 (2026-07-23) | |
| 9 | 256 | |
| 10 | 257 | ### 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 | 288 | <csr-read-only-do-not-edit/> |
| 42 | 289 | |
| 43 | − - 16 commits contributed to the release. | |
| 290 | + - 18 commits contributed to the release. | |
| 44 | 291 | - 31 days passed between releases. |
| 45 | 292 | - 2 commits were understood as [conventional](https://www.conventionalcommits.org). |
| 46 | 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 | 301 | * **[#1832](https://github.com/GitoxideLabs/gitoxide/issues/1832)** |
| 55 | 302 | - Prefer file-name matches when pairing rename candidates, like Git ([`cea5ea7`](https://github.com/GitoxideLabs/gitoxide/commit/cea5ea77b57f840de618e1d15508add8293f30f2)) |
| 56 | 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 | 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 | 307 | - Merge pull request #2737 from GitoxideLabs/encoding-fallback-pony ([`2315ede`](https://github.com/GitoxideLabs/gitoxide/commit/2315ede714da6a43c885ed534f37901b2e1db687)) |
| 59 | 308 | - Adapt to changes in `gix-filter` ([`552402f`](https://github.com/GitoxideLabs/gitoxide/commit/552402f6147b8ed4f412b9d24bf8408320b4a5d8)) |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | [package] |
| 2 | 2 | name = "gix-merge" |
| 3 | −version = "0.20.0" | |
| 3 | +version = "0.20.1" | |
| 4 | 4 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 5 | 5 | license = "MIT OR Apache-2.0" |
| 6 | 6 | description = "A crate of the gitoxide project implementing merge algorithms" |
| @@ -38,9 +38,9 @@ gix-fs = { version = "^0.22.1", path = "../gix-fs" } · 31 unmodified lines | ||
| 38 | 38 | gix-tempfile = { version = "^24.0.0", path = "../gix-tempfile" } |
| 39 | 39 | gix-trace = { version = "^0.1.21", path = "../gix-trace" } |
| 40 | 40 | gix-quote = { version = "^0.8.0", path = "../gix-quote" } |
| 41 | −gix-revision = { version = "^0.49.0", path = "../gix-revision", default-features = false, features = ["merge_base"] } | |
| 41 | +gix-revision = { version = "^0.49.1", path = "../gix-revision", default-features = false, features = ["merge_base"] } | |
| 42 | 42 | gix-revwalk = { version = "^0.35.0", path = "../gix-revwalk" } |
| 43 | −gix-diff = { version = "^0.67.0", path = "../gix-diff", default-features = false, features = ["blob"] } | |
| 43 | +gix-diff = { version = "^0.67.1", path = "../gix-diff", default-features = false, features = ["blob"] } | |
| 44 | 44 | gix-index = { version = "^0.55.0", path = "../gix-index" } |
| 45 | 45 | imara-diff = { package = "gix-imara-diff", version = "^0.2.5", path = "../gix-imara-diff" } |
| 46 | 46 | |
| @@ -5,13 +5,36 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines | ||
| 5 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | 6 | and 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 | 31 | ## 0.35.0 (2026-08-22) |
| 9 | 32 | |
| 10 | 33 | ### Commit Statistics |
| 11 | 34 | |
| 12 | 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 | 38 | - 30 days passed between releases. |
| 16 | 39 | - 0 commits were understood as [conventional](https://www.conventionalcommits.org). |
| 17 | 40 | - 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 | 46 | <details><summary>view details</summary> |
| 24 | 47 | |
| 25 | 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 | 50 | - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb)) |
| 27 | 51 | - Merge pull request #2919 from cruessler/require-object-hash-in-file-store-at ([`e5452ba`](https://github.com/GitoxideLabs/gitoxide/commit/e5452baec8ad94736a9f489ec5135c46091eab97)) |
| 28 | 52 | - Adapt to changes in `gix-ref` ([`5810922`](https://github.com/GitoxideLabs/gitoxide/commit/5810922cdb1c2028236b923f6003db7445da35ea)) |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-negotiate" |
| 5 | −version = "0.35.0" | |
| 5 | +version = "0.35.1" | |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | 7 | license = "MIT OR Apache-2.0" |
| 8 | 8 | description = "A crate of the gitoxide project implementing negotiation algorithms" |
| @@ -5,6 +5,149 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines | ||
| 5 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | 6 | and 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 | 151 | ## 0.0.0 (2023-08-17) |
| 9 | 152 | |
| 10 | 153 | An empty crate without any content to reserve the name for the gitoxide project. |
| @@ -32,9 +175,9 @@ An empty crate without any content to reserve the name for the gitoxide project. · 21 unmodified lines | ||
| 32 | 175 | |
| 33 | 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 | 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 | 182 | ### 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 | 186 | <details><summary>view details</summary> |
| 44 | 187 | |
| 45 | − * **[#691](https://github.com/Byron/gitoxide/issues/691)** | |
| 46 | − - Set `rust-version` to 1.64 ([`55066ce`](https://github.com/Byron/gitoxide/commit/55066ce5fd71209abb5d84da2998b903504584bb)) | |
| 188 | + * **[#691](https://github.com/GitoxideLabs/gitoxide/issues/691)** | |
| 189 | + - Set `rust-version` to 1.64 ([`55066ce`](https://github.com/GitoxideLabs/gitoxide/commit/55066ce5fd71209abb5d84da2998b903504584bb)) | |
| 47 | 190 | * **Uncategorized** |
| 48 | − - Don't call crate 'WIP' in manifest anymore. ([`229bd48`](https://github.com/Byron/gitoxide/commit/229bd4899213f749a7cc124aa2b82a1368fba40f)) | |
| 49 | − - Update license field following SPDX 2.1 license expression standard ([`9064ea3`](https://github.com/Byron/gitoxide/commit/9064ea31fae4dc59a56bdd3a06c0ddc990ee689e)) | |
| 50 | − - Merge branch 'corpus' ([`aa16c8c`](https://github.com/Byron/gitoxide/commit/aa16c8ce91452a3e3063cf1cf0240b6014c4743f)) | |
| 51 | − - Change MSRV to 1.65 ([`4f635fc`](https://github.com/Byron/gitoxide/commit/4f635fc4429350bae2582d25de86429969d28f30)) | |
| 52 | − - Merge branch 'main' into auto-clippy ([`3ef5c90`](https://github.com/Byron/gitoxide/commit/3ef5c90aebce23385815f1df674c1d28d58b4b0d)) | |
| 53 | − - Merge branch 'blinxen/main' ([`9375cd7`](https://github.com/Byron/gitoxide/commit/9375cd75b01aa22a0e2eed6305fe45fabfd6c1ac)) | |
| 54 | − - Include license files in all crates ([`facaaf6`](https://github.com/Byron/gitoxide/commit/facaaf633f01c857dcf2572c6dbe0a92b7105c1c)) | |
| 55 | − - Merge branch 'rename-crates' into inform-about-gix-rename ([`c9275b9`](https://github.com/Byron/gitoxide/commit/c9275b99ea43949306d93775d9d78c98fb86cfb1)) | |
| 56 | − - Adjust to renaming of `git-note` to `gix-note` ([`9cc9ae2`](https://github.com/Byron/gitoxide/commit/9cc9ae28102bca9c5eac4c7699be7029e7f7697f)) | |
| 57 | − - Rename `git-note` to `gix-note` ([`794b485`](https://github.com/Byron/gitoxide/commit/794b485e40728aba3a364455210a2035e7ba9fbd)) | |
| 58 | − - Merge branch 'main' into http-config ([`bcd9654`](https://github.com/Byron/gitoxide/commit/bcd9654e56169799eb706646da6ee1f4ef2021a9)) | |
| 59 | − - Merge branch 'version2021' ([`0e4462d`](https://github.com/Byron/gitoxide/commit/0e4462df7a5166fe85c23a779462cdca8ee013e8)) | |
| 60 | − - Upgrade edition to 2021 in most crates. ([`3d8fa8f`](https://github.com/Byron/gitoxide/commit/3d8fa8fef9800b1576beab8a5bc39b821157a5ed)) | |
| 61 | − - Merge branch 'main' into index-from-tree ([`bc64b96`](https://github.com/Byron/gitoxide/commit/bc64b96a2ec781c72d1d4daad38aa7fb8b74f99b)) | |
| 62 | − - Merge branch 'main' into remote-ls-refs ([`e2ee3de`](https://github.com/Byron/gitoxide/commit/e2ee3ded97e5c449933712883535b30d151c7c78)) | |
| 63 | − - Merge branch 'docsrs-show-features' ([`31c2351`](https://github.com/Byron/gitoxide/commit/31c235140cad212d16a56195763fbddd971d87ce)) | |
| 64 | − - Uniformize deny attributes ([`f7f136d`](https://github.com/Byron/gitoxide/commit/f7f136dbe4f86e7dee1d54835c420ec07c96cd78)) | |
| 65 | − - Remove default link to cargo doc everywhere ([`533e887`](https://github.com/Byron/gitoxide/commit/533e887e80c5f7ede8392884562e1c5ba56fb9a8)) | |
| 66 | − - Release git-note v0.0.0 ([`2dcb3f3`](https://github.com/Byron/gitoxide/commit/2dcb3f3e030bc87914c7c58ce2916d81649aa0d9)) | |
| 67 | − - Empty crate for git-note ([`2fb8b46`](https://github.com/Byron/gitoxide/commit/2fb8b46abd3905bdf654977e77ec2f36f09e754f)) | |
| 191 | + - Release gix-tix v0.0.0, gix-note v0.0.0, gix-lfs v0.0.0, gix-fetchhead v0.0.0, gix-sequencer v0.0.0, gix-rebase v0.0.0 ([`0199927`](https://github.com/GitoxideLabs/gitoxide/commit/019992765d3cfc2627cf57e82771c006726c8fbc)) | |
| 192 | + - Don't call crate 'WIP' in manifest anymore. ([`229bd48`](https://github.com/GitoxideLabs/gitoxide/commit/229bd4899213f749a7cc124aa2b82a1368fba40f)) | |
| 193 | + - Update license field following SPDX 2.1 license expression standard ([`9064ea3`](https://github.com/GitoxideLabs/gitoxide/commit/9064ea31fae4dc59a56bdd3a06c0ddc990ee689e)) | |
| 194 | + - Merge branch 'corpus' ([`aa16c8c`](https://github.com/GitoxideLabs/gitoxide/commit/aa16c8ce91452a3e3063cf1cf0240b6014c4743f)) | |
| 195 | + - Change MSRV to 1.65 ([`4f635fc`](https://github.com/GitoxideLabs/gitoxide/commit/4f635fc4429350bae2582d25de86429969d28f30)) | |
| 196 | + - Merge branch 'main' into auto-clippy ([`3ef5c90`](https://github.com/GitoxideLabs/gitoxide/commit/3ef5c90aebce23385815f1df674c1d28d58b4b0d)) | |
| 197 | + - Merge branch 'blinxen/main' ([`9375cd7`](https://github.com/GitoxideLabs/gitoxide/commit/9375cd75b01aa22a0e2eed6305fe45fabfd6c1ac)) | |
| 198 | + - Include license files in all crates ([`facaaf6`](https://github.com/GitoxideLabs/gitoxide/commit/facaaf633f01c857dcf2572c6dbe0a92b7105c1c)) | |
| 199 | + - Merge branch 'rename-crates' into inform-about-gix-rename ([`c9275b9`](https://github.com/GitoxideLabs/gitoxide/commit/c9275b99ea43949306d93775d9d78c98fb86cfb1)) | |
| 200 | + - Adjust to renaming of `git-note` to `gix-note` ([`9cc9ae2`](https://github.com/GitoxideLabs/gitoxide/commit/9cc9ae28102bca9c5eac4c7699be7029e7f7697f)) | |
| 201 | + - Rename `git-note` to `gix-note` ([`794b485`](https://github.com/GitoxideLabs/gitoxide/commit/794b485e40728aba3a364455210a2035e7ba9fbd)) | |
| 202 | + - Merge branch 'main' into http-config ([`bcd9654`](https://github.com/GitoxideLabs/gitoxide/commit/bcd9654e56169799eb706646da6ee1f4ef2021a9)) | |
| 203 | + - Merge branch 'version2021' ([`0e4462d`](https://github.com/GitoxideLabs/gitoxide/commit/0e4462df7a5166fe85c23a779462cdca8ee013e8)) | |
| 204 | + - Upgrade edition to 2021 in most crates. ([`3d8fa8f`](https://github.com/GitoxideLabs/gitoxide/commit/3d8fa8fef9800b1576beab8a5bc39b821157a5ed)) | |
| 205 | + - Merge branch 'main' into index-from-tree ([`bc64b96`](https://github.com/GitoxideLabs/gitoxide/commit/bc64b96a2ec781c72d1d4daad38aa7fb8b74f99b)) | |
| 206 | + - Merge branch 'main' into remote-ls-refs ([`e2ee3de`](https://github.com/GitoxideLabs/gitoxide/commit/e2ee3ded97e5c449933712883535b30d151c7c78)) | |
| 207 | + - Merge branch 'docsrs-show-features' ([`31c2351`](https://github.com/GitoxideLabs/gitoxide/commit/31c235140cad212d16a56195763fbddd971d87ce)) | |
| 208 | + - Uniformize deny attributes ([`f7f136d`](https://github.com/GitoxideLabs/gitoxide/commit/f7f136dbe4f86e7dee1d54835c420ec07c96cd78)) | |
| 209 | + - Remove default link to cargo doc everywhere ([`533e887`](https://github.com/GitoxideLabs/gitoxide/commit/533e887e80c5f7ede8392884562e1c5ba56fb9a8)) | |
| 210 | + - Release git-note v0.0.0 ([`2dcb3f3`](https://github.com/GitoxideLabs/gitoxide/commit/2dcb3f3e030bc87914c7c58ce2916d81649aa0d9)) | |
| 211 | + - Empty crate for git-note ([`2fb8b46`](https://github.com/GitoxideLabs/gitoxide/commit/2fb8b46abd3905bdf654977e77ec2f36f09e754f)) | |
| 68 | 212 | </details> |
| 69 | 213 | |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-note" |
| 5 | −version = "0.1.0" | |
| 5 | +version = "0.1.1" | |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | 7 | license = "MIT OR Apache-2.0" |
| 8 | 8 | description = "A crate of the gitoxide project dealing with git notes" |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-pack" |
| 5 | −version = "0.74.1" | |
| 5 | +version = "0.74.2" | |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | 7 | authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"] |
| 8 | 8 | license = "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 | 57 | # for streaming of packs (input, output) |
| 58 | 58 | gix-traverse = { version = "^0.61.0", path = "../gix-traverse", optional = true } |
| 59 | −gix-diff = { version = "^0.67.0", path = "../gix-diff", default-features = false, optional = true } | |
| 59 | +gix-diff = { version = "^0.67.1", path = "../gix-diff", default-features = false, optional = true } | |
| 60 | 60 | |
| 61 | 61 | memmap2 = "0.9.11" |
| 62 | 62 | smallvec = "1.15.1" |
| @@ -5,13 +5,34 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines | ||
| 5 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | 6 | and 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 | 29 | ## 0.22.1 (2026-08-23) |
| 9 | 30 | |
| 10 | 31 | ### Commit Statistics |
| 11 | 32 | |
| 12 | 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 | 36 | - 31 days passed between releases. |
| 16 | 37 | - 0 commits were understood as [conventional](https://www.conventionalcommits.org). |
| 17 | 38 | - 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 | 44 | <details><summary>view details</summary> |
| 24 | 45 | |
| 25 | 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 | 48 | - Use fundamental-type comparisons throughout tests ([`47536a5`](https://github.com/GitoxideLabs/gitoxide/commit/47536a5c2b22da3a9f4892c8af5e460c2d5bda0a)) |
| 27 | 49 | - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b)) |
| 28 | 50 | </details> |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-packetline" |
| 5 | −version = "0.22.1" | |
| 5 | +version = "0.22.2" | |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | 7 | license = "MIT OR Apache-2.0" |
| 8 | 8 | description = "A crate of the gitoxide project implementing the pkt-line serialization format" |
| @@ -5,13 +5,37 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines | ||
| 5 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | 6 | and 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 | 32 | ## 0.65.0 (2026-08-22) |
| 9 | 33 | |
| 10 | 34 | ### Commit Statistics |
| 11 | 35 | |
| 12 | 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 | 39 | - 30 days passed between releases. |
| 16 | 40 | - 0 commits were understood as [conventional](https://www.conventionalcommits.org). |
| 17 | 41 | - 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 | 47 | <details><summary>view details</summary> |
| 24 | 48 | |
| 25 | 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 | 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 | 52 | - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb)) |
| 28 | 53 | - Merge pull request #2867 from GitoxideLabs/fix-url-authority-parsing ([`cc3ee80`](https://github.com/GitoxideLabs/gitoxide/commit/cc3ee8060ad7a32ee8d2eb9139854be7f7561b70)) |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-protocol" |
| 5 | −version = "0.65.0" | |
| 5 | +version = "0.65.1" | |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | 7 | license = "MIT OR Apache-2.0" |
| 8 | 8 | description = "A crate of the gitoxide project for implementing git protocols" |
| @@ -75,20 +75,20 @@ required-features = ["async-client"] · 66 unmodified lines | ||
| 75 | 75 | gix-features = { version = "^0.49.1", path = "../gix-features", features = [ |
| 76 | 76 | "progress", |
| 77 | 77 | ] } |
| 78 | −gix-transport = { version = "^0.59.0", path = "../gix-transport" } | |
| 78 | +gix-transport = { version = "^0.59.1", path = "../gix-transport" } | |
| 79 | 79 | gix-hash = { version = "^0.26.2", path = "../gix-hash" } |
| 80 | 80 | gix-shallow = { version = "^0.13.0", path = "../gix-shallow" } |
| 81 | 81 | gix-date = { version = "^0.16.0", path = "../gix-date" } |
| 82 | 82 | gix-utils = { version = "^0.3.6", path = "../gix-utils" } |
| 83 | 83 | gix-ref = { version = "^0.67.1", path = "../gix-ref" } |
| 84 | −gix-macros = { version = "^0.1.5", path = "../gix-macros" } | |
| 84 | +gix-macros = { version = "^0.1.6", path = "../gix-macros" } | |
| 85 | 85 | |
| 86 | 86 | gix-trace = { version = "^0.1.21", path = "../gix-trace", optional = true } |
| 87 | −gix-negotiate = { version = "^0.35.0", path = "../gix-negotiate", optional = true } | |
| 87 | +gix-negotiate = { version = "^0.35.1", path = "../gix-negotiate", optional = true } | |
| 88 | 88 | gix-object = { version = "^0.64.1", path = "../gix-object", optional = true } |
| 89 | 89 | gix-revwalk = { version = "^0.35.0", path = "../gix-revwalk", optional = true } |
| 90 | 90 | gix-credentials = { version = "^0.40.0", path = "../gix-credentials", optional = true } |
| 91 | −gix-refspec = { version = "^0.45.0", path = "../gix-refspec", optional = true } | |
| 91 | +gix-refspec = { version = "^0.45.1", path = "../gix-refspec", optional = true } | |
| 92 | 92 | gix-lock = { version = "^24.0.0", path = "../gix-lock", optional = true } |
| 93 | 93 | |
| 94 | 94 | thiserror = "2.0.18" |
| @@ -110,7 +110,7 @@ document-features = { version = "0.2.0", optional = true } · 15 unmodified lines | ||
| 110 | 110 | |
| 111 | 111 | [dev-dependencies] |
| 112 | 112 | async-std = { version = "1.9.0", features = ["attributes"] } |
| 113 | −gix-packetline = { path = "../gix-packetline", version = "^0.22.1" } | |
| 113 | +gix-packetline = { path = "../gix-packetline", version = "^0.22.2" } | |
| 114 | 114 | gix-protocol = { path = "../gix-protocol", features = ["sha1"] } |
| 115 | 115 | |
| 116 | 116 | [package.metadata.docs.rs] |
| @@ -5,13 +5,139 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines | ||
| 5 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | 6 | and 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 | 134 | ## 0.44.0 (2026-07-23) |
| 9 | 135 | |
| 10 | 136 | ### Commit Statistics |
| 11 | 137 | |
| 12 | 138 | <csr-read-only-do-not-edit/> |
| 13 | 139 | |
| 14 | − - 7 commits contributed to the release. | |
| 140 | + - 8 commits contributed to the release. | |
| 15 | 141 | - 31 days passed between releases. |
| 16 | 142 | - 0 commits were understood as [conventional](https://www.conventionalcommits.org). |
| 17 | 143 | - 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 | 149 | <details><summary>view details</summary> |
| 24 | 150 | |
| 25 | 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 | 153 | - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f)) |
| 27 | 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 | 155 | - Merge pull request #2722 from GitoxideLabs/reasons ([`c16b5a1`](https://github.com/GitoxideLabs/gitoxide/commit/c16b5a1892704b7c72a253bdd74a6848dd61032a)) |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-refspec" |
| 5 | −version = "0.45.0" | |
| 5 | +version = "0.45.1" | |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | 7 | license = "MIT OR Apache-2.0" |
| 8 | 8 | description = "A crate of the gitoxide project for parsing and representing refspecs" |
| @@ -5,13 +5,126 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines | ||
| 5 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | 6 | and 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 | 121 | ## 0.48.0 (2026-07-23) |
| 9 | 122 | |
| 10 | 123 | ### Commit Statistics |
| 11 | 124 | |
| 12 | 125 | <csr-read-only-do-not-edit/> |
| 13 | 126 | |
| 14 | − - 7 commits contributed to the release. | |
| 127 | + - 8 commits contributed to the release. | |
| 15 | 128 | - 31 days passed between releases. |
| 16 | 129 | - 0 commits were understood as [conventional](https://www.conventionalcommits.org). |
| 17 | 130 | - 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 | 136 | <details><summary>view details</summary> |
| 24 | 137 | |
| 25 | 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 | 140 | - Update changelogs prior to release ([`cb6ec7d`](https://github.com/GitoxideLabs/gitoxide/commit/cb6ec7dce283943d811b1600b577f586d7a13e1f)) |
| 27 | 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 | 142 | - Merge pull request #2722 from GitoxideLabs/reasons ([`c16b5a1`](https://github.com/GitoxideLabs/gitoxide/commit/c16b5a1892704b7c72a253bdd74a6848dd61032a)) |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-revision" |
| 5 | −version = "0.49.0" | |
| 5 | +version = "0.49.1" | |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | 7 | license = "MIT OR Apache-2.0" |
| 8 | 8 | description = "A crate of the gitoxide project dealing with finding names for revisions and parsing specifications" |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-status" |
| 5 | −version = "0.34.0" | |
| 5 | +version = "0.34.1" | |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | 7 | license = "MIT OR Apache-2.0" |
| 8 | 8 | description = "A crate of the gitoxide project dealing with 'git status'-like functionality" |
| @@ -35,8 +35,8 @@ gix-filter = { version = "^0.34.0", path = "../gix-filter" } · 26 unmodified lines | ||
| 35 | 35 | gix-worktree = { version = "^0.56.0", path = "../gix-worktree", default-features = false, features = ["attributes"] } |
| 36 | 36 | gix-pathspec = { version = "^0.20.0", path = "../gix-pathspec" } |
| 37 | 37 | |
| 38 | −gix-dir = { version = "^0.29.0", path = "../gix-dir", optional = true } | |
| 39 | −gix-diff = { version = "^0.67.0", path = "../gix-diff", default-features = false, features = ["blob"], optional = true } | |
| 38 | +gix-dir = { version = "^0.29.1", path = "../gix-dir", optional = true } | |
| 39 | +gix-diff = { version = "^0.67.1", path = "../gix-diff", default-features = false, features = ["blob"], optional = true } | |
| 40 | 40 | |
| 41 | 41 | thiserror = "2.0.18" |
| 42 | 42 | filetime = "0.2.29" |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-tix" |
| 5 | −version = "0.2.0" | |
| 5 | +version = "0.3.0" | |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | 7 | license = "MIT OR Apache-2.0" |
| 8 | 8 | description = "A tool like `tig`, but minimal, fast and efficient" |
| @@ -27,7 +27,7 @@ anyhow = "1.0.98" · 18 unmodified lines | ||
| 27 | 27 | clap = { version = "4.5.42", features = ["derive"] } |
| 28 | 28 | crossterm = { version = "0.29.0", features = ["osc52"] } |
| 29 | 29 | directories = "6.0.0" |
| 30 | −gix = { version = "^0.87.0", path = "../gix", default-features = false, features = ["blob-diff", "mailmap", "merge", "notes", "parallel", "revision", "command", "status"] } | |
| 30 | +gix = { version = "^0.87.1", path = "../gix", default-features = false, features = ["blob-diff", "mailmap", "merge", "notes", "parallel", "revision", "command", "status"] } | |
| 31 | 31 | notify = "8.2.0" |
| 32 | 32 | ratatui = { version = "0.30.2", default-features = false, features = ["crossterm", "unstable-rendered-line-info"] } |
| 33 | 33 | terminal-colorsaurus = "1.0.3" |
| @@ -5,6 +5,74 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines | ||
| 5 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | 6 | and 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 | 76 | ## 0.58.1 (2026-08-03) |
| 9 | 77 | |
| 10 | 78 | ### 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 | 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 | 103 | - 11 days passed between releases. |
| 36 | 104 | - 2 commits were understood as [conventional](https://www.conventionalcommits.org). |
| 37 | 105 | - 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 | 111 | <details><summary>view details</summary> |
| 44 | 112 | |
| 45 | 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 | 115 | - Preserve encoded HTTP paths across redirects. ([`60850df`](https://github.com/GitoxideLabs/gitoxide/commit/60850df267f902ef6b65e8211e6d40aeb45e1970)) |
| 47 | 116 | - Terminate URL authorities at query and fragment delimiters. ([`156b53d`](https://github.com/GitoxideLabs/gitoxide/commit/156b53de2b7d93087aceee623965110a19750d37)) |
| 48 | 117 | - Merge pull request #2812 from GitoxideLabs/report-july ([`ae8845a`](https://github.com/GitoxideLabs/gitoxide/commit/ae8845a47c4c87e0996a119822106cf09036340b)) |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-transport" |
| 5 | −version = "0.59.0" | |
| 5 | +version = "0.59.1" | |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | 7 | license = "MIT OR Apache-2.0" |
| 8 | 8 | description = "A crate of the gitoxide project dedicated to implementing the git transport layer" |
| @@ -96,7 +96,7 @@ gix-path = { version = "^0.12.5", path = "../gix-path" } · 87 unmodified lines | ||
| 96 | 96 | gix-features = { version = "^0.49.1", path = "../gix-features" } |
| 97 | 97 | gix-url = { version = "^0.38.0", path = "../gix-url" } |
| 98 | 98 | gix-sec = { version = "^0.14.2", path = "../gix-sec" } |
| 99 | −gix-packetline = { version = "^0.22.1", path = "../gix-packetline" } | |
| 99 | +gix-packetline = { version = "^0.22.2", path = "../gix-packetline" } | |
| 100 | 100 | gix-credentials = { version = "^0.40.0", path = "../gix-credentials", optional = true } |
| 101 | 101 | gix-quote = { version = "^0.8.0", path = "../gix-quote" } |
| 102 | 102 | |
| @@ -5,13 +5,36 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines | ||
| 5 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | 6 | and 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 | 31 | ## 0.34.0 (2026-08-22) |
| 9 | 32 | |
| 10 | 33 | ### Commit Statistics |
| 11 | 34 | |
| 12 | 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 | 38 | - 30 days passed between releases. |
| 16 | 39 | - 0 commits were understood as [conventional](https://www.conventionalcommits.org). |
| 17 | 40 | - 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 | 46 | <details><summary>view details</summary> |
| 24 | 47 | |
| 25 | 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 | 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 | 51 | - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb)) |
| 28 | 52 | - Merge pull request #2905 from GitoxideLabs/various-improvements ([`f3bbfad`](https://github.com/GitoxideLabs/gitoxide/commit/f3bbfadd4b4f1d72c85c62eb3d7ae337c922f945)) |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-worktree-state" |
| 5 | −version = "0.34.0" | |
| 5 | +version = "0.34.1" | |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | 7 | license = "MIT OR Apache-2.0" |
| 8 | 8 | description = "A crate of the gitoxide project implementing setting the worktree to a particular state" |
| @@ -5,13 +5,36 @@ All notable changes to this project will be documented in this file. · 4 unmodified lines | ||
| 5 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | 6 | and 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 | 31 | ## 0.36.0 (2026-08-22) |
| 9 | 32 | |
| 10 | 33 | ### Commit Statistics |
| 11 | 34 | |
| 12 | 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 | 38 | - 30 days passed between releases. |
| 16 | 39 | - 0 commits were understood as [conventional](https://www.conventionalcommits.org). |
| 17 | 40 | - 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 | 46 | <details><summary>view details</summary> |
| 24 | 47 | |
| 25 | 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 | 50 | - Update manifests prior to release ([`ebe9095`](https://github.com/GitoxideLabs/gitoxide/commit/ebe9095f2888d3c12447ea5eed9d0afdb0fd5aeb)) |
| 27 | 51 | - Merge pull request #2901 from cruessler/switch-to-gix-odb-at-opts ([`2a4d996`](https://github.com/GitoxideLabs/gitoxide/commit/2a4d996ca53bd38a5e9889da0b180580315d905f)) |
| 28 | 52 | - Introduce `Store::at()` where possible ([`17fea2a`](https://github.com/GitoxideLabs/gitoxide/commit/17fea2ab8a1c23f2e8bc50b78b90feb1e361f66a)) |
| @@ -2,7 +2,7 @@ lints.workspace = true · 1 unmodified line | ||
| 2 | 2 | |
| 3 | 3 | [package] |
| 4 | 4 | name = "gix-worktree-stream" |
| 5 | −version = "0.36.0" | |
| 5 | +version = "0.36.1" | |
| 6 | 6 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 7 | 7 | license = "MIT OR Apache-2.0" |
| 8 | 8 | description = "generate a byte-stream from a git-tree" |
| @@ -5,7 +5,7 @@ name = "gix" · 4 unmodified lines | ||
| 5 | 5 | repository = "https://github.com/GitoxideLabs/gitoxide" |
| 6 | 6 | description = "Interact with git repositories just like git would" |
| 7 | 7 | license = "MIT OR Apache-2.0" |
| 8 | −version = "0.87.0" | |
| 8 | +version = "0.87.1" | |
| 9 | 9 | authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"] |
| 10 | 10 | edition = "2024" |
| 11 | 11 | include = ["/src/**/*", "/LICENSE-*"] |
| @@ -338,9 +338,9 @@ gix-lock = { version = "^24.0.0", path = "../gix-lock" } · 326 unmodified lines | ||
| 338 | 338 | gix-validate = { version = "^0.11.4", path = "../gix-validate" } |
| 339 | 339 | gix-sec = { version = "^0.14.2", path = "../gix-sec" } |
| 340 | 340 | gix-date = { version = "^0.16.0", path = "../gix-date" } |
| 341 | −gix-refspec = { version = "^0.45.0", path = "../gix-refspec" } | |
| 341 | +gix-refspec = { version = "^0.45.1", path = "../gix-refspec" } | |
| 342 | 342 | gix-filter = { version = "^0.34.0", path = "../gix-filter", optional = true } |
| 343 | −gix-dir = { version = "^0.29.0", path = "../gix-dir", optional = true } | |
| 343 | +gix-dir = { version = "^0.29.1", path = "../gix-dir", optional = true } | |
| 344 | 344 | |
| 345 | 345 | gix-config = { version = "^0.60.0", path = "../gix-config" } |
| 346 | 346 | gix-odb = { version = "^0.84.0", path = "../gix-odb" } |
| @@ -349,21 +349,21 @@ gix-hash = { version = "^0.26.2", path = "../gix-hash" } · 2 unmodified lines | ||
| 349 | 349 | gix-shallow = { version = "^0.13.0", path = "../gix-shallow" } |
| 350 | 350 | gix-object = { version = "^0.64.1", path = "../gix-object" } |
| 351 | 351 | gix-actor = { version = "^0.42.0", path = "../gix-actor" } |
| 352 | −gix-pack = { version = "^0.74.1", path = "../gix-pack", default-features = false, features = [ | |
| 352 | +gix-pack = { version = "^0.74.2", path = "../gix-pack", default-features = false, features = [ | |
| 353 | 353 | "object-cache-dynamic", |
| 354 | 354 | ] } |
| 355 | −gix-revision = { version = "^0.49.0", path = "../gix-revision", default-features = false } | |
| 355 | +gix-revision = { version = "^0.49.1", path = "../gix-revision", default-features = false } | |
| 356 | 356 | gix-revwalk = { version = "^0.35.0", path = "../gix-revwalk" } |
| 357 | −gix-negotiate = { version = "^0.35.0", path = "../gix-negotiate", optional = true } | |
| 357 | +gix-negotiate = { version = "^0.35.1", path = "../gix-negotiate", optional = true } | |
| 358 | 358 | |
| 359 | 359 | gix-path = { version = "^0.12.5", path = "../gix-path" } |
| 360 | 360 | gix-quote = { version = "^0.8.0", path = "../gix-quote" } |
| 361 | 361 | gix-url = { version = "^0.38.0", path = "../gix-url" } |
| 362 | 362 | gix-traverse = { version = "^0.61.0", path = "../gix-traverse" } |
| 363 | −gix-diff = { version = "^0.67.0", path = "../gix-diff", default-features = false } | |
| 364 | −gix-merge = { version = "^0.20.0", path = "../gix-merge", default-features = false, optional = true } | |
| 365 | −gix-mailmap = { version = "^0.34.0", path = "../gix-mailmap", optional = true } | |
| 366 | −gix-note = { version = "^0.1.0", path = "../gix-note", optional = true } | |
| 363 | +gix-diff = { version = "^0.67.1", path = "../gix-diff", default-features = false } | |
| 364 | +gix-merge = { version = "^0.20.1", path = "../gix-merge", default-features = false, optional = true } | |
| 365 | +gix-mailmap = { version = "^0.34.1", path = "../gix-mailmap", optional = true } | |
| 366 | +gix-note = { version = "^0.1.1", path = "../gix-note", optional = true } | |
| 367 | 367 | gix-features = { version = "^0.49.1", path = "../gix-features", features = [ |
| 368 | 368 | "progress", |
| 369 | 369 | "once_cell", |
| @@ -377,23 +377,23 @@ gix-index = { version = "^0.55.0", path = "../gix-index", optional = true } · 7 unmodified lines | ||
| 377 | 377 | gix-attributes = { version = "^0.35.0", path = "../gix-attributes", optional = true } |
| 378 | 378 | gix-ignore = { version = "^0.22.1", path = "../gix-ignore", optional = true } |
| 379 | 379 | gix-worktree = { version = "^0.56.0", path = "../gix-worktree", optional = true, default-features = false } |
| 380 | −gix-worktree-state = { version = "^0.34.0", path = "../gix-worktree-state", optional = true } | |
| 380 | +gix-worktree-state = { version = "^0.34.1", path = "../gix-worktree-state", optional = true } | |
| 381 | 381 | gix-hashtable = { version = "^0.16.0", path = "../gix-hashtable" } |
| 382 | 382 | gix-commitgraph = { version = "^0.39.0", path = "../gix-commitgraph" } |
| 383 | 383 | gix-pathspec = { version = "^0.20.0", path = "../gix-pathspec", optional = true } |
| 384 | 384 | gix-submodule = { version = "^0.34.0", path = "../gix-submodule", optional = true } |
| 385 | −gix-status = { version = "^0.34.0", path = "../gix-status", optional = true, features = [ | |
| 385 | +gix-status = { version = "^0.34.1", path = "../gix-status", optional = true, features = [ | |
| 386 | 386 | "worktree-rewrites", |
| 387 | 387 | ] } |
| 388 | 388 | gix-command = { version = "^0.10.0", path = "../gix-command", optional = true } |
| 389 | 389 | |
| 390 | −gix-worktree-stream = { version = "^0.36.0", path = "../gix-worktree-stream", optional = true } | |
| 391 | −gix-archive = { version = "^0.36.0", path = "../gix-archive", default-features = false, optional = true } | |
| 392 | −gix-blame = { version = "^0.17.0", path = "../gix-blame", optional = true } | |
| 390 | +gix-worktree-stream = { version = "^0.36.1", path = "../gix-worktree-stream", optional = true } | |
| 391 | +gix-archive = { version = "^0.36.1", path = "../gix-archive", default-features = false, optional = true } | |
| 392 | +gix-blame = { version = "^0.17.1", path = "../gix-blame", optional = true } | |
| 393 | 393 | |
| 394 | 394 | # For communication with remotes |
| 395 | −gix-protocol = { version = "^0.65.0", path = "../gix-protocol" } | |
| 396 | −gix-transport = { version = "^0.59.0", path = "../gix-transport", optional = true } | |
| 395 | +gix-protocol = { version = "^0.65.1", path = "../gix-protocol" } | |
| 396 | +gix-transport = { version = "^0.59.1", path = "../gix-transport", optional = true } | |
| 397 | 397 | |
| 398 | 398 | # Just to get the progress-tree feature |
| 399 | 399 | prodash = { version = "31.0.0", optional = true, features = ["progress-tree"] } |
| @@ -17,5 +17,5 @@ path = "src/main.rs" · 16 unmodified lines | ||
| 17 | 17 | [dependencies] |
| 18 | 18 | anyhow = "1.0.102" |
| 19 | 19 | clap = { version = "4.5.60", features = ["derive"] } |
| 20 | −gix = { version = "^0.87.0", path = "../../gix", default-features = false, features = ["attributes", "blame", "blob-diff", "parallel", "revision", "sha1"] } | |
| 20 | +gix = { version = "^0.87.1", path = "../../gix", default-features = false, features = ["attributes", "blame", "blob-diff", "parallel", "revision", "sha1"] } | |
| 21 | 21 | regex = { version = "1.12.3", default-features = false, features = ["std"] } |