Update Rust crate gix-commitgraph to 0.39 - #293
renovate[bot] wants to merge 1 commit into
Conversation
|
PR author is in the excluded authors list. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5e5f2ef2d7
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| crc32fast = "1.4" | ||
| flate2 = { version = "1.1", default-features = false, features = ["zlib-ng"] } | ||
| gix-commitgraph = "0.34" | ||
| gix-commitgraph = "0.35" |
There was a problem hiding this comment.
Regenerate standalone lockfiles for scanner-git consumers
scanner-git is also built from two independent workspaces with their own lockfiles, and both still pin the old crate version: tools/eval-harness/Cargo.lock:599-607 and crates/scanner-git/fuzz/Cargo.lock:376-384 both resolve gix-commitgraph 0.34.0. Because .github/workflows/ci.yml:419-445 and .github/workflows/ci.yml:480-520 run Cargo from those directories, they do not consume the root Cargo.lock; local runs there will keep testing 0.34 until the lockfiles are regenerated, and CI will have to mutate the checked-in lockfiles on the fly. This leaves the dependency update only partially applied.
Useful? React with 👍 / 👎.
5e5f2ef to
29c57cd
Compare
| crc32fast = "1.4" | ||
| flate2 = "1.1" | ||
| gix-commitgraph = "0.34" | ||
| gix-commitgraph = "0.35" |
There was a problem hiding this comment.
CRITICAL: gix-commitgraph 0.35 no longer matches the crate's gix-hash pin
scanner-git still depends on gix-hash = { version = "0.22", ... }, but gix-commitgraph 0.35 resolves gix-hash 0.23 and exposes that type in Graph::commit_by_id. crates/scanner-git/src/synthetic_ref.rs:358-360 currently passes a 0.22 gix_hash::ObjectId into that API, so this branch stops compiling until scanner-git is bumped to gix-hash 0.23 too or the commitgraph bump stays on 0.34.
Code Review SummaryStatus: 2 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)CRITICAL
Fix these issues in Kilo Cloud Other Observations (not in diff)Issues found in unchanged code that cannot receive inline comments:
Files Reviewed (3 files)
Reviewed by gpt-5.5-2026-04-23 · 793,489 tokens |
29c57cd to
e78d9de
Compare
e78d9de to
f61978e
Compare
f61978e to
6b5fb30
Compare
5948470 to
882470b
Compare
882470b to
896fdbb
Compare
896fdbb to
a4b47eb
Compare
a4b47eb to
85be3b7
Compare
This PR contains the following updates:
0.34→0.390.34→0.39Release Notes
GitoxideLabs/gitoxide (gix-commitgraph)
v0.39.0Compare Source
New Features
gix merge commit --debugThis yields additional debugging information with details about detected conflicts.
gix merge commitsgix merge treeto merge trees similarly togit merge-tree.Commit Statistics
Commit Details
view details
0b7abfb)gix merge commit --debug(0a5993f)905e5b4)gix merge commits(4a5afc7)a876533)gix(8d590f3)3fb989b)gix merge treeto merge trees similarly togit merge-tree. (84707c2)80e006b)v0.38.0Compare Source
New Features
support for listing worktrees with
gix worktree listadd first 'debug' version of
gix diff tree.It's primarily meant to better understand
gix blame.add new
gix catcommand.It only prints things without fuzz.
Inspired by https://youtu.be/JYH5ILv5g1g?si=bHLBPFJiZyRUTl6u&t=211.
add
gix merge-filewith similar features asgit merge-filegix merge-basefor the CLIFor now it only supports the standard merge-base, but more derivatives
can be added easily on demand.
Bug Fixes
gix cleanwarning and help for worktree fixThis adds information to the help text for the
git cleanoptions-r/--repositoriesand--skip-hidden-repositoriesto make itclearer what their relationship is, avoid creating the false
impression that repositories are never deleted in the absence of
-r/--repositories, and note that--skip-hidden-repositoriesis sometimes needed to preserve not only separate repositories but
the (probably rarer) case of hidden nested worktrees of the current
repository.
Commit Statistics
Commit Details
view details
gix commit-graphis (49bca2a)48aa74b)0bebe52)f186c23)6777ecb)gix diff tree. (0c554e0)31bdd2e)gix catcommand. (9c8bc03)5ffccd2)gix merge-filewith similar features asgit merge-file(3da2da9)e0b09d2)d69c617)649f588)gix merge-basefor the CLI (7249291)beba720)f992fb7)ec69c88)472fe5f)786bfec)25a3f1b)b31d6b7)5871fb1)timetojiff(28ac657)a9aac4f)gix cleanwarning and help for worktree fix (6eb4ea6)c241422)33eacfb)gix worktree list(c7213bc)v0.37.1: gix-features v0.37.1Compare Source
Chore
change
rust-versionmanifest field back to 1.65.They didn't actually need to be higher to work, and changing them
unecessarily can break downstream CI.
Let's keep this value as low as possible, and only increase it when
more recent features are actually used.
Commit Statistics
Commit Details
view details
8c492d7)rust-versionmanifest field back to 1.65. (3bd09ef)v0.37.0Compare Source
New Features
mailmap checksimilar togit check-mailmap.That way it becomes a little easier to maybe try out other special cases
in the wild.
gix clonewith--refsupport.--refis similar to--branch, but was renamed as it also supportstags for example.
Commit Statistics
Thanks Clippy
Clippy helped 1 time to make code idiomatic.
Commit Details
view details
f107014)mailmap check(3e08fa3)mailmap checksimilar togit check-mailmap. (2a56387)9fa1054)ecfde07)gix clonewith--refsupport. (9bf01e4)2f9f0ac)acc1331)bb30e52)bf5a111)src/plumbing/main.rs(4596a39)0b5dc74)202f3e4)v0.36.0Compare Source
New Features
checkout respects options for
core.protectHFSandcore.protectNTFS.This also adds
gitoxide.core.protectWindowsas a way to enforceadditional restrictions that are usually only available on Windows.
Note that
core.protectNFSis always enabled by default, just likeit is in Git.
Bug Fixes
more robustness in the face of a trampling-herd of threads loading a single index.
The motivating example is here: praetorian-inc/noseyparker#179
Previously, it was possible for a trampling herd of threads to consolidate the
disk state. Most of them would be 'needs-init' threads which could notice that
the initialization already happened, and just use that.
But a thread might be late for the party and somehow manages to not get any
newly loaded index, and thus tries to consolidate with what's on disk again.
Then it would again determine no change, and return nothing, causing the caller
to abort and not find objects it should find because it wouldn't see the index
that it should have seen.
The reason the thread got into this mess is that the 'is-load-ongoing' flagging
was racy itself, so it would not wait for ongoing loads and just conclude nothing
happened. An extra delay (by yielding) now assures it either seees the loading state
and waits for it, sees the newly loaded indices.
Note that this issue can be reproduced with:
Commit Statistics
Commit Details
view details
d6cd449)79dce79)core.protectHFSandcore.protectNTFS. (886d6b5)f3d5a69)04ef31e)addf446)v0.35.0Compare Source
New Features
add
gix status --ignoredsupportadd
gix status --index-worktree-renamesThis enables rename-tracking between worktree and index, something
that Git also doesn't do or doesn't do by default.
It is, however, available in
git2.gix statuswith submodule and rewrite support.Submodule changes are now picked up as long as the submodule is
in the index.
Further, it's possible to enable rename-tracking between
index and worktree separately.
add
gix is-clean|is-changedIt's a good way to compare the time it takes to run a full status
compared to a quick is-dirty check.
gix submodules list --dirty-suffixfor dirty-informationThis is a submodule-centric and greatly simplified way of obtaining
describe information with dirty-suffix.
Note that
statusinformation is also possible, but it seemshard to display nicely, which this command isn't great at
in the first place.
add
gix commit describe --dirty-suffixThat way a suffix will be added depending on the dirty-state of the repository.
Commit Statistics
Commit Details
view details
55f379b)f72ecce)3e5c974)gix status --formatto communicate the current format is very simple. (23bea36)gix status --ignoredsupport (84c74ff)gix status --index-worktree-renames(66e87cd)f8ce3d0)gix statuswith submodule and rewrite support. (61c002b)gix is-clean|is-changed(98b3680)gix submodules list --dirty-suffixfor dirty-information (afd20ca)gix commit describe --dirty-suffix(58231b4)Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.