From 17850bd21022854888752d7bb61c5465cc497a25 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Wed, 7 Aug 2024 10:51:46 +0200 Subject: [PATCH] Use `gix` for branch listing --- Cargo.lock | 452 ++++++++---------- Cargo.toml | 2 +- crates/gitbutler-branch-actions/Cargo.toml | 2 +- .../benches/branches.rs | 11 +- crates/gitbutler-branch-actions/src/branch.rs | 191 ++++---- .../tests/virtual_branches/list.rs | 2 +- crates/gitbutler-branch/src/lib.rs | 2 +- crates/gitbutler-branch/src/reference_ext.rs | 51 +- 8 files changed, 355 insertions(+), 358 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index eb8ebf46e..077c76f1c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -927,15 +927,6 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59" -[[package]] -name = "cmake" -version = "0.1.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130" -dependencies = [ - "cc", -] - [[package]] name = "cocoa" version = "0.24.1" @@ -1157,19 +1148,6 @@ dependencies = [ "itertools 0.10.5", ] -[[package]] -name = "crossbeam" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-queue", - "crossbeam-utils", -] - [[package]] name = "crossbeam-channel" version = "0.5.13" @@ -1198,15 +1176,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "crossbeam-queue" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "crossbeam-utils" version = "0.8.20" @@ -1674,7 +1643,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" dependencies = [ "crc32fast", - "libz-ng-sys", "miniz_oxide", ] @@ -2582,48 +2550,48 @@ dependencies = [ [[package]] name = "gix" version = "0.64.0" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ - "gix-actor 0.31.5 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-attributes 0.22.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-actor 0.31.5 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-attributes 0.22.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-command", - "gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-config", "gix-credentials", "gix-date 0.9.0", "gix-diff", "gix-dir", "gix-discover 0.33.0", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-filter", - "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-glob 0.16.4 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-ignore 0.11.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-index 0.33.1 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-lock 14.0.0 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-glob 0.16.4 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-ignore 0.11.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-index 0.33.1 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-lock 14.0.0 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-macros", "gix-negotiate", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-odb", "gix-pack", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-pathspec", "gix-prompt", "gix-ref 0.45.0", "gix-refspec", "gix-revision", - "gix-revwalk 0.13.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-sec 0.10.7 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-revwalk 0.13.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-sec 0.10.7 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-submodule", - "gix-tempfile 14.0.1 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-traverse 0.39.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-tempfile 14.0.1 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-traverse 0.39.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-url", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-worktree 0.34.1 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-worktree 0.34.1 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "once_cell", "smallvec", "thiserror", @@ -2646,11 +2614,11 @@ dependencies = [ [[package]] name = "gix-actor" version = "0.31.5" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", "gix-date 0.9.0", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "itoa 1.0.11", "thiserror", "winnow 0.6.16", @@ -2676,13 +2644,13 @@ dependencies = [ [[package]] name = "gix-attributes" version = "0.22.3" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-glob 0.16.4 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-quote 0.4.12 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-glob 0.16.4 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-quote 0.4.12 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "kstring", "smallvec", "thiserror", @@ -2701,7 +2669,7 @@ dependencies = [ [[package]] name = "gix-bitmap" version = "0.2.11" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "thiserror", ] @@ -2718,7 +2686,7 @@ dependencies = [ [[package]] name = "gix-chunk" version = "0.4.8" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "thiserror", ] @@ -2726,11 +2694,11 @@ dependencies = [ [[package]] name = "gix-command" version = "0.3.8" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "shell-words", ] @@ -2751,12 +2719,12 @@ dependencies = [ [[package]] name = "gix-commitgraph" version = "0.24.3" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-chunk 0.4.8 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-chunk 0.4.8 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "memmap2", "thiserror", ] @@ -2764,15 +2732,15 @@ dependencies = [ [[package]] name = "gix-config" version = "0.38.0" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", "gix-config-value", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-glob 0.16.4 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-glob 0.16.4 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-ref 0.45.0", - "gix-sec 0.10.7 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-sec 0.10.7 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "memchr", "once_cell", "smallvec", @@ -2784,11 +2752,11 @@ dependencies = [ [[package]] name = "gix-config-value" version = "0.14.7" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bitflags 2.6.0", "bstr", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "libc", "thiserror", ] @@ -2796,15 +2764,15 @@ dependencies = [ [[package]] name = "gix-credentials" version = "0.24.4" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", "gix-command", "gix-config-value", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-prompt", - "gix-sec 0.10.7 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-sec 0.10.7 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-url", "thiserror", ] @@ -2824,7 +2792,7 @@ dependencies = [ [[package]] name = "gix-date" version = "0.9.0" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", "itoa 1.0.11", @@ -2835,30 +2803,30 @@ dependencies = [ [[package]] name = "gix-diff" version = "0.44.1" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "thiserror", ] [[package]] name = "gix-dir" version = "0.6.0" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", "gix-discover 0.33.0", - "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-ignore 0.11.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-index 0.33.1 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-ignore 0.11.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-index 0.33.1 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-pathspec", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-worktree 0.34.1 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-worktree 0.34.1 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "thiserror", ] @@ -2881,15 +2849,15 @@ dependencies = [ [[package]] name = "gix-discover" version = "0.33.0" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", "dunce", - "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-ref 0.45.0", - "gix-sec 0.10.7 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-sec 0.10.7 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "thiserror", ] @@ -2911,20 +2879,18 @@ dependencies = [ [[package]] name = "gix-features" version = "0.38.2" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "crc32fast", "crossbeam-channel", "flate2", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "jwalk", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "libc", "once_cell", "parking_lot 0.12.3", "prodash 29.0.0", - "sha1", "sha1_smol", "thiserror", "walkdir", @@ -2933,19 +2899,19 @@ dependencies = [ [[package]] name = "gix-filter" version = "0.11.3" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", "encoding_rs", - "gix-attributes 0.22.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-attributes 0.22.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-command", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-packetline-blocking", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-quote 0.4.12 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-quote 0.4.12 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "smallvec", "thiserror", ] @@ -2964,11 +2930,11 @@ dependencies = [ [[package]] name = "gix-fs" version = "0.11.2" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "fastrand 2.1.0", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", ] [[package]] @@ -2986,12 +2952,12 @@ dependencies = [ [[package]] name = "gix-glob" version = "0.16.4" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bitflags 2.6.0", "bstr", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", ] [[package]] @@ -3007,7 +2973,7 @@ dependencies = [ [[package]] name = "gix-hash" version = "0.14.2" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "faster-hex", "thiserror", @@ -3027,9 +2993,9 @@ dependencies = [ [[package]] name = "gix-hashtable" version = "0.5.2" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "hashbrown 0.14.5", "parking_lot 0.12.3", ] @@ -3050,12 +3016,12 @@ dependencies = [ [[package]] name = "gix-ignore" version = "0.11.3" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-glob 0.16.4 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-glob 0.16.4 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "unicode-bom", ] @@ -3090,21 +3056,21 @@ dependencies = [ [[package]] name = "gix-index" version = "0.33.1" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bitflags 2.6.0", "bstr", "filetime", "fnv", - "gix-bitmap 0.2.11 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-lock 14.0.0 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-traverse 0.39.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-bitmap 0.2.11 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-lock 14.0.0 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-traverse 0.39.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "hashbrown 0.14.5", "itoa 1.0.11", "libc", @@ -3128,17 +3094,17 @@ dependencies = [ [[package]] name = "gix-lock" version = "14.0.0" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ - "gix-tempfile 14.0.1 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-tempfile 14.0.1 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "thiserror", ] [[package]] name = "gix-macros" version = "0.1.5" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "proc-macro2", "quote", @@ -3148,14 +3114,14 @@ dependencies = [ [[package]] name = "gix-negotiate" version = "0.13.2" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bitflags 2.6.0", - "gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-date 0.9.0", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-revwalk 0.13.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-revwalk 0.13.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "smallvec", "thiserror", ] @@ -3182,15 +3148,15 @@ dependencies = [ [[package]] name = "gix-object" version = "0.42.3" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-actor 0.31.5 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-actor 0.31.5 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-date 0.9.0", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "itoa 1.0.11", "smallvec", "thiserror", @@ -3200,17 +3166,17 @@ dependencies = [ [[package]] name = "gix-odb" version = "0.61.1" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "arc-swap", "gix-date 0.9.0", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-pack", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-quote 0.4.12 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-quote 0.4.12 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "parking_lot 0.12.3", "tempfile", "thiserror", @@ -3219,15 +3185,15 @@ dependencies = [ [[package]] name = "gix-pack" version = "0.51.1" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "clru", - "gix-chunk 0.4.8 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-chunk 0.4.8 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "memmap2", "smallvec", "thiserror", @@ -3237,11 +3203,11 @@ dependencies = [ [[package]] name = "gix-packetline-blocking" version = "0.17.4" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", "faster-hex", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "thiserror", ] @@ -3261,10 +3227,10 @@ dependencies = [ [[package]] name = "gix-path" version = "0.10.9" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "home", "once_cell", "thiserror", @@ -3273,21 +3239,21 @@ dependencies = [ [[package]] name = "gix-pathspec" version = "0.7.6" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bitflags 2.6.0", "bstr", - "gix-attributes 0.22.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-attributes 0.22.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-config-value", - "gix-glob 0.16.4 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-glob 0.16.4 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "thiserror", ] [[package]] name = "gix-prompt" version = "0.8.6" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "gix-command", "gix-config-value", @@ -3310,10 +3276,10 @@ dependencies = [ [[package]] name = "gix-quote" version = "0.4.12" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "thiserror", ] @@ -3342,18 +3308,18 @@ dependencies = [ [[package]] name = "gix-ref" version = "0.45.0" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ - "gix-actor 0.31.5 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-lock 14.0.0 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-tempfile 14.0.1 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-actor 0.31.5 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-lock 14.0.0 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-tempfile 14.0.1 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "memmap2", "thiserror", "winnow 0.6.16", @@ -3362,12 +3328,12 @@ dependencies = [ [[package]] name = "gix-refspec" version = "0.23.1" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-revision", - "gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "smallvec", "thiserror", ] @@ -3375,13 +3341,13 @@ dependencies = [ [[package]] name = "gix-revision" version = "0.27.2" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", "gix-date 0.9.0", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-revwalk 0.13.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-revwalk 0.13.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "thiserror", ] @@ -3403,13 +3369,13 @@ dependencies = [ [[package]] name = "gix-revwalk" version = "0.13.2" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ - "gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-date 0.9.0", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "smallvec", "thiserror", ] @@ -3429,10 +3395,10 @@ dependencies = [ [[package]] name = "gix-sec" version = "0.10.7" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bitflags 2.6.0", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "libc", "windows-sys 0.52.0", ] @@ -3440,11 +3406,11 @@ dependencies = [ [[package]] name = "gix-submodule" version = "0.12.0" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", "gix-config", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-pathspec", "gix-refspec", "gix-url", @@ -3469,9 +3435,9 @@ dependencies = [ [[package]] name = "gix-tempfile" version = "14.0.1" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ - "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "libc", "once_cell", "parking_lot 0.12.3", @@ -3513,7 +3479,7 @@ checksum = "f924267408915fddcd558e3f37295cc7d6a3e50f8bd8b606cee0808c3915157e" [[package]] name = "gix-trace" version = "0.1.9" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" [[package]] name = "gix-traverse" @@ -3535,15 +3501,15 @@ dependencies = [ [[package]] name = "gix-traverse" version = "0.39.2" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bitflags 2.6.0", - "gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-date 0.9.0", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-revwalk 0.13.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-revwalk 0.13.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "smallvec", "thiserror", ] @@ -3551,11 +3517,11 @@ dependencies = [ [[package]] name = "gix-url" version = "0.27.4" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "home", "thiserror", "url", @@ -3574,7 +3540,7 @@ dependencies = [ [[package]] name = "gix-utils" version = "0.1.12" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", "fastrand 2.1.0", @@ -3594,7 +3560,7 @@ dependencies = [ [[package]] name = "gix-validate" version = "0.8.5" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", "thiserror", @@ -3622,19 +3588,19 @@ dependencies = [ [[package]] name = "gix-worktree" version = "0.34.1" -source = "git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c#12313f2720bb509cb8fa5d7033560823beafb91c" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-attributes 0.22.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-glob 0.16.4 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-ignore 0.11.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-index 0.33.1 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", - "gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=12313f2720bb509cb8fa5d7033560823beafb91c)", + "gix-attributes 0.22.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-glob 0.16.4 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-ignore 0.11.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-index 0.33.1 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", + "gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", ] [[package]] @@ -4489,16 +4455,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "jwalk" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2735847566356cd2179a2a38264839308f7079fa96e6bd5a42d740460e003c56" -dependencies = [ - "crossbeam", - "rayon", -] - [[package]] name = "keyring" version = "2.3.3" @@ -4611,16 +4567,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "libz-ng-sys" -version = "1.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6409efc61b12687963e602df8ecf70e8ddacf95bc6576bcf16e3ac6328083c5" -dependencies = [ - "cmake", - "libc", -] - [[package]] name = "libz-sys" version = "1.1.18" @@ -6636,16 +6582,6 @@ dependencies = [ "cfg-if", "cpufeatures", "digest", - "sha1-asm", -] - -[[package]] -name = "sha1-asm" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "286acebaf8b67c1130aedffad26f594eff0c1292389158135327d2e23aed582b" -dependencies = [ - "cc", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 78e05b197..a133d4dea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,7 +34,7 @@ resolver = "2" [workspace.dependencies] # 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 = "12313f2720bb509cb8fa5d7033560823beafb91c", default-features = false, features = [] } +gix = { git = "https://github.com/Byron/gitoxide", rev = "29898e3010bd3332418c683f2ac96aff5c8e72fa", default-features = false, features = [] } git2 = { version = "0.18.3", features = [ "vendored-openssl", "vendored-libgit2", diff --git a/crates/gitbutler-branch-actions/Cargo.toml b/crates/gitbutler-branch-actions/Cargo.toml index 13401f4e5..7226a900a 100644 --- a/crates/gitbutler-branch-actions/Cargo.toml +++ b/crates/gitbutler-branch-actions/Cargo.toml @@ -43,7 +43,7 @@ reqwest = { version = "0.12.4", features = ["json"] } once_cell = "1.19" pretty_assertions = "1.4" gitbutler-testsupport.workspace = true -gix = { workspace = true, features = ["max-performance"] } +gix = { workspace = true, features = ["max-performance-safe"] } gitbutler-git = { workspace = true, features = ["test-askpass-path"] } glob = "0.3.1" serial_test = "3.1.1" diff --git a/crates/gitbutler-branch-actions/benches/branches.rs b/crates/gitbutler-branch-actions/benches/branches.rs index dcd2c3422..1098799c8 100644 --- a/crates/gitbutler-branch-actions/benches/branches.rs +++ b/crates/gitbutler-branch-actions/benches/branches.rs @@ -38,19 +38,14 @@ pub fn benchmark_list_branches(c: &mut Criterion) { ] { let mut group = c.benchmark_group(bench_name); let project = fixture_project(repo_name, script_name); + let ctx = CommandContext::open(&project).unwrap(); group.throughput(Throughput::Elements(num_references)); group .bench_function("no filter", |b| { - b.iter(|| { - let ctx = CommandContext::open(&project).unwrap(); - list_branches(black_box(&ctx), None, None) - }) + b.iter(|| list_branches(black_box(&ctx), None, None)) }) .bench_function("name-filter rejecting all", |b| { - b.iter(|| { - let ctx = CommandContext::open(&project).unwrap(); - list_branches(black_box(&ctx), None, Some(vec!["not available".into()])) - }) + b.iter(|| list_branches(black_box(&ctx), None, Some(vec!["not available".into()]))) }); } } diff --git a/crates/gitbutler-branch-actions/src/branch.rs b/crates/gitbutler-branch-actions/src/branch.rs index 0a1c86903..c2fb8f094 100644 --- a/crates/gitbutler-branch-actions/src/branch.rs +++ b/crates/gitbutler-branch-actions/src/branch.rs @@ -1,4 +1,15 @@ +use crate::VirtualBranchesExt; +use anyhow::{Context, Result}; +use bstr::{BStr, BString, ByteSlice}; use core::fmt; +use gitbutler_branch::{Branch as GitButlerBranch, BranchId, ReferenceExtGix, Target}; +use gitbutler_command_context::CommandContext; +use gitbutler_reference::normalize_branch_name; +use gix::prelude::ObjectIdExt; +use gix::reference::Category; +use serde::{Deserialize, Serialize}; +use std::borrow::Cow; +use std::collections::BTreeSet; use std::{ cmp::max, collections::{HashMap, HashSet}, @@ -6,49 +17,41 @@ use std::{ vec, }; -use anyhow::{Context, Result}; -use bstr::{BString, ByteSlice}; -use gitbutler_branch::{Branch as GitButlerBranch, BranchId, ReferenceExt, Target}; -use gitbutler_command_context::CommandContext; -use gitbutler_reference::normalize_branch_name; -use serde::{Deserialize, Serialize}; - -use crate::VirtualBranchesExt; - /// Returns a list of branches associated with this project. pub fn list_branches( ctx: &CommandContext, filter: Option, filter_branch_names: Option>, ) -> Result> { + let mut repo = gix::open(ctx.repository().path())?; + repo.object_cache_size_if_unset(1024 * 1024); let has_filter = filter.is_some(); let filter = filter.unwrap_or_default(); let vb_handle = ctx.project().virtual_branches(); + let platform = repo.references()?; let mut branches: Vec = vec![]; - for (branch, branch_type) in ctx.repository().branches(None)?.filter_map(Result::ok) { + for reference in platform.all()?.filter_map(Result::ok) { // Loosely match on branch names if let Some(branch_names) = &filter_branch_names { - let has_matching_name = branch_names.iter().any(|branch_name| { - if let Ok(Some(name)) = branch.name() { - name.ends_with(&branch_name.0) - } else { - false - } - }); + let has_matching_name = branch_names + .iter() + .any(|branch_name| reference.name().as_bstr().ends_with_str(&branch_name.0)); if !has_matching_name { continue; } } - match branch_type { - git2::BranchType::Local => { - branches.push(GroupBranch::Local(branch)); - } - git2::BranchType::Remote => { - branches.push(GroupBranch::Remote(branch)); - } + let is_local_branch = match reference.name().category() { + Some(Category::LocalBranch) => true, + Some(Category::RemoteBranch) => false, + _ => continue, }; + branches.push(if is_local_branch { + GroupBranch::Local(reference) + } else { + GroupBranch::Remote(reference) + }); } let virtual_branches = vb_handle.list_all_branches()?; @@ -56,7 +59,7 @@ pub fn list_branches( for branch in virtual_branches { branches.push(GroupBranch::Virtual(branch)); } - let mut branches = combine_branches(branches, ctx, vb_handle.get_default_target()?)?; + let mut branches = combine_branches(branches, &repo, vb_handle.get_default_target()?)?; // Apply the filter branches.retain(|branch| !has_filter || matches_all(branch, filter)); @@ -111,11 +114,11 @@ fn matches_all(branch: &BranchListing, filter: BranchListingFilter) -> bool { fn combine_branches( group_branches: Vec, - ctx: &CommandContext, + repo: &gix::Repository, target_branch: Target, ) -> Result> { - let repo = ctx.repository(); - let remotes = repo.remotes()?; + let remotes = repo.remote_names(); + let packed = repo.refs.cached_packed_buffer()?; // Group branches by identity let mut groups: HashMap> = HashMap::new(); @@ -134,8 +137,14 @@ fn combine_branches( Ok(groups .into_iter() .filter_map(|(identity, group_branches)| { - let res = - branch_group_to_branch(&identity, group_branches, repo, &remotes, &target_branch); + let res = branch_group_to_branch( + &identity, + group_branches, + repo, + packed.as_ref().map(|p| &***p), + &remotes, + &target_branch, + ); match res { Ok(branch_entry) => branch_entry, Err(err) => { @@ -155,17 +164,22 @@ fn combine_branches( fn branch_group_to_branch( identity: &BranchIdentity, group_branches: Vec, - repo: &git2::Repository, - remotes: &git2::string_array::StringArray, + repo: &gix::Repository, + packed: Option<&gix::refs::packed::Buffer>, + remotes: &BTreeSet>, target: &Target, ) -> Result> { - let mut vbranches = group_branches - .iter() - .filter_map(|branch| match branch { - GroupBranch::Virtual(vb) => Some(vb), - _ => None, - }) - .collect::>(); + let (local_branches, remote_branches, mut vbranches) = + group_branches + .into_iter() + .fold((Vec::new(), Vec::new(), Vec::new()), |mut acc, item| { + match item { + GroupBranch::Local(branch) => acc.0.push(branch), + GroupBranch::Remote(branch) => acc.1.push(branch), + GroupBranch::Virtual(branch) => acc.2.push(branch), + } + acc + }); let virtual_branch = if vbranches.len() > 1 { vbranches.sort_by_key(|virtual_branch| virtual_branch.updated_timestamp_ms); @@ -174,25 +188,10 @@ fn branch_group_to_branch( vbranches.first() }; - let remote_branches: Vec<&git2::Branch> = group_branches - .iter() - .filter_map(|branch| match branch { - GroupBranch::Remote(gb) => Some(gb), - _ => None, - }) - .collect(); - let local_branches: Vec<&git2::Branch> = group_branches - .iter() - .filter_map(|branch| match branch { - GroupBranch::Local(gb) => Some(gb), - _ => None, - }) - .collect(); - if virtual_branch.is_none() && local_branches .iter() - .any(|b| b.get().given_name(remotes).as_deref().ok() == Some(target.branch.branch())) + .any(|b| b.name().given_name(remotes).as_deref().ok() == Some(target.branch.branch())) { return Ok(None); } @@ -204,12 +203,11 @@ fn branch_group_to_branch( in_workspace: branch.in_workspace, }); + // TODO(ST): keep the type alive, don't reduce to BString let mut remotes: Vec = Vec::new(); for branch in remote_branches.iter() { - if let Some(name) = branch.get().name() { - if let Ok(remote_name) = repo.branch_remote_name(name) { - remotes.push(remote_name.as_bstr().into()); - } + if let Some(remote_name) = branch.remote_name(gix::remote::Direction::Fetch) { + remotes.push(remote_name.as_bstr().into()); } } @@ -218,21 +216,22 @@ fn branch_group_to_branch( // The head commit for which we calculate statistics. // If there is a virtual branch let's get it's head. Alternatively, pick the first local branch and use it's head. // If there are no local branches, pick the first remote branch. - let head = if let Some(vbranch) = virtual_branch { - Some(vbranch.head) - } else if let Some(branch) = local_branches.first().cloned() { - branch.get().peel_to_commit().ok().map(|c| c.id()) - } else if let Some(branch) = remote_branches.first().cloned() { - branch.get().peel_to_commit().ok().map(|c| c.id()) + let head_commit = if let Some(vbranch) = virtual_branch { + Some(git2_to_gix_object_id(vbranch.head).attach(repo)) + } else if let Some(mut branch) = local_branches.into_iter().next() { + branch.peel_to_id_in_place_packed(packed).ok() + } else if let Some(mut branch) = remote_branches.into_iter().next() { + branch.peel_to_id_in_place_packed(packed).ok() } else { None } .context("Could not get any valid reference in order to build branch stats")?; - let head_commit = repo.find_commit(head)?; - // If this was a virtual branch and there was never any remote set, use the virtual branch name as the identity + let head = gix_to_git2_oid(head_commit.detach()); + let head_commit = head_commit.object()?.try_into_commit()?; + let head_commit = head_commit.decode()?; let last_modified_ms = max( - (head_commit.time().seconds() * 1000) as u128, + (head_commit.time().seconds * 1000) as u128, virtual_branch.map_or(0, |x| x.updated_timestamp_ms), ); let last_commiter = head_commit.author().into(); @@ -248,30 +247,37 @@ fn branch_group_to_branch( })) } +fn gix_to_git2_oid(id: gix::ObjectId) -> git2::Oid { + git2::Oid::from_bytes(id.as_bytes()).expect("always valid") +} + +fn git2_to_gix_object_id(id: git2::Oid) -> gix::ObjectId { + gix::ObjectId::try_from(id.as_bytes()).expect("git2 oid is always valid") +} + /// A sum type of branch that can be a plain git branch or a virtual branch #[allow(clippy::large_enum_variant)] enum GroupBranch<'a> { - Local(git2::Branch<'a>), - Remote(git2::Branch<'a>), + Local(gix::Reference<'a>), + Remote(gix::Reference<'a>), Virtual(GitButlerBranch), } impl fmt::Debug for GroupBranch<'_> { fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result { match self { - GroupBranch::Local(branch) | GroupBranch::Remote(branch) => { - let reference = branch.get(); - let target = reference - .target() - .expect("Failed to reference target in debug formatting"); - let name = reference - .name() - .expect("Failed to get reference name in debug"); - formatter - .debug_struct("GroupBranch::Local/Remote") - .field("0", &&format!("id: {}, name: {}", target, name).as_str()) - .finish() - } + GroupBranch::Local(branch) | GroupBranch::Remote(branch) => formatter + .debug_struct("GroupBranch::Local/Remote") + .field( + "0", + &format!( + "id: {:?}, name: {}", + branch.target(), + branch.name().as_bstr() + ) + .as_str(), + ) + .finish(), GroupBranch::Virtual(branch) => formatter .debug_struct("GroupBranch::Virtal") .field("0", branch) @@ -284,10 +290,11 @@ impl GroupBranch<'_> { /// A name identifier for the branch. When multiple branches (e.g. virtual, local, remote) have the same identity, /// they are grouped together under the same `Branch` entry. /// `None` means an identity could not be obtained, which makes this branch odd enough to ignore. - fn identity(&self, remotes: &git2::string_array::StringArray) -> Option { + fn identity(&self, remotes: &BTreeSet>) -> Option { match self { - GroupBranch::Local(branch) => branch.get().given_name(remotes).ok(), - GroupBranch::Remote(branch) => branch.get().given_name(remotes).ok(), + GroupBranch::Local(branch) | GroupBranch::Remote(branch) => { + branch.name().given_name(remotes).ok() + } // The identity of a Virtual branch is derived from the source refname, upstream or the branch given name, in that order GroupBranch::Virtual(branch) => { let name_from_source = branch.source_refname.as_ref().and_then(|n| n.branch()); @@ -354,7 +361,7 @@ pub struct BranchListing { /// The head of interest for the branch group, used for calculating branch statistics. /// If there is a virtual branch, a local branch and remote branches, the head is determined in the following order: /// 1. The head of the virtual branch - /// 2. The head of the local branch + /// 2. The head of the first local branch /// 3. The head of the first remote branch #[serde(skip)] pub head: git2::Oid, @@ -363,6 +370,7 @@ pub struct BranchListing { /// Represents a "commit author" or "signature", based on the data from the git history #[derive(Debug, Clone, Serialize, PartialEq, Eq, Hash)] pub struct Author { + // TODO(ST): use `BString` here to not degenerate information /// The name of the author as configured in the git config pub name: Option, /// The email of the author as configured in the git config @@ -403,6 +411,15 @@ impl From> for Author { } } +impl From> for Author { + fn from(value: gix::actor::SignatureRef<'_>) -> Self { + Author { + name: Some(value.name.to_string()), + email: Some(value.email.to_string()), + } + } +} + /// Represents a reference to an associated virtual branch #[derive(Debug, Clone, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] diff --git a/crates/gitbutler-branch-actions/tests/virtual_branches/list.rs b/crates/gitbutler-branch-actions/tests/virtual_branches/list.rs index 0ff16469e..83e0321e5 100644 --- a/crates/gitbutler-branch-actions/tests/virtual_branches/list.rs +++ b/crates/gitbutler-branch-actions/tests/virtual_branches/list.rs @@ -125,7 +125,7 @@ fn one_branch_on_integration_multiple_remotes() -> Result<()> { &list[0], ExpectedBranchListing { identity: "main".into(), - remotes: vec!["other-remote", "origin"], + remotes: vec!["origin", "other-remote"], virtual_branch_given_name: Some("main"), virtual_branch_in_workspace: true, has_local: true, diff --git a/crates/gitbutler-branch/src/lib.rs b/crates/gitbutler-branch/src/lib.rs index e758c6b30..04cf5a144 100644 --- a/crates/gitbutler-branch/src/lib.rs +++ b/crates/gitbutler-branch/src/lib.rs @@ -6,7 +6,7 @@ use bstr::ByteSlice; mod branch_ext; pub use branch_ext::BranchExt; mod reference_ext; -pub use reference_ext::ReferenceExt; +pub use reference_ext::{ReferenceExt, ReferenceExtGix}; mod dedup; pub use dedup::{dedup, dedup_fmt}; mod file_ownership; diff --git a/crates/gitbutler-branch/src/reference_ext.rs b/crates/gitbutler-branch/src/reference_ext.rs index 9f687a3ee..f7e693cf1 100644 --- a/crates/gitbutler-branch/src/reference_ext.rs +++ b/crates/gitbutler-branch/src/reference_ext.rs @@ -1,5 +1,9 @@ -use anyhow::Result; +use anyhow::{Context, Result}; +use bstr::{BStr, ByteSlice}; +use gix::refs::Category; use itertools::Itertools; +use std::borrow::Cow; +use std::collections::BTreeSet; pub trait ReferenceExt { /// Fetches a branches name without the remote name attached @@ -13,6 +17,19 @@ pub trait ReferenceExt { fn given_name(&self, remotes: &git2::string_array::StringArray) -> Result; } +// TODO(ST): replace the original with this one. +pub trait ReferenceExtGix { + /// Fetches a branches name without the remote name attached + /// + /// refs/heads/my-branch -> my-branch + /// refs/remotes/origin/my-branch -> my-branch + /// refs/remotes/Byron/gitbutler/my-branch -> my-branch (where the remote is Byron/gitbutler) + /// + /// An ideal implementation wouldn't require us to list all the references, + /// but there doesn't seem to be a libgit2 solution to this. + fn given_name(&self, remotes: &BTreeSet>) -> Result; +} + impl<'repo> ReferenceExt for git2::Reference<'repo> { fn given_name(&self, remotes: &git2::string_array::StringArray) -> Result { if self.is_remote() { @@ -46,3 +63,35 @@ impl<'repo> ReferenceExt for git2::Reference<'repo> { } } } + +impl ReferenceExtGix for &gix::refs::FullNameRef { + // TODO: make this `identity()`, and use `BranchIdentity` type. + fn given_name(&self, remotes: &BTreeSet>) -> Result { + let (category, shorthand_name) = self + .category_and_short_name() + .context("Branch could not be categorized")?; + if !matches!(category, Category::RemoteBranch) { + return Ok(shorthand_name.to_string()); + } + + let longest_remote = remotes + .iter() + .rfind(|reference_name| shorthand_name.starts_with(reference_name)) + .ok_or(anyhow::anyhow!( + "Failed to find remote branch's corresponding remote" + ))?; + + let shorthand_name: &BStr = shorthand_name + .strip_prefix(longest_remote.as_bytes()) + .and_then(|str| str.strip_prefix(b"/")) + .ok_or(anyhow::anyhow!( + "Failed to cut remote name {} off of shorthand name {}", + longest_remote, + shorthand_name + ))? + .into(); + + // TODO(correctness): this should be `BString`, but can't change it yet. + Ok(shorthand_name.to_string()) + } +}