From 69979807fe6d3fde1d41f69440dc1e696ede441c Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Sat, 2 Nov 2024 14:44:39 +0100 Subject: [PATCH 1/5] The UUID crate always needs V4, so have that feature in the workspace. Some crates use it from the workspace as if it had that feature, but the reason they compile is only due to compiling a crate higher up that sets the feature, which transitively affects the crate in question. When building `gitbutler-diff` for instance, the build will fail. --- Cargo.toml | 2 +- crates/gitbutler-git/Cargo.toml | 28 ++++++++++----------- crates/gitbutler-hunk-dependency/Cargo.toml | 2 +- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 74aeee8229..f26fc08170 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,7 +48,7 @@ git2 = { version = "0.19.0", features = [ "vendored-openssl", "vendored-libgit2", ] } -uuid = { version = "1.11.0", features = ["serde"] } +uuid = { version = "1.11.0", features = ["v4", "serde"] } serde = { version = "1.0", features = ["derive"] } thiserror = "1.0.66" tokio = { version = "1.41.0", default-features = false } diff --git a/crates/gitbutler-git/Cargo.toml b/crates/gitbutler-git/Cargo.toml index c88e359a1d..d1d39f9c6a 100644 --- a/crates/gitbutler-git/Cargo.toml +++ b/crates/gitbutler-git/Cargo.toml @@ -31,13 +31,13 @@ benches = [] thiserror.workspace = true serde = { workspace = true, optional = true } tokio = { workspace = true, optional = true, features = [ - "process", - "time", - "io-util", - "net", - "fs", + "process", + "time", + "io-util", + "net", + "fs", ] } -uuid = { workspace = true, features = ["v4", "fast-rng"] } +uuid = { workspace = true, features = ["fast-rng"] } rand = "0.8.5" futures.workspace = true sysinfo = "0.32.0" @@ -48,14 +48,14 @@ nix = { version = "0.29.0", features = ["process", "socket", "user"] } [target."cfg(windows)".dependencies] windows = { version = "0.58.0", features = [ - "Win32", - "Win32_System", - "Win32_System_Pipes", - "Win32_Storage", - "Win32_Storage_FileSystem", - "Win32_Security", - "Win32_System_IO", - "Win32_System_Threading", + "Win32", + "Win32_System", + "Win32_System_Pipes", + "Win32_Storage", + "Win32_Storage_FileSystem", + "Win32_Security", + "Win32_System_IO", + "Win32_System_Threading", ] } tokio = { workspace = true, optional = true, features = ["sync"] } diff --git a/crates/gitbutler-hunk-dependency/Cargo.toml b/crates/gitbutler-hunk-dependency/Cargo.toml index 4234d2883e..ef346c1a5e 100644 --- a/crates/gitbutler-hunk-dependency/Cargo.toml +++ b/crates/gitbutler-hunk-dependency/Cargo.toml @@ -18,4 +18,4 @@ itertools = "0.13" serde = { workspace = true, features = ["std"] } bstr.workspace = true tokio.workspace = true -uuid = { workspace = true, features = ["v4", "fast-rng"] } +uuid = { workspace = true, features = ["fast-rng"] } From e8071419b054f1643dff9a998ef22dcd0ecff9c6 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Sat, 2 Nov 2024 15:20:19 +0100 Subject: [PATCH 2/5] remove ineffective diff options when diffing trees. These options were related to the worktree, which won't take part in this kind of diff. --- crates/gitbutler-diff/src/diff.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/crates/gitbutler-diff/src/diff.rs b/crates/gitbutler-diff/src/diff.rs index 2aa082ed58..9ae104b40a 100644 --- a/crates/gitbutler-diff/src/diff.rs +++ b/crates/gitbutler-diff/src/diff.rs @@ -174,12 +174,9 @@ pub fn trees( false => 0, }; diff_opts - .recurse_untracked_dirs(true) - .include_untracked(true) .show_binary(true) .ignore_submodules(true) - .context_lines(context_lines) - .show_untracked_content(true); + .context_lines(context_lines); let diff = repo.diff_tree_to_tree(Some(old_tree), Some(new_tree), Some(&mut diff_opts))?; hunks_by_filepath(None, &diff) From 7327a5791bb9c0eb48b2331b597d8ea4c6408851 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Sat, 2 Nov 2024 15:22:30 +0100 Subject: [PATCH 3/5] Use the latest version of `gitoxide` with support for merging trees. --- Cargo.lock | 722 ++++++++++++++++++++++++++--------------------------- Cargo.toml | 2 +- 2 files changed, 362 insertions(+), 362 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a601952219..1d3cab556e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2604,7 +2604,7 @@ version = "0.0.0" dependencies = [ "assert_cmd", "futures", - "gix-path 0.10.11 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-path 0.10.11", "nix 0.29.0", "rand 0.8.5", "serde", @@ -2847,7 +2847,7 @@ dependencies = [ "gitbutler-testsupport", "gitbutler-time", "gix", - "gix-utils 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-utils 0.1.12", "itertools 0.13.0", "serde", "tempfile", @@ -3037,51 +3037,51 @@ dependencies = [ [[package]] name = "gix" -version = "0.66.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.67.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ - "gix-actor 0.32.0", - "gix-attributes 0.22.5 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-actor 0.33.0", + "gix-attributes 0.23.0", "gix-command", - "gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-commitgraph 0.25.0", "gix-config", "gix-credentials", - "gix-date 0.9.0", + "gix-date 0.9.1", "gix-diff", "gix-dir", - "gix-discover 0.35.0", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-discover 0.36.0", + "gix-features 0.39.0", "gix-filter", - "gix-fs 0.11.3 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-glob 0.16.5 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-ignore 0.11.4 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-index 0.35.0", - "gix-lock 14.0.0 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-fs 0.12.0", + "gix-glob 0.17.0", + "gix-hash 0.15.0", + "gix-hashtable 0.6.0", + "gix-ignore 0.12.0", + "gix-index 0.36.0", + "gix-lock 15.0.0", "gix-negotiate", - "gix-object 0.44.0", + "gix-object 0.45.0", "gix-odb", "gix-pack", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-path 0.10.12", "gix-pathspec", "gix-prompt", "gix-protocol", - "gix-ref 0.47.0", + "gix-ref 0.48.0", "gix-refspec", "gix-revision", - "gix-revwalk 0.15.0", - "gix-sec 0.10.8 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-revwalk 0.16.0", + "gix-sec 0.10.9", "gix-status", "gix-submodule", - "gix-tempfile 14.0.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-trace 0.1.10 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-tempfile 15.0.0", + "gix-trace 0.1.11", "gix-transport", - "gix-traverse 0.41.0", + "gix-traverse 0.42.0", "gix-url", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-validate 0.9.0", - "gix-worktree 0.36.0", + "gix-utils 0.1.13", + "gix-validate 0.9.1", + "gix-worktree 0.37.0", "gix-worktree-state", "once_cell", "smallvec", @@ -3096,7 +3096,7 @@ checksum = "a0e454357e34b833cc3a00b6efbbd3dd4d18b24b9fb0c023876ec2645e8aa3f2" dependencies = [ "bstr", "gix-date 0.8.7", - "gix-utils 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-utils 0.1.12", "itoa 1.0.11", "thiserror", "winnow 0.6.20", @@ -3104,12 +3104,12 @@ dependencies = [ [[package]] name = "gix-actor" -version = "0.32.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.33.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", - "gix-date 0.9.0", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-date 0.9.1", + "gix-utils 0.1.13", "itoa 1.0.11", "thiserror", "winnow 0.6.20", @@ -3122,10 +3122,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebccbf25aa4a973dd352564a9000af69edca90623e8a16dad9cbc03713131311" dependencies = [ "bstr", - "gix-glob 0.16.5 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-path 0.10.11 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-quote 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-trace 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-glob 0.16.5", + "gix-path 0.10.11", + "gix-quote 0.4.12", + "gix-trace 0.1.10", "kstring", "smallvec", "thiserror", @@ -3134,14 +3134,14 @@ dependencies = [ [[package]] name = "gix-attributes" -version = "0.22.5" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.23.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", - "gix-glob 0.16.5 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-quote 0.4.12 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-trace 0.1.10 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-glob 0.17.0", + "gix-path 0.10.12", + "gix-quote 0.4.13", + "gix-trace 0.1.11", "kstring", "smallvec", "thiserror", @@ -3159,8 +3159,8 @@ dependencies = [ [[package]] name = "gix-bitmap" -version = "0.2.11" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.2.12" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "thiserror", ] @@ -3176,20 +3176,20 @@ dependencies = [ [[package]] name = "gix-chunk" -version = "0.4.8" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.4.9" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "thiserror", ] [[package]] name = "gix-command" -version = "0.3.9" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.3.10" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-trace 0.1.10 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-path 0.10.12", + "gix-trace 0.1.11", "shell-words", ] @@ -3200,38 +3200,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "133b06f67f565836ec0c473e2116a60fb74f80b6435e21d88013ac0e3c60fc78" dependencies = [ "bstr", - "gix-chunk 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-features 0.38.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-hash 0.14.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-chunk 0.4.8", + "gix-features 0.38.2", + "gix-hash 0.14.2", "memmap2", "thiserror", ] [[package]] name = "gix-commitgraph" -version = "0.24.3" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.25.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", - "gix-chunk 0.4.8 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-chunk 0.4.9", + "gix-features 0.39.0", + "gix-hash 0.15.0", "memmap2", "thiserror", ] [[package]] name = "gix-config" -version = "0.40.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.41.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", "gix-config-value", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-glob 0.16.5 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-ref 0.47.0", - "gix-sec 0.10.8 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-features 0.39.0", + "gix-glob 0.17.0", + "gix-path 0.10.12", + "gix-ref 0.48.0", + "gix-sec 0.10.9", "memchr", "once_cell", "smallvec", @@ -3242,28 +3242,28 @@ dependencies = [ [[package]] name = "gix-config-value" -version = "0.14.8" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.14.9" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bitflags 2.6.0", "bstr", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-path 0.10.12", "libc", "thiserror", ] [[package]] name = "gix-credentials" -version = "0.24.5" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.25.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", "gix-command", "gix-config-value", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-path 0.10.12", "gix-prompt", - "gix-sec 0.10.8 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-trace 0.1.10 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-sec 0.10.9", + "gix-trace 0.1.11", "gix-url", "thiserror", ] @@ -3282,8 +3282,8 @@ dependencies = [ [[package]] name = "gix-date" -version = "0.9.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.9.1" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", "itoa 1.0.11", @@ -3293,40 +3293,40 @@ dependencies = [ [[package]] name = "gix-diff" -version = "0.46.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.47.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", "gix-command", "gix-filter", - "gix-fs 0.11.3 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-object 0.44.0", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-tempfile 14.0.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-trace 0.1.10 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-traverse 0.41.0", - "gix-worktree 0.36.0", + "gix-fs 0.12.0", + "gix-hash 0.15.0", + "gix-object 0.45.0", + "gix-path 0.10.12", + "gix-tempfile 15.0.0", + "gix-trace 0.1.11", + "gix-traverse 0.42.0", + "gix-worktree 0.37.0", "imara-diff", "thiserror", ] [[package]] name = "gix-dir" -version = "0.8.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.9.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", - "gix-discover 0.35.0", - "gix-fs 0.11.3 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-ignore 0.11.4 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-index 0.35.0", - "gix-object 0.44.0", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-discover 0.36.0", + "gix-fs 0.12.0", + "gix-ignore 0.12.0", + "gix-index 0.36.0", + "gix-object 0.45.0", + "gix-path 0.10.12", "gix-pathspec", - "gix-trace 0.1.10 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-worktree 0.36.0", + "gix-trace 0.1.11", + "gix-utils 0.1.13", + "gix-worktree 0.37.0", "thiserror", ] @@ -3338,26 +3338,26 @@ checksum = "fc27c699b63da66b50d50c00668bc0b7e90c3a382ef302865e891559935f3dbf" dependencies = [ "bstr", "dunce", - "gix-fs 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-hash 0.14.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-path 0.10.11 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-fs 0.11.3", + "gix-hash 0.14.2", + "gix-path 0.10.11", "gix-ref 0.44.1", - "gix-sec 0.10.8 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-sec 0.10.8", "thiserror", ] [[package]] name = "gix-discover" -version = "0.35.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.36.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", "dunce", - "gix-fs 0.11.3 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-ref 0.47.0", - "gix-sec 0.10.8 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-fs 0.12.0", + "gix-hash 0.15.0", + "gix-path 0.10.12", + "gix-ref 0.48.0", + "gix-sec 0.10.9", "thiserror", ] @@ -3367,9 +3367,9 @@ version = "0.38.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac7045ac9fe5f9c727f38799d002a7ed3583cd777e3322a7c4b43e3cf437dc69" dependencies = [ - "gix-hash 0.14.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-trace 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-utils 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-hash 0.14.2", + "gix-trace 0.1.10", + "gix-utils 0.1.12", "libc", "prodash 28.0.0", "sha1_smol", @@ -3378,16 +3378,16 @@ dependencies = [ [[package]] name = "gix-features" -version = "0.38.2" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.39.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bytes", "crc32fast", "crossbeam-channel", "flate2", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-trace 0.1.10 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-hash 0.15.0", + "gix-trace 0.1.11", + "gix-utils 0.1.13", "libc", "once_cell", "parking_lot", @@ -3400,20 +3400,20 @@ dependencies = [ [[package]] name = "gix-filter" -version = "0.13.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.14.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", "encoding_rs", - "gix-attributes 0.22.5 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-attributes 0.23.0", "gix-command", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-object 0.44.0", + "gix-hash 0.15.0", + "gix-object 0.45.0", "gix-packetline-blocking", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-quote 0.4.12 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-trace 0.1.10 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-path 0.10.12", + "gix-quote 0.4.13", + "gix-trace 0.1.11", + "gix-utils 0.1.13", "smallvec", "thiserror", ] @@ -3425,18 +3425,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2bfe6249cfea6d0c0e0990d5226a4cb36f030444ba9e35e0639275db8f98575" dependencies = [ "fastrand 2.1.1", - "gix-features 0.38.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-utils 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-features 0.38.2", + "gix-utils 0.1.12", ] [[package]] name = "gix-fs" -version = "0.11.3" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.12.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "fastrand 2.1.1", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-features 0.39.0", + "gix-utils 0.1.13", ] [[package]] @@ -3447,19 +3447,19 @@ checksum = "74908b4bbc0a0a40852737e5d7889f676f081e340d5451a16e5b4c50d592f111" dependencies = [ "bitflags 2.6.0", "bstr", - "gix-features 0.38.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-path 0.10.11 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-features 0.38.2", + "gix-path 0.10.11", ] [[package]] name = "gix-glob" -version = "0.16.5" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.17.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bitflags 2.6.0", "bstr", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-features 0.39.0", + "gix-path 0.10.12", ] [[package]] @@ -3474,8 +3474,8 @@ dependencies = [ [[package]] name = "gix-hash" -version = "0.14.2" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.15.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "faster-hex", "thiserror", @@ -3487,17 +3487,17 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ddf80e16f3c19ac06ce415a38b8591993d3f73aede049cb561becb5b3a8e242" dependencies = [ - "gix-hash 0.14.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-hash 0.14.2", "hashbrown 0.14.5", "parking_lot", ] [[package]] name = "gix-hashtable" -version = "0.5.2" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.6.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-hash 0.15.0", "hashbrown 0.14.5", "parking_lot", ] @@ -3509,21 +3509,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e447cd96598460f5906a0f6c75e950a39f98c2705fc755ad2f2020c9e937fab7" dependencies = [ "bstr", - "gix-glob 0.16.5 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-path 0.10.11 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-trace 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-glob 0.16.5", + "gix-path 0.10.11", + "gix-trace 0.1.10", "unicode-bom", ] [[package]] name = "gix-ignore" -version = "0.11.4" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.12.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", - "gix-glob 0.16.5 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-trace 0.1.10 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-glob 0.17.0", + "gix-path 0.10.12", + "gix-trace 0.1.11", "unicode-bom", ] @@ -3537,14 +3537,14 @@ dependencies = [ "bstr", "filetime", "fnv", - "gix-bitmap 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-features 0.38.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-fs 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-hash 0.14.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-lock 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-bitmap 0.2.11", + "gix-features 0.38.2", + "gix-fs 0.11.3", + "gix-hash 0.14.2", + "gix-lock 14.0.0", "gix-object 0.42.3", "gix-traverse 0.39.2", - "gix-utils 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-utils 0.1.12", "gix-validate 0.8.5", "hashbrown 0.14.5", "itoa 1.0.11", @@ -3557,22 +3557,22 @@ dependencies = [ [[package]] name = "gix-index" -version = "0.35.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.36.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bitflags 2.6.0", "bstr", "filetime", "fnv", - "gix-bitmap 0.2.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-fs 0.11.3 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-lock 14.0.0 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-object 0.44.0", - "gix-traverse 0.41.0", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-validate 0.9.0", + "gix-bitmap 0.2.12", + "gix-features 0.39.0", + "gix-fs 0.12.0", + "gix-hash 0.15.0", + "gix-lock 15.0.0", + "gix-object 0.45.0", + "gix-traverse 0.42.0", + "gix-utils 0.1.13", + "gix-validate 0.9.1", "hashbrown 0.14.5", "itoa 1.0.11", "libc", @@ -3588,32 +3588,32 @@ version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bc7fe297f1f4614774989c00ec8b1add59571dc9b024b4c00acb7dedd4e19d" dependencies = [ - "gix-tempfile 14.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-utils 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-tempfile 14.0.2", + "gix-utils 0.1.12", "thiserror", ] [[package]] name = "gix-lock" -version = "14.0.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "15.0.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ - "gix-tempfile 14.0.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-tempfile 15.0.0", + "gix-utils 0.1.13", "thiserror", ] [[package]] name = "gix-negotiate" -version = "0.15.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.16.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bitflags 2.6.0", - "gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-date 0.9.0", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-object 0.44.0", - "gix-revwalk 0.15.0", + "gix-commitgraph 0.25.0", + "gix-date 0.9.1", + "gix-hash 0.15.0", + "gix-object 0.45.0", + "gix-revwalk 0.16.0", "smallvec", "thiserror", ] @@ -3627,9 +3627,9 @@ dependencies = [ "bstr", "gix-actor 0.31.5", "gix-date 0.8.7", - "gix-features 0.38.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-hash 0.14.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-utils 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-features 0.38.2", + "gix-hash 0.14.2", + "gix-utils 0.1.12", "gix-validate 0.8.5", "itoa 1.0.11", "smallvec", @@ -3639,17 +3639,17 @@ dependencies = [ [[package]] name = "gix-object" -version = "0.44.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.45.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", - "gix-actor 0.32.0", - "gix-date 0.9.0", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-validate 0.9.0", + "gix-actor 0.33.0", + "gix-date 0.9.1", + "gix-features 0.39.0", + "gix-hash 0.15.0", + "gix-hashtable 0.6.0", + "gix-utils 0.1.13", + "gix-validate 0.9.1", "itoa 1.0.11", "smallvec", "thiserror", @@ -3658,19 +3658,19 @@ dependencies = [ [[package]] name = "gix-odb" -version = "0.63.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.64.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "arc-swap", - "gix-date 0.9.0", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-fs 0.11.3 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-object 0.44.0", + "gix-date 0.9.1", + "gix-features 0.39.0", + "gix-fs 0.12.0", + "gix-hash 0.15.0", + "gix-hashtable 0.6.0", + "gix-object 0.45.0", "gix-pack", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-quote 0.4.12 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-path 0.10.12", + "gix-quote 0.4.13", "parking_lot", "tempfile", "thiserror", @@ -3678,17 +3678,17 @@ dependencies = [ [[package]] name = "gix-pack" -version = "0.53.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.54.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "clru", - "gix-chunk 0.4.8 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-object 0.44.0", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-tempfile 14.0.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-chunk 0.4.9", + "gix-features 0.39.0", + "gix-hash 0.15.0", + "gix-hashtable 0.6.0", + "gix-object 0.45.0", + "gix-path 0.10.12", + "gix-tempfile 15.0.0", "memmap2", "parking_lot", "smallvec", @@ -3698,23 +3698,23 @@ dependencies = [ [[package]] name = "gix-packetline" -version = "0.17.6" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.18.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", "faster-hex", - "gix-trace 0.1.10 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-trace 0.1.11", "thiserror", ] [[package]] name = "gix-packetline-blocking" -version = "0.17.5" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.18.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", "faster-hex", - "gix-trace 0.1.10 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-trace 0.1.11", "thiserror", ] @@ -3725,7 +3725,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebfc4febd088abdcbc9f1246896e57e37b7a34f6909840045a1767c6dafac7af" dependencies = [ "bstr", - "gix-trace 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-trace 0.1.10", "home", "once_cell", "thiserror", @@ -3733,11 +3733,11 @@ dependencies = [ [[package]] name = "gix-path" -version = "0.10.11" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.10.12" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", - "gix-trace 0.1.10 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-trace 0.1.11", "home", "once_cell", "thiserror", @@ -3745,22 +3745,22 @@ dependencies = [ [[package]] name = "gix-pathspec" -version = "0.7.7" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.8.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bitflags 2.6.0", "bstr", - "gix-attributes 0.22.5 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-attributes 0.23.0", "gix-config-value", - "gix-glob 0.16.5 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-glob 0.17.0", + "gix-path 0.10.12", "thiserror", ] [[package]] name = "gix-prompt" -version = "0.8.7" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.8.8" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "gix-command", "gix-config-value", @@ -3771,16 +3771,16 @@ dependencies = [ [[package]] name = "gix-protocol" -version = "0.45.3" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.46.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", "gix-credentials", - "gix-date 0.9.0", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-date 0.9.1", + "gix-features 0.39.0", + "gix-hash 0.15.0", "gix-transport", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-utils 0.1.13", "maybe-async", "thiserror", "winnow 0.6.20", @@ -3793,17 +3793,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cbff4f9b9ea3fa7a25a70ee62f545143abef624ac6aa5884344e70c8b0a1d9ff" dependencies = [ "bstr", - "gix-utils 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-utils 0.1.12", "thiserror", ] [[package]] name = "gix-quote" -version = "0.4.12" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.4.13" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-utils 0.1.13", "thiserror", ] @@ -3815,14 +3815,14 @@ checksum = "3394a2997e5bc6b22ebc1e1a87b41eeefbcfcff3dbfa7c4bd73cb0ac8f1f3e2e" dependencies = [ "gix-actor 0.31.5", "gix-date 0.8.7", - "gix-features 0.38.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-fs 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-hash 0.14.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-lock 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-features 0.38.2", + "gix-fs 0.11.3", + "gix-hash 0.14.2", + "gix-lock 14.0.0", "gix-object 0.42.3", - "gix-path 0.10.11 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-tempfile 14.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-utils 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-path 0.10.11", + "gix-tempfile 14.0.2", + "gix-utils 0.1.12", "gix-validate 0.8.5", "memmap2", "thiserror", @@ -3831,19 +3831,19 @@ dependencies = [ [[package]] name = "gix-ref" -version = "0.47.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" -dependencies = [ - "gix-actor 0.32.0", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-fs 0.11.3 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-lock 14.0.0 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-object 0.44.0", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-tempfile 14.0.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-validate 0.9.0", +version = "0.48.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" +dependencies = [ + "gix-actor 0.33.0", + "gix-features 0.39.0", + "gix-fs 0.12.0", + "gix-hash 0.15.0", + "gix-lock 15.0.0", + "gix-object 0.45.0", + "gix-path 0.10.12", + "gix-tempfile 15.0.0", + "gix-utils 0.1.13", + "gix-validate 0.9.1", "memmap2", "thiserror", "winnow 0.6.20", @@ -3851,31 +3851,31 @@ dependencies = [ [[package]] name = "gix-refspec" -version = "0.25.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.26.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-hash 0.15.0", "gix-revision", - "gix-validate 0.9.0", + "gix-validate 0.9.1", "smallvec", "thiserror", ] [[package]] name = "gix-revision" -version = "0.29.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.30.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bitflags 2.6.0", "bstr", - "gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-date 0.9.0", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-object 0.44.0", - "gix-revwalk 0.15.0", - "gix-trace 0.1.10 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-commitgraph 0.25.0", + "gix-date 0.9.1", + "gix-hash 0.15.0", + "gix-hashtable 0.6.0", + "gix-object 0.45.0", + "gix-revwalk 0.16.0", + "gix-trace 0.1.11", "thiserror", ] @@ -3885,10 +3885,10 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b030ccaab71af141f537e0225f19b9e74f25fefdba0372246b844491cab43e0" dependencies = [ - "gix-commitgraph 0.24.3 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-commitgraph 0.24.3", "gix-date 0.8.7", - "gix-hash 0.14.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-hashtable 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-hash 0.14.2", + "gix-hashtable 0.5.2", "gix-object 0.42.3", "smallvec", "thiserror", @@ -3896,14 +3896,14 @@ dependencies = [ [[package]] name = "gix-revwalk" -version = "0.15.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.16.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ - "gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-date 0.9.0", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-object 0.44.0", + "gix-commitgraph 0.25.0", + "gix-date 0.9.1", + "gix-hash 0.15.0", + "gix-hashtable 0.6.0", + "gix-object 0.45.0", "smallvec", "thiserror", ] @@ -3915,52 +3915,52 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fe4d52f30a737bbece5276fab5d3a8b276dc2650df963e293d0673be34e7a5f" dependencies = [ "bitflags 2.6.0", - "gix-path 0.10.11 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-path 0.10.11", "libc", "windows-sys 0.52.0", ] [[package]] name = "gix-sec" -version = "0.10.8" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.10.9" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bitflags 2.6.0", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-path 0.10.12", "libc", "windows-sys 0.52.0", ] [[package]] name = "gix-status" -version = "0.13.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.14.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", "filetime", "gix-diff", "gix-dir", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-features 0.39.0", "gix-filter", - "gix-fs 0.11.3 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-index 0.35.0", - "gix-object 0.44.0", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-fs 0.12.0", + "gix-hash 0.15.0", + "gix-index 0.36.0", + "gix-object 0.45.0", + "gix-path 0.10.12", "gix-pathspec", - "gix-worktree 0.36.0", + "gix-worktree 0.37.0", "portable-atomic", "thiserror", ] [[package]] name = "gix-submodule" -version = "0.14.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.15.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", "gix-config", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-path 0.10.12", "gix-pathspec", "gix-refspec", "gix-url", @@ -3973,7 +3973,7 @@ version = "14.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "046b4927969fa816a150a0cda2e62c80016fe11fb3c3184e4dddf4e542f108aa" dependencies = [ - "gix-fs 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-fs 0.11.3", "libc", "once_cell", "parking_lot", @@ -3984,11 +3984,11 @@ dependencies = [ [[package]] name = "gix-tempfile" -version = "14.0.2" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "15.0.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "dashmap", - "gix-fs 0.11.3 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-fs 0.12.0", "libc", "once_cell", "parking_lot", @@ -4006,11 +4006,11 @@ dependencies = [ "fastrand 2.1.1", "fs_extra", "gix-discover 0.32.0", - "gix-fs 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-ignore 0.11.4 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-fs 0.11.3", + "gix-ignore 0.11.4", "gix-index 0.33.1", - "gix-lock 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-tempfile 14.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-lock 14.0.0", + "gix-tempfile 14.0.2", "gix-worktree 0.34.1", "io-close", "is_ci", @@ -4029,26 +4029,26 @@ checksum = "6cae0e8661c3ff92688ce1c8b8058b3efb312aba9492bbe93661a21705ab431b" [[package]] name = "gix-trace" -version = "0.1.10" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.1.11" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "tracing-core", ] [[package]] name = "gix-transport" -version = "0.42.3" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.43.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "base64 0.22.1", "bstr", "curl", "gix-command", "gix-credentials", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-features 0.39.0", "gix-packetline", - "gix-quote 0.4.12 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-sec 0.10.8 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-quote 0.4.13", + "gix-sec 0.10.9", "gix-url", "thiserror", ] @@ -4060,10 +4060,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e499a18c511e71cf4a20413b743b9f5bcf64b3d9e81e9c3c6cd399eae55a8840" dependencies = [ "bitflags 2.6.0", - "gix-commitgraph 0.24.3 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-commitgraph 0.24.3", "gix-date 0.8.7", - "gix-hash 0.14.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-hashtable 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-hash 0.14.2", + "gix-hashtable 0.5.2", "gix-object 0.42.3", "gix-revwalk 0.13.2", "smallvec", @@ -4072,28 +4072,28 @@ dependencies = [ [[package]] name = "gix-traverse" -version = "0.41.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.42.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bitflags 2.6.0", - "gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-date 0.9.0", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-object 0.44.0", - "gix-revwalk 0.15.0", + "gix-commitgraph 0.25.0", + "gix-date 0.9.1", + "gix-hash 0.15.0", + "gix-hashtable 0.6.0", + "gix-object 0.45.0", + "gix-revwalk 0.16.0", "smallvec", "thiserror", ] [[package]] name = "gix-url" -version = "0.27.5" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.28.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-features 0.39.0", + "gix-path 0.10.12", "thiserror", "url", ] @@ -4110,8 +4110,8 @@ dependencies = [ [[package]] name = "gix-utils" -version = "0.1.12" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.1.13" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", "fastrand 2.1.1", @@ -4130,8 +4130,8 @@ dependencies = [ [[package]] name = "gix-validate" -version = "0.9.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.9.1" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", "thiserror", @@ -4144,51 +4144,51 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26f7326ebe0b9172220694ea69d344c536009a9b98fb0f9de092c440f3efe7a6" dependencies = [ "bstr", - "gix-attributes 0.22.5 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-features 0.38.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-fs 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-glob 0.16.5 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-hash 0.14.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gix-ignore 0.11.4 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-attributes 0.22.5", + "gix-features 0.38.2", + "gix-fs 0.11.3", + "gix-glob 0.16.5", + "gix-hash 0.14.2", + "gix-ignore 0.11.4", "gix-index 0.33.1", "gix-object 0.42.3", - "gix-path 0.10.11 (registry+https://github.com/rust-lang/crates.io-index)", + "gix-path 0.10.11", "gix-validate 0.8.5", ] [[package]] name = "gix-worktree" -version = "0.36.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.37.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", - "gix-attributes 0.22.5 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-fs 0.11.3 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-glob 0.16.5 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-ignore 0.11.4 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-index 0.35.0", - "gix-object 0.44.0", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-validate 0.9.0", + "gix-attributes 0.23.0", + "gix-features 0.39.0", + "gix-fs 0.12.0", + "gix-glob 0.17.0", + "gix-hash 0.15.0", + "gix-ignore 0.12.0", + "gix-index 0.36.0", + "gix-object 0.45.0", + "gix-path 0.10.12", + "gix-validate 0.9.1", ] [[package]] name = "gix-worktree-state" -version = "0.13.0" -source = "git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60#b36d7efb9743766338ac7bb7fb2399a06fae5e60" +version = "0.14.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" dependencies = [ "bstr", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", + "gix-features 0.39.0", "gix-filter", - "gix-fs 0.11.3 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-glob 0.16.5 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-index 0.35.0", - "gix-object 0.44.0", - "gix-path 0.10.11 (git+https://github.com/Byron/gitoxide?rev=b36d7efb9743766338ac7bb7fb2399a06fae5e60)", - "gix-worktree 0.36.0", + "gix-fs 0.12.0", + "gix-glob 0.17.0", + "gix-hash 0.15.0", + "gix-index 0.36.0", + "gix-object 0.45.0", + "gix-path 0.10.12", + "gix-worktree 0.37.0", "io-close", "thiserror", ] diff --git a/Cargo.toml b/Cargo.toml index f26fc08170..9c65a2540a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,7 +42,7 @@ resolver = "2" [workspace.dependencies] bstr = "1.10.0" # Add the `tracing` or `tracing-detail` features to see more of gitoxide in the logs. Useful to see which programs it invokes. -gix = { git = "https://github.com/Byron/gitoxide", rev = "b36d7efb9743766338ac7bb7fb2399a06fae5e60", default-features = false, features = [ +gix = { git = "https://github.com/Byron/gitoxide", rev = "3fb989be21c739bbfeac93953c1685e7c6cd2106", default-features = false, features = [ ] } git2 = { version = "0.19.0", features = [ "vendored-openssl", From 4c8d270d8a3039c996e98afb7daabd0a229fb55e Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Sat, 2 Nov 2024 15:27:39 +0100 Subject: [PATCH 4/5] Use `gitoxide` or `is_integrated()`. This is the most expensive call as it's possible to trigger a lot of merges. Also improve performance by aborting the merge as early as it's known that there is a conflict. --- Cargo.lock | 24 +++ crates/gitbutler-branch-actions/Cargo.toml | 2 +- crates/gitbutler-branch-actions/src/stack.rs | 22 ++- .../gitbutler-branch-actions/src/virtual.rs | 138 +++++++++++------- 4 files changed, 131 insertions(+), 55 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1d3cab556e..840253f75b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3059,6 +3059,7 @@ dependencies = [ "gix-ignore 0.12.0", "gix-index 0.36.0", "gix-lock 15.0.0", + "gix-merge", "gix-negotiate", "gix-object 0.45.0", "gix-odb", @@ -3603,6 +3604,29 @@ dependencies = [ "thiserror", ] +[[package]] +name = "gix-merge" +version = "0.0.0" +source = "git+https://github.com/Byron/gitoxide?rev=3fb989be21c739bbfeac93953c1685e7c6cd2106#3fb989be21c739bbfeac93953c1685e7c6cd2106" +dependencies = [ + "bstr", + "gix-command", + "gix-diff", + "gix-filter", + "gix-fs 0.12.0", + "gix-hash 0.15.0", + "gix-object 0.45.0", + "gix-path 0.10.12", + "gix-quote 0.4.13", + "gix-revision", + "gix-revwalk 0.16.0", + "gix-tempfile 15.0.0", + "gix-trace 0.1.11", + "gix-worktree 0.37.0", + "imara-diff", + "thiserror", +] + [[package]] name = "gix-negotiate" version = "0.16.0" diff --git a/crates/gitbutler-branch-actions/Cargo.toml b/crates/gitbutler-branch-actions/Cargo.toml index fff381de7c..59c735aec5 100644 --- a/crates/gitbutler-branch-actions/Cargo.toml +++ b/crates/gitbutler-branch-actions/Cargo.toml @@ -9,7 +9,7 @@ publish = false tracing.workspace = true anyhow = "1.0.92" git2.workspace = true -gix = { workspace = true, features = ["blob-diff", "revision"] } +gix = { workspace = true, features = ["blob-diff", "revision", "blob-merge"] } tokio.workspace = true gitbutler-oplog.workspace = true gitbutler-repo.workspace = true diff --git a/crates/gitbutler-branch-actions/src/stack.rs b/crates/gitbutler-branch-actions/src/stack.rs index 9893e97ef0..dc37ddd975 100644 --- a/crates/gitbutler-branch-actions/src/stack.rs +++ b/crates/gitbutler-branch-actions/src/stack.rs @@ -7,6 +7,7 @@ use gitbutler_oplog::entry::{OperationKind, SnapshotDetails}; use gitbutler_oplog::{OplogExt, SnapshotExt}; use gitbutler_project::Project; use gitbutler_reference::normalize_branch_name; +use gitbutler_repo::GixRepositoryExt; use gitbutler_repo_actions::RepoActionsExt; use gitbutler_stack::{ CommitOrChangeId, ForgeIdentifier, PatchReference, PatchReferenceUpdate, Series, @@ -191,14 +192,20 @@ pub fn push_stack(project: &Project, branch_id: StackId, with_force: bool) -> Re // First fetch, because we dont want to push integrated series ctx.fetch(&default_target.push_remote_name(), None)?; - let check_commit = IsCommitIntegrated::new(ctx, &default_target)?; + let gix_repo = ctx + .gix_repository()? + .for_tree_diffing()? + .with_object_memory(); + let cache = gix_repo.commit_graph_if_enabled()?; + let mut graph = gix_repo.revision_graph(cache.as_ref()); + let mut check_commit = IsCommitIntegrated::new(ctx, &default_target, &gix_repo, &mut graph)?; let stack_series = stack.list_series(ctx)?; for series in stack_series { if series.head.target == merge_base { // Nothing to push for this one continue; } - if series_integrated(&check_commit, &series)? { + if series_integrated(&mut check_commit, &series)? { // Already integrated, nothing to push continue; } @@ -214,7 +221,7 @@ pub fn push_stack(project: &Project, branch_id: StackId, with_force: bool) -> Re Ok(()) } -fn series_integrated(check_commit: &IsCommitIntegrated, series: &Series) -> Result { +fn series_integrated(check_commit: &mut IsCommitIntegrated, series: &Series) -> Result { let mut is_integrated = false; for commit in series.clone().local_commits.iter().rev() { if !is_integrated { @@ -226,12 +233,14 @@ fn series_integrated(check_commit: &IsCommitIntegrated, series: &Series) -> Resu /// Returns the stack series for the API. /// Newest first, oldest last in the list +/// `commits` is used to accelerate the is-integrated check. pub(crate) fn stack_series( ctx: &CommandContext, branch: &mut Stack, default_target: &Target, - check_commit: &IsCommitIntegrated, + check_commit: &mut IsCommitIntegrated, remote_commit_data: HashMap, + commits: &[VirtualBranchCommit], ) -> Result<(Vec, bool)> { let mut requires_force = false; let mut api_series: Vec = vec![]; @@ -248,7 +257,10 @@ pub(crate) fn stack_series( // Reverse first instead of later, so that we catch the first integrated commit for commit in series.clone().local_commits.iter().rev() { if !is_integrated { - is_integrated = check_commit.is_integrated(commit)?; + is_integrated = commits + .iter() + .find_map(|c| (c.id == commit.id()).then_some(Ok(c.is_integrated))) + .unwrap_or_else(|| check_commit.is_integrated(commit))?; } let copied_from_remote_id = CommitData::try_from(commit) .ok() diff --git a/crates/gitbutler-branch-actions/src/virtual.rs b/crates/gitbutler-branch-actions/src/virtual.rs index b972f9e278..d7e084ec87 100644 --- a/crates/gitbutler-branch-actions/src/virtual.rs +++ b/crates/gitbutler-branch-actions/src/virtual.rs @@ -20,12 +20,12 @@ use gitbutler_commit::{commit_ext::CommitExt, commit_headers::HasCommitHeaders}; use gitbutler_diff::{trees, GitHunk, Hunk}; use gitbutler_error::error::Code; use gitbutler_operating_modes::assure_open_workspace_mode; -use gitbutler_oxidize::git2_signature_to_gix_signature; +use gitbutler_oxidize::{git2_signature_to_gix_signature, git2_to_gix_object_id, gix_to_git2_oid}; use gitbutler_project::access::WorktreeWritePermission; use gitbutler_reference::{normalize_branch_name, Refname, RemoteRefname}; use gitbutler_repo::{ rebase::{cherry_rebase, cherry_rebase_group}, - LogUntil, RepositoryExt, + GixRepositoryExt, LogUntil, RepositoryExt, }; use gitbutler_repo_actions::RepoActionsExt; use gitbutler_stack::{ @@ -33,6 +33,7 @@ use gitbutler_stack::{ VirtualBranchesHandle, }; use gitbutler_time::time::now_since_unix_epoch_ms; +use gix::objs::Write; use serde::Serialize; use std::collections::HashSet; use std::{collections::HashMap, path::PathBuf, vec}; @@ -300,8 +301,15 @@ pub fn list_virtual_branches_cached( let branches_span = tracing::debug_span!("handle branches", num_branches = status.branches.len()).entered(); + let repo = ctx.repository(); + let gix_repo = ctx + .gix_repository()? + .for_tree_diffing()? + .with_object_memory(); + // We will perform virtual merges, no need to write them to the ODB. + let cache = gix_repo.commit_graph_if_enabled()?; + let mut graph = gix_repo.revision_graph(cache.as_ref()); for (mut branch, mut files) in status.branches { - let repo = ctx.repository(); update_conflict_markers(ctx, files.clone())?; let upstream_branch = match branch.clone().upstream { @@ -323,13 +331,18 @@ pub fn list_virtual_branches_cached( .as_ref() .map( |upstream| -> Result<(HashSet, HashMap)> { - let merge_base = - repo.merge_base(upstream.id(), default_target.sha) - .context(format!( - "failed to find merge base between {} and {}", - upstream.id(), - default_target.sha - ))?; + let merge_base = gix_repo + .merge_base_with_graph( + git2_to_gix_object_id(upstream.id()), + git2_to_gix_object_id(default_target.sha), + &mut graph, + ) + .context(format!( + "failed to find merge base between {} and {}", + upstream.id(), + default_target.sha + ))?; + let merge_base = gitbutler_oxidize::gix_to_git2_oid(merge_base); let remote_commit_ids = HashSet::from_iter(repo.l( upstream.id(), LogUntil::Commit(merge_base), @@ -356,7 +369,8 @@ pub fn list_virtual_branches_cached( // find all commits on head that are not on target.sha let commits = repo.log(branch.head(), LogUntil::Commit(default_target.sha), false)?; - let check_commit = IsCommitIntegrated::new(ctx, &default_target)?; + let mut check_commit = + IsCommitIntegrated::new(ctx, &default_target, &gix_repo, &mut graph)?; let vbranch_commits = { let _span = tracing::debug_span!( "is-commit-integrated", @@ -397,9 +411,14 @@ pub fn list_virtual_branches_cached( .collect::>>()? }; - let merge_base = repo - .merge_base(default_target.sha, branch.head()) + let merge_base = gix_repo + .merge_base_with_graph( + git2_to_gix_object_id(default_target.sha), + git2_to_gix_object_id(branch.head()), + check_commit.graph, + ) .context("failed to find merge base")?; + let merge_base = gix_to_git2_oid(merge_base); let base_current = true; let upstream = upstream_branch.and_then(|upstream_branch| { @@ -436,8 +455,9 @@ pub fn list_virtual_branches_cached( ctx, &mut branch, &default_target, - &check_commit, + &mut check_commit, remote_commit_data, + &vbranch_commits, ) { Ok((series, force)) => { if series.iter().any(|s| s.upstream_reference.is_some()) { @@ -943,40 +963,50 @@ pub(crate) fn push( }) } -pub(crate) struct IsCommitIntegrated<'repo> { - repo: &'repo git2::Repository, - target_commit_id: git2::Oid, - remote_head_id: git2::Oid, +type MergeBaseCommitGraph<'repo, 'cache> = gix::revwalk::Graph< + 'repo, + 'cache, + gix::revision::plumbing::graph::Commit, +>; + +pub(crate) struct IsCommitIntegrated<'repo, 'cache, 'graph> { + gix_repo: &'repo gix::Repository, + graph: &'graph mut MergeBaseCommitGraph<'repo, 'cache>, + target_commit_id: gix::ObjectId, + upstream_tree_id: gix::ObjectId, upstream_commits: Vec, - /// A repository opened at the same path as `repo`, but with an in-memory ODB attached - /// to avoid writing intermediate objects. - inmemory_repo: git2::Repository, } -impl<'repo> IsCommitIntegrated<'repo> { - pub(crate) fn new(ctx: &'repo CommandContext, target: &Target) -> anyhow::Result { +impl<'repo, 'cache, 'graph> IsCommitIntegrated<'repo, 'cache, 'graph> { + pub(crate) fn new( + ctx: &'repo CommandContext, + target: &Target, + gix_repo: &'repo gix::Repository, + graph: &'graph mut MergeBaseCommitGraph<'repo, 'cache>, + ) -> anyhow::Result { let remote_branch = ctx .repository() .maybe_find_branch_by_refname(&target.branch.clone().into())? .ok_or(anyhow!("failed to get branch"))?; let remote_head = remote_branch.get().peel_to_commit()?; - let upstream_commits = + let mut upstream_commits = ctx.repository() .l(remote_head.id(), LogUntil::Commit(target.sha), false)?; - let inmemory_repo = ctx.repository().in_memory_repo()?; + upstream_commits.sort(); + let upstream_tree_id = ctx.repository().find_commit(remote_head.id())?.tree_id(); Ok(Self { - repo: ctx.repository(), - target_commit_id: target.sha, - remote_head_id: remote_head.id(), + gix_repo, + graph, + target_commit_id: git2_to_gix_object_id(target.sha), + upstream_tree_id: git2_to_gix_object_id(upstream_tree_id), upstream_commits, - inmemory_repo, }) } } -impl IsCommitIntegrated<'_> { - pub(crate) fn is_integrated(&self, commit: &git2::Commit) -> Result { - if self.target_commit_id == commit.id() { +impl IsCommitIntegrated<'_, '_, '_> { + pub(crate) fn is_integrated(&mut self, commit: &git2::Commit) -> Result { + if self.target_commit_id == git2_to_gix_object_id(commit.id()) { // could not be integrated if heads are the same. return Ok(false); } @@ -986,44 +1016,54 @@ impl IsCommitIntegrated<'_> { return Ok(false); } - if self.upstream_commits.contains(&commit.id()) { + if self.upstream_commits.binary_search(&commit.id()).is_ok() { return Ok(true); } - let merge_base_id = self.repo.merge_base(self.target_commit_id, commit.id())?; - if merge_base_id.eq(&commit.id()) { + let merge_base_id = self.gix_repo.merge_base_with_graph( + self.target_commit_id, + git2_to_gix_object_id(commit.id()), + self.graph, + )?; + if gix_to_git2_oid(merge_base_id).eq(&commit.id()) { // if merge branch is the same as branch head and there are upstream commits // then it's integrated return Ok(true); } - let merge_base = self.repo.find_commit(merge_base_id)?; - let merge_base_tree = merge_base.tree()?; - let upstream = self.repo.find_commit(self.remote_head_id)?; - let upstream_tree = upstream.tree()?; - - if merge_base_tree.id() == upstream_tree.id() { + let merge_base_tree_id = self.gix_repo.find_commit(merge_base_id)?.tree_id()?; + if merge_base_tree_id == self.upstream_tree_id { // if merge base is the same as upstream tree, then it's integrated return Ok(true); } // try to merge our tree into the upstream tree - let mut merge_index = self - .repo - .merge_trees(&merge_base_tree, &commit.tree()?, &upstream_tree, None) + let mut merge_options = self.gix_repo.tree_merge_options()?; + let conflict_kind = gix::merge::tree::UnresolvedConflict::Renames; + merge_options.fail_on_conflict = Some(conflict_kind); + let mut merge_output = self + .gix_repo + .merge_trees( + merge_base_tree_id, + git2_to_gix_object_id(commit.tree_id()), + self.upstream_tree_id, + Default::default(), + merge_options, + ) .context("failed to merge trees")?; - if merge_index.has_conflicts() { + if merge_output.has_unresolved_conflicts(conflict_kind) { return Ok(false); } - let merge_tree_oid = merge_index - .write_tree_to(&self.inmemory_repo) - .context("failed to write tree")?; + let merge_tree_id = merge_output + .tree + .write(|tree| self.gix_repo.write(tree)) + .map_err(|err| anyhow!("failed to write tree: {err}"))?; // if the merge_tree is the same as the new_target_tree and there are no files (uncommitted changes) // then the vbranch is fully merged - Ok(merge_tree_oid == upstream_tree.id()) + Ok(merge_tree_id == self.upstream_tree_id) } } From e4079e55784064997657915c29be7ddc801d1925 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Sat, 2 Nov 2024 19:45:42 +0100 Subject: [PATCH 5/5] avoid duplicate MD5 hash generation --- crates/gitbutler-branch-actions/src/status.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/crates/gitbutler-branch-actions/src/status.rs b/crates/gitbutler-branch-actions/src/status.rs index f19054fd92..f848492ff2 100644 --- a/crates/gitbutler-branch-actions/src/status.rs +++ b/crates/gitbutler-branch-actions/src/status.rs @@ -131,9 +131,7 @@ pub fn get_applied_status_cached( .filter_map(|claimed_hunk| { // if any of the current hunks intersects with the owned hunk, we want to keep it for (i, git_diff_hunk) in git_diff_hunks.iter().enumerate() { - if claimed_hunk == &Hunk::from(git_diff_hunk) - || claimed_hunk.intersects(git_diff_hunk) - { + if claimed_hunk.intersects(git_diff_hunk) { let hash = Hunk::hash_diff(&git_diff_hunk.diff_lines); if locks.contains_key(&hash) { return None; // Defer allocation to unclaimed hunks processing