NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #4047 most downloaded on crates.io
A crate of the gitoxide project dedicated to implementing a 'blame' algorithm
Last release 13 days ago
25 Sep 2026
Ships on a steady schedule
a new release about every 4 weeks
Nearly every release is documented
notes for 20 of 20 stable releases
1 version withdrawn
withdrawn after publishing
2 years old
21 releases · first in 2025
One column per month.
This releases fixes gix fetch so that it is able to clone or fetch pytorch or other repositories on case-insensitive file systems.
This releases fixes gix fetch so that it is able to clone or fetch pytorch or other repositories on case-insensitive file systems.
It's also an attempt to trigger CI to build binary releases.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
665b53e)c76572b)gitoxide.http.connectTimeout for more control for git clients (2ab80e4)no_proxy environment variable support (f0625de)3d9fb6c)0ec5220)1c012f4)f5499a5)1afaebd)
</details>3 commits contributed to the release over the course of 1 calendar day.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
6704303)e52fe9d)b8914ff)
</details>gix remote ref-map --show-unmapped-remote-refs. That way it's more obvious to see what was filtered out by ref-specs.
<csr-id-e973dfeaf17ca63385496202e9fdcdd912e20f42/> gix remote ref-map --show-unmapped-remote-refs.
That way it's more obvious to see what was filtered out by ref-specs.
It's also great to validate that server-side filtering via ref-prefix will not send refs that are referred to by symbolic refs that are not filtered out. That should be fine as it's all about objects, it's just something to deal with as we may have to deal with symbolic refs that aren't in the set of refs the server sent to us.
<csr-id-b1edb9e3537df86669714f03666f4a88e0ac3709/> diff algorithm is controlled by git configuration diff.algorithm
<csr-id-20259da4ddf9fabfb2d2bd4e2274c0ed42bdb0e5/> ein t hours allows to specify the amount of worker threads.
<csr-id-3a053284cfefe27873dcc5b4f74d63a560bb5d41/> collect stderr and print it afterwards to avoid intersection with line progress.
Previously it would happen that stderr would be printed directly and mix
with the line progress (as in -v) which also prints to stderr.
Now errors are collected and output at the end once the line renderer was already shutdown.
lock_mode from all methods dealing with reference edits.
It is now read from core.filesRefLockTimeout accordingly.gix remote --url in favor of determining the intention similar to git fetch<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
Clippy helped 1 time to make code idiomatic.
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
443a75a)gix remote ref-map --show-unmapped-remote-refs. (e973dfe)diff.algorithm (30d32e7)c8ef759)stderr and print it afterwards to avoid intersection with line progress. (3a05328)clone and print once entire clone is done (9a476df)gix clone (23a5e8b)63947ae)f5e2eeb)core.checkState (8b2aba1)de13c66)gix progress (0e9bd41)d10a82e)init.defaultBranch - now used by custom initialization. (4d6d7bb)gix fetch (c47dcc6)d034882)gix remote --url in favor of determining the intention similar to git fetch (92bbe33)--url for arbitrary urls when fetching (8c7351c)gix fetch (5b72d27)fd18320)lock_mode from all methods dealing with reference edits. (3a0fb1b)7076891)3c188b2)eade88f)6abd5a4)5c0d0ab)65e6496)b42b08a)317e02a)gix progress show (92e082a)ein t hours allows to specify the amount of worker threads. (20259da)ba17db0)index.version for when we can write V4 indices. (da96d34)ad44982)1ec27f8)extension.worktreeConfig (fe1e646)c4e6849)init.templateDir to gix progress (9fab050)ea2136b)def53b3)diff.algorithm (b1edb9e)fa27570)f53f942)git-diff for a 2x speedup when calculating line changes (296f3b6)gix progress records (b05a2e7)de4fe06)6225f35)da5f63c)c8d0345)8c24386)67f2247)01ab5ca)09d767a)507dc7e)1a1e862)clone. variables (8b804a3)702a161)53acf25)f47c891)3c49400)c5c0ac5)8ef3fcb)8dadd70)b862fc5)25a7726)
</details><csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
ebe9095)e5452ba)gix-ref (5810922)0b94ca6)31a98ed)gix-blame (6f626cf)2a4d996)Store::at() where possible (17fea2a)95e0213)2ea191f)c11e5e4)ae8845a)
</details>ein tool hours -s was split into -f|--file-stats and -l|line-stats. That way more information is generated at increasingly high costs.
ein tool hours -s was split into -f|--file-stats and -l|line-stats.
That way more information is generated at increasingly high costs.ein tool hours --stat to collect additional statistics per author.
Note that these are expensive and unconditionally use threads to speed
up these computations.ein tool hours -b ignores bots.
For now it only considers bots with names containing [bot].<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
11851f3)4720666)2237495)f4d8198)ref-map sub-command. (94c2b78)gix commands will now load the git installation configuration (23d2dec)7abc0a3)gix credential (642e21f)26489d1)cf7182e)ein tool hours -b ignores bots. (5d0332f)3773b92)gix index from-tree (2fbd3df)535e967)5c05198)bc64b96)56ba481)791dd66)
</details><csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
842bc44)cb6ec7d)f0ec710)c16b5a1)43ff87a)cf3053a)27aec47)1b1541e)
</details>gix remote refs to list all remote references of a suitable remote. This takes into account either a named remote, or the remote associated with the c
<csr-id-f7f136dbe4f86e7dee1d54835c420ec07c96cd78/>
-c/--config in gixgix remote refs to list all remote references of a suitable remote.
This takes into account either a named remote, or the remote associated
with the current branch, or the default remote it could deduce or obtain
from the configuration.gix free remote ref-list in favor of gix remote refs
The functionality is the same, but the latter is built on top of a
repository which is slightly less flexible, but preferable over
maintaining a non-repo version.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
Clippy helped 1 time to make code idiomatic.
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
gix config. (19c1746)gix free remote ref-list in favor of gix remote refs (dda9957)-c/--config in gix (45a30f0)e0be6e9)df3cf18)gix remote refs to list all remote references of a suitable remote. (5d6d5ca)db4df25)gix remote refs without any implementation. (f8f1249)39d585d)bb6813a)e2ee3de)31c2351)b1c40b0)f7f136d)bd5f3e8)
</details><csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
6428edc)f7d4f33)
</details>Invert behaviour to open::Options::strict_config(), with lenient being the default. This means API users will get libgit2 behaviour but commands like
open::Options::strict_config(), with lenient being the default.
This means API users will get libgit2 behaviour but commands like gix can
change options to emulate git behaviour.--cat-file flag for gix rev parse to cat instead of resolving.gix rev previous-branches subcommandein tools to ein tool for as it's more intuitivegix rev resolve --explain<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
dbaff13)gix-config can be lenient. (6a9c58f)open::Options::strict_config(), with lenient being the default. (0235111)c4bf958)805f432)ein tools to ein tool for as it's more intuitive (edf73dd)a938986)a6d79e3)2f506c7)ce885ad)9b9ea02)6da8250)7b61506)47724c0)4e7b343)e9fcb70)
</details><csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
10c58bb)278d7ec)justfile and automate feature tests (db7b97b)sha1 feature in gix to just set what's needed. (16a6fc4)sha1 and sha256 forwardings for all crates (09b982c)4743361)1980190)e3d5a04)ab2fee1)2cb17b2)e10d5f6)3675a8d)23af41a)gix-testtoolsand rename hash_kind -> object_hash (d9648e8)fbb2e6e)e20122a)GIX_TEST_FIXTURE_HASH for gix-blame (cd028f4)adb8328)
</details>Adjustments due to breaking changes in git_path (`4420ae9`)
gix config with section and sub-section filtering.gix config lists all entries of all configuration files git considers.
Filters allow to narrow down the output.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
Clippy helped 3 times to make code idiomatic.
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
0c597fe)--show-ignore-patterns to gix repo exclude query (09f904b)exclude query (9cb8385)7d98b21)cb56f12)3ff991d)gix repo exclude query (a331314)50ff7aa)gix restructuring (59b95c9)gix config with section and sub-section filtering. (eda39ec)gix config lists all entries of all configuration files git considers. (d99453e)a437abe)8e5b796)5cf08ce)0ed65da)38a8350)72876f1)ac7d99a)c9c78e8)8967fcd)f99c3b2)83585bd)1cdecbc)141c5f1)f4e1810)faaf791)git_path (4420ae9)afecb63)48b3f4a)085e76b)0700b09)89ea12b)0e9df36)229dc91)41ea8ba)05eb340)7cb1972)251b6df)98da8ba)056e8d2)fdec111)4086335)e90d3fd)
</details><csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
53f880c)4d5ba23)
</details>preserve validation classifications after error conversion
ValidationError marker from reference, tag, submodule,gix::Error, including optional reference lookups.raise MSRV to Rust 1.88
The newly published dua-core 3.3 release used by linked-worktree removal
requires Rust 1.88, so raise every workspace crate and the advertised badge
together.
Keep the MSRV checks buildable by selecting the latest sysinfo and rusqlite
release lines that support Rust 1.88.
gix repo commit describe
It supports typical but basic flags mostly similar to the ones in git.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
imara-diff-v2 with git sliders processing
The slider post-processing imrpoves the diff quality for about 8% slower diffs.
Line-counts, however, will be 50% faster to compute.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
Clippy helped 1 time to make code idiomatic.
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
f9fbcba)2a5db88)e4f380e)imara-diff-v2 with git sliders processing (8094f5d)444a92b)3e05ca3)98bae84)
</details>Adapt to changes in gix-features which change Send + Sync to Send + Clone. This happens to allow non-sync implementations (i.e. thread-local), along w
<csr-id-4d2d433e7e98ac42db858688edac06e68ee4d10d/>
Adapt to changes in gix-features which change Send + Sync to Send + Clone. This happens to allow non-sync implementations (i.e. thread-local), along with Sync ones
which usually are Clone too as they are passed by immutable reference (which is Clone + Copy).
Option<impl Progress> in favor of impl ProgressArc around should_interrupt flagindex::verify::Mode::* variants
The hash is repository defined and not hard-codedgix mailmap verify commandein find --debug to learn why it is slow<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
6e0cd6d)bcde935)89428b2)c4c5678)d2bea27)Option<impl Progress> in favor of impl Progress (bf04644)Arc around should_interrupt flag (d851bed)index::verify::Mode::* variants (c2679a0)d04dc01)1ac2c21)34ea001)9277cf8)239e7b2)8bf585d)3fc1622)a8fa53a)07e9081)8cbe85d)89b628a)6c10e09)21c2dd5)e6a3d43)613483b)73a7393)29fb0c8)0e55fbb)a39d476)5388d80)5494fb3)f23b8d2)e90c123)25da30f)0090961)7cf3545)652a0ac)90c6c5a)ein find --debug to learn why it is slow (70109be)aa51e05)ad3c803)025f157)866530a)d6a72e7)338521b)7d2e20c)b0f7328)
</details>sha1 and sha256 features to gix.
This way one can control which hashes are compiled in exactly,
while having reasonable defaults automatically.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
c389a2c)e8bf096)sha1 and sha256 features to gix. (3832916)f7277f3)
</details>This release pins beta versions of clap to avoid it to automatically fetch the latest one during installation.
This release pins beta versions of clap to avoid it to automatically fetch the latest one
during installation.
This is made possible due to clap itself pinning its dependency
to the clap-derive crate.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
ecf90fc)9327b73)
</details>A first usable version of gix to make using gitoxide from your applications so much easier. It serves as a one-stop shop for application developers wi
A first usable version of gix to make using gitoxide from your applications so much easier. It serves as a one-stop shop for application developers without sacrificing performance by default while making common use-cases more convenient.
gix as hub crate for application development with focus on usability without sacrificing any knob to tune performance.async for gix-packetline, gix-transport and gix-protocol for fully async git clients, along with the light-async feature toggle to build a gix pack-receive with an async client instead of a blocking one.gix pack-create with the -s/--statistics flag to have data indicating the cost of the operation. Currently it's doing a lot of work that has to be avoided in order to be useable in production and the numbers underline that. Future iterations will cause key metrics to go down.gix-tempfile crategix-lock crategix-ref crate with complete loose-ref, packed-ref and transaction support.git.gix-object parsing is a few percent faster thanks a reworked error handling for objects. By default, error collection is disabled entirely making the error case zero-sized. If needed, verbose and stacked errors can be turned on using a feature toggle for applications who expect repositories with malformed objects and need detailed diagnostics.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
d66ac10)28fbeb8)f4064e5)0392a6d)90b4769)8bceefb)7ce3c55)f7d0975)
</details>Use std::ControlFlow where possible
std::ops::ControlFlow where possiblegix-error in gix-date
This will make for easier introspection for users of these errors.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
cbbdef5)83c1dfb)562e684)6cff657)gix-commitgraph (1f58905)std::ops::ControlFlow where possible (5c1bd03)ae23762)0a333e5)gix-error in gix-date (5ab19a7)c663b3f)7be8f90)211b4fb)
</details>32 commits contributed to the release over the course of 128 calendar days.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
Clippy helped 3 times to make code idiomatic.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
115e208)d6c5b9d)
</details>These are created to account for breaking changes within the dependency graph of gitoxide crates. Due to some blunders in the past the version on crat…
Maintenance release without any new features.
These are created to account for breaking changes within the dependency graph of
gitoxide crates. Due to some blunders in the past the version on crates.io
could not be installed anymore.
This was eventually fixed with new minor releases across the ecosystem.
Finally, yet another breaking change due to the introduction of the gix-hash
crate to break a dependency cycle between gix-object and gix-features caused
yet another maintenance release.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
Clippy helped 1 time to make code idiomatic.
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
21fecdf)691a205)0b7c1dd)ca9e4b9)blob-experimental to gix-blame (ed9c437)gix-blame to imara-diff 0.2 (2c88262)
</details>Maintenance release without any new features.
Maintenance release without any new features.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
9cb09b2)5c7b52d)2571113)aacf0f0)ca5b801)
</details><csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
82ff92f)663b41e)3313233)
</details>add git_is_space() It's very niche but needed for correctness in globs and git-config parsing.
git_is_space()raise MSRV to Rust 1.88
The newly published dua-core 3.3 release used by linked-worktree removal
requires Rust 1.88, so raise every workspace crate and the advertised badge
together.
Keep the MSRV checks buildable by selecting the latest sysinfo and rusqlite
release lines that support Rust 1.88.
remote-ref-list and pack-receive subcommands to gixindex-from-pack to pack-index-from-data<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
fb1f048)445be27)46a3511)c06d819)487d06d)2fcb557)b38290e)35e26fc)f90b92f)161e7df)5ea49c8)40a6412)386673c)b4a6e16)
</details>BlameRanges
This modification introduces changes to the BlameRanges struct,
converting it into an enum to support both PartialFile and
WholeFile. Internally the ranges in BlameRanges are stored as
zero-based exclusive ranges now.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
89fb308)4da2927)6cc8464)max_lines (9d5b033)5f6d416)BlameRanges (2230fde)7ecbec0)9365cc3)838ff95)42f8db5)gix-ref (44922d0)9222666)gix-blame tests (58cb884)c78af3c)gix-blame tests (4ad2be8)bd47fb5)1ad3da6)dc7343c)79ba9d0)651f9fa)4289ae6)202bc6d)d64f257)589d63e)007e3f6)784c046)
</details>Many small and possibly breaking changes are not mentioned here.
pack-explode and pack-index-from-data sub-commandspack-verifyMany small and possibly breaking changes are not mentioned here.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
34b2373)e71da0f)f59f66e)763d7ca)3a4faec)1931575)181d69c)e509373)d7591e2)c0352c2)91ba045)bca7ce2)584350a)395c7e7)8812e91)657aa2c)1e2ec7e)cc147bc)43c7fd1)9660bbf)44b8221)665696f)ee45c7f)0a33b24)29b9c23)adbc82c)0d31ad1)1805d64)0bcb790)f66b116)f932256)ec8c48a)d3c00c8)5e23137)93a9b30)aeb8778)bb45c3d)ec40e09)bcb275e)41f38c4)a7cfac8)afae684)fbb9f98)2888f1b)f98c5b1)7c5d8b8)
</details><csr-id-81297cf2b85072ad13824f9821a0102dc6497f80/> add debug_track_path and blame_path
<csr-id-d2e98f3cf458121da3d23933d6a7421d70309a20/> follow renames in blame
<csr-id-f1890313c42d8f5b347feef1f48ec53f054dff08/> Add BlameRanges to enable multi-range blame support
This update replaces single-range handling with the BlameRanges type, allowing multiple 1-based inclusive line ranges to be specified for blame operations.
It hides some of the implementation details of the range logic, prepares for compatibility with git behavior, and adds tests to validate multi-range scenarios.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
Clippy helped 2 times to make code idiomatic.
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
5a919c4)65037b5)dab97f7)a9a8ea1)8007f1d)92751b7)dd5f0a4)378b1be)c7a2e80)5d748af)index to BlamePathEntry (90c2bb8)debug_track_path and blame_path (81297cf)e09825a)4bf61f5)073487b)8e2bc0f)2541378)8ba513c)76eddf8)3e5365c)7435ed5)d2e98f3)pretty_assertion::assert_equal (6e6836b)f606bd5)cca22e2)c3f06ae)d2b4c44)83e1b73)b2121bc)ee6f5cc)2f6786b)6e1ea6d)d46766a)dc3c7c9)4423cae)2d2365e)8be3193)gix_traverse::commit::Either::commit_time() (f59a794)de13b16)d4461e7)BlameRanges to enable multi-range blame support (f189031)8d4c4d1)
</details>3 commits contributed to the release.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
e104545)5f7f805)631f07a)
</details>The newly published dua-core 3.3 release used by linked-worktree removal requires Rust 1.88, so raise every workspace crate and the advertised badge t
migrate errors to gix-error
raise MSRV to Rust 1.88
The newly published dua-core 3.3 release used by linked-worktree removal
requires Rust 1.88, so raise every workspace crate and the advertised badge
together.
Keep the MSRV checks buildable by selecting the latest sysinfo and rusqlite
release lines that support Rust 1.88.
gix_date::Time on demand.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
cc5b696)49fa9f3)db0b095)0bf84db)3b1bef7)c3c6504)b07f907)b5e9059)c75bc44)68e6b2e)75b842b)420e730)
</details>Initial release with pack-verify
pack-verify<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
c68d9ab)48c4bbd)1f1b725)cce71aa)f276a05)4aa8022)e2a7bdd)41e01a5)e98e7c2)5fff552)0cc1bf2)aac0d34)af02b46)a4d978c)a1a0b13)5acecc5)1f9bc03)fce7035)b3780f8)13cd8ce)ac490c2)6794300)122d69f)6adf615)5b4979c)7add82c)3bf3321)c416152)60eaea0)caa883b)026a0dd)30925e6)67026e4)aaf4825)b820717)da3ae1c)b1e51d6)0fbba9f)ba6a8ef)f01c298)b09b4e1)0ac9c5a)8c0e0b5)7cec2b6)41f4bce)1179ac1)3ca2c59)aa8efdd)eb7388c)417c34b)87c8a2e)2aa0857)57737c2)c3d319f)
</details><csr-id-f7f136dbe4f86e7dee1d54835c420ec07c96cd78/> <csr-id-533e887e80c5f7ede8392884562e1c5ba56fb9a8/>
<csr-id-e9a493c204979d1a155c198331277662d26aec58/> add diff_algorithm to blame::file()
<csr-id-e08cf8811e25c91ca410963703ce98db32be3681/> add since to blame::file()
<csr-id-1250df3f9c10f66e4b8e227809831f3088482960/> skip uninteresting commits for blame
This is breaking because it takes a commitgraph cache as argument
, and because it replaces the traverse by suspect.
Switch to date order for traversing the commit history, as opposed to
topo order. This is also what git blame does.
Skip suspects that have no associated unblamed hunks
Pass blame to parent in process_change. git’s algorithm only seems
to keep the current suspect for unblamed hunks that were the direct
result of splitting an existing unblamed hunk because it matched with a
change. All other hunks appear to be blamed on the parent without
further checks.
Add assertion that lines always match.
<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
Clippy helped 1 time to make code idiomatic.
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
b41312b)38dff41)544cdaf)gix_traverse::commit::Either::tree_id() (3fad860)85b060c)3c1b1df)dce127e)diff_algorithm to blame::file() (e9a493c)7059609)since to blame::file() (e08cf88)16a248b)8e96ed3)8ab0a6b)odb.find_commit by gix_traverse::commit::find (e09ec3e)aa05ef0)4428838)1250df3)18e163e)a9de4f0)8df0db2)
</details>Add support for statistics and additional performance information.
<csr-id-17835bccb066bbc47cc137e8ec5d9fe7d5665af0/> <csr-id-64ff0a77062d35add1a2dd422bb61075647d1a36/>
range to blame::file()blame plumbing crate to the top-level.
For now, it doesn't come with a simplified gix API though.<csr-read-only-do-not-edit/>
<csr-read-only-do-not-edit/>
<details><summary>view details</summary>
dea106a)7570daa)1f6390c)90fef01)1500c08)range to blame::file() (787cf6f)7ec21bb)rust-version to 1.70 (17835bc)f18a312)50ba3d6)25c2646)ec3cdf1)34096a5)6805beb)a22f13b)360bf38)a3d92b4)59bd978)9ac36bd)f857ca8)7d1416a)f049b00)74565bc)6ed9976)8196a43)667e626)3ac8be1)63ee0f9)b7f1468)b736ace)Error type (845d96a)4ffe6eb)a158d22)f2790a9)gix-blame/lib.rs (26bfd2d)983ec7d)blame plumbing crate to the top-level. (25efbfb)gix-blame. (d27adf7)795962b)64ff0a7)7c2af44)694ebad)37ba461)2e0ce50)e6fbea9)6d71e0d)gix-blame crate (f5f616d)
</details>Your coding agent can read these notes before it upgrades. Set up the MCP server →