diff --git a/Cargo.lock b/Cargo.lock index f7e7b49b8..a18dbb273 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -534,9 +534,6 @@ name = "bitflags" version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" -dependencies = [ - "serde", -] [[package]] name = "bitvec" @@ -2390,7 +2387,6 @@ version = "0.0.0" dependencies = [ "bstr", "git2", - "gix", "serde", ] @@ -2556,53 +2552,49 @@ dependencies = [ [[package]] name = "gix" version = "0.64.0" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ - "gix-actor 0.31.5 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-attributes 0.22.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-glob 0.16.4 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-ignore 0.11.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-index 0.33.1 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-lock 14.0.0 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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-mailmap", "gix-negotiate", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-pathspec", "gix-prompt", - "gix-protocol", "gix-ref 0.45.0", "gix-refspec", "gix-revision", - "gix-revwalk 0.13.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-sec 0.10.7 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-transport", - "gix-traverse 0.39.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-worktree 0.34.1 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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", - "serde", "smallvec", "thiserror", ] @@ -2624,13 +2616,12 @@ dependencies = [ [[package]] name = "gix-actor" version = "0.31.5" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", + "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "itoa 1.0.11", - "serde", "thiserror", "winnow 0.6.16", ] @@ -2655,15 +2646,14 @@ dependencies = [ [[package]] name = "gix-attributes" version = "0.22.3" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-glob 0.16.4 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-quote 0.4.12 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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", - "serde", "smallvec", "thiserror", "unicode-bom", @@ -2681,7 +2671,7 @@ dependencies = [ [[package]] name = "gix-bitmap" version = "0.2.11" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "thiserror", ] @@ -2698,7 +2688,7 @@ dependencies = [ [[package]] name = "gix-chunk" version = "0.4.8" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "thiserror", ] @@ -2706,11 +2696,11 @@ dependencies = [ [[package]] name = "gix-command" version = "0.3.8" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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", ] @@ -2731,29 +2721,28 @@ dependencies = [ [[package]] name = "gix-commitgraph" version = "0.24.3" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-chunk 0.4.8 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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", - "serde", "thiserror", ] [[package]] name = "gix-config" version = "0.38.0" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-glob 0.16.4 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", + "gix-sec 0.10.7 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "memchr", "once_cell", "smallvec", @@ -2765,11 +2754,11 @@ dependencies = [ [[package]] name = "gix-config-value" version = "0.14.7" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "libc", "thiserror", ] @@ -2777,17 +2766,16 @@ dependencies = [ [[package]] name = "gix-credentials" version = "0.24.4" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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", - "serde", "thiserror", ] @@ -2806,42 +2794,41 @@ dependencies = [ [[package]] name = "gix-date" version = "0.9.0" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", "itoa 1.0.11", "jiff", - "serde", "thiserror", ] [[package]] name = "gix-diff" version = "0.44.1" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-ignore 0.11.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-index 0.33.1 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-worktree 0.34.1 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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", ] @@ -2864,15 +2851,15 @@ dependencies = [ [[package]] name = "gix-discover" version = "0.33.0" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", + "gix-sec 0.10.7 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "thiserror", ] @@ -2894,14 +2881,14 @@ dependencies = [ [[package]] name = "gix-features" version = "0.38.2" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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", @@ -2914,19 +2901,19 @@ dependencies = [ [[package]] name = "gix-filter" version = "0.11.3" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-quote 0.4.12 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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", ] @@ -2945,11 +2932,11 @@ dependencies = [ [[package]] name = "gix-fs" version = "0.11.2" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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]] @@ -2967,13 +2954,12 @@ dependencies = [ [[package]] name = "gix-glob" version = "0.16.4" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "serde", + "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]] @@ -2989,10 +2975,9 @@ dependencies = [ [[package]] name = "gix-hash" version = "0.14.2" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "faster-hex", - "serde", "thiserror", ] @@ -3010,9 +2995,9 @@ dependencies = [ [[package]] name = "gix-hashtable" version = "0.5.2" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "hashbrown 0.14.5", "parking_lot 0.12.3", ] @@ -3033,13 +3018,12 @@ dependencies = [ [[package]] name = "gix-ignore" version = "0.11.3" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-glob 0.16.4 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "serde", + "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", ] @@ -3074,27 +3058,26 @@ dependencies = [ [[package]] name = "gix-index" version = "0.33.1" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-lock 14.0.0 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-traverse 0.39.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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", "memmap2", "rustix 0.38.34", - "serde", "smallvec", "thiserror", ] @@ -3113,46 +3096,34 @@ dependencies = [ [[package]] name = "gix-lock" version = "14.0.0" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ - "gix-tempfile 14.0.1 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "proc-macro2", "quote", "syn 2.0.68", ] -[[package]] -name = "gix-mailmap" -version = "0.23.5" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" -dependencies = [ - "bstr", - "gix-actor 0.31.5 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-date 0.9.0", - "serde", - "thiserror", -] - [[package]] name = "gix-negotiate" version = "0.13.2" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-revwalk 0.13.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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", ] @@ -3179,17 +3150,16 @@ dependencies = [ [[package]] name = "gix-object" version = "0.42.3" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-actor 0.31.5 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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", - "serde", "smallvec", "thiserror", "winnow 0.6.16", @@ -3198,19 +3168,18 @@ dependencies = [ [[package]] name = "gix-odb" version = "0.61.1" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-quote 0.4.12 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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", - "serde", "tempfile", "thiserror", ] @@ -3218,41 +3187,29 @@ dependencies = [ [[package]] name = "gix-pack" version = "0.51.1" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "clru", - "gix-chunk 0.4.8 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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", - "serde", "smallvec", "thiserror", "uluru", ] -[[package]] -name = "gix-packetline" -version = "0.17.5" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" -dependencies = [ - "bstr", - "faster-hex", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "thiserror", -] - [[package]] name = "gix-packetline-blocking" version = "0.17.4" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", + "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "thiserror", ] @@ -3272,10 +3229,10 @@ dependencies = [ [[package]] name = "gix-path" version = "0.10.9" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "home", "once_cell", "thiserror", @@ -3284,21 +3241,21 @@ dependencies = [ [[package]] name = "gix-pathspec" version = "0.7.6" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "gix-command", "gix-config-value", @@ -3307,24 +3264,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "gix-protocol" -version = "0.45.2" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" -dependencies = [ - "bstr", - "gix-credentials", - "gix-date 0.9.0", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-transport", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "maybe-async", - "serde", - "thiserror", - "winnow 0.6.16", -] - [[package]] name = "gix-quote" version = "0.4.12" @@ -3339,10 +3278,10 @@ dependencies = [ [[package]] name = "gix-quote" version = "0.4.12" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "thiserror", ] @@ -3371,20 +3310,19 @@ dependencies = [ [[package]] name = "gix-ref" version = "0.45.0" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ - "gix-actor 0.31.5 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-lock 14.0.0 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-tempfile 14.0.1 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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", - "serde", "thiserror", "winnow 0.6.16", ] @@ -3392,12 +3330,12 @@ dependencies = [ [[package]] name = "gix-refspec" version = "0.23.1" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", + "gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "smallvec", "thiserror", ] @@ -3405,14 +3343,13 @@ dependencies = [ [[package]] name = "gix-revision" version = "0.27.2" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-revwalk 0.13.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "serde", + "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", ] @@ -3434,13 +3371,13 @@ dependencies = [ [[package]] name = "gix-revwalk" version = "0.13.2" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ - "gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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", ] @@ -3460,23 +3397,22 @@ dependencies = [ [[package]] name = "gix-sec" version = "0.10.7" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "libc", - "serde", "windows-sys 0.52.0", ] [[package]] name = "gix-submodule" version = "0.12.0" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", + "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "gix-pathspec", "gix-refspec", "gix-url", @@ -3501,9 +3437,9 @@ dependencies = [ [[package]] name = "gix-tempfile" version = "14.0.1" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ - "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)", "libc", "once_cell", "parking_lot 0.12.3", @@ -3545,23 +3481,7 @@ checksum = "f924267408915fddcd558e3f37295cc7d6a3e50f8bd8b606cee0808c3915157e" [[package]] name = "gix-trace" version = "0.1.9" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" - -[[package]] -name = "gix-transport" -version = "0.42.2" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" -dependencies = [ - "bstr", - "gix-command", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-packetline", - "gix-quote 0.4.12 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-sec 0.10.7 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-url", - "serde", - "thiserror", -] +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" [[package]] name = "gix-traverse" @@ -3583,15 +3503,15 @@ dependencies = [ [[package]] name = "gix-traverse" version = "0.39.2" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +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=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-hashtable 0.5.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-revwalk 0.13.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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", ] @@ -3599,13 +3519,12 @@ dependencies = [ [[package]] name = "gix-url" version = "0.27.4" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", + "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", - "serde", "thiserror", "url", ] @@ -3623,7 +3542,7 @@ dependencies = [ [[package]] name = "gix-utils" version = "0.1.12" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", "fastrand 2.1.0", @@ -3643,7 +3562,7 @@ dependencies = [ [[package]] name = "gix-validate" version = "0.8.5" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", "thiserror", @@ -3671,20 +3590,19 @@ dependencies = [ [[package]] name = "gix-worktree" version = "0.34.1" -source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a" +source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa" dependencies = [ "bstr", - "gix-attributes 0.22.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-glob 0.16.4 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-ignore 0.11.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-index 0.33.1 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)", - "serde", + "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]] @@ -4579,7 +4497,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec3066350882a1cd6d950d055997f379ac37fd39f81cd4d8ed186032eb3c5747" dependencies = [ - "serde", "static_assertions", ] @@ -4770,17 +4687,6 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" -[[package]] -name = "maybe-async" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.68", -] - [[package]] name = "md5" version = "0.7.0" @@ -6772,9 +6678,6 @@ name = "smallvec" version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" -dependencies = [ - "serde", -] [[package]] name = "socket2" diff --git a/Cargo.toml b/Cargo.toml index 248bf4639..a133d4dea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,9 +33,8 @@ members = [ resolver = "2" [workspace.dependencies] -bstr = { version = "1.10.0", features = ["serde"] } # 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 = "7dff44754e0fdc369f92221468fb953bad9be60a", default-features = false, features = ["serde"] } +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 193ba8441..7226a900a 100644 --- a/crates/gitbutler-branch-actions/Cargo.toml +++ b/crates/gitbutler-branch-actions/Cargo.toml @@ -26,7 +26,7 @@ gitbutler-fs.workspace = true gitbutler-diff.workspace = true gitbutler-operating-modes.workspace = true serde = { workspace = true, features = ["std"] } -bstr.workspace = true +bstr = "1.10.0" diffy = "0.4.0" hex = "0.4.3" regex = "1.10" diff --git a/crates/gitbutler-branch-actions/src/base.rs b/crates/gitbutler-branch-actions/src/base.rs index 7b3656fd3..2e94bf058 100644 --- a/crates/gitbutler-branch-actions/src/base.rs +++ b/crates/gitbutler-branch-actions/src/base.rs @@ -31,9 +31,9 @@ pub struct BaseBranch { pub remote_url: String, pub push_remote_name: Option, pub push_remote_url: String, - #[serde(with = "gitbutler_serde::oid")] + #[serde(with = "gitbutler_serde::serde::oid")] pub base_sha: git2::Oid, - #[serde(with = "gitbutler_serde::oid")] + #[serde(with = "gitbutler_serde::serde::oid")] pub current_sha: git2::Oid, pub behind: usize, pub upstream_commits: Vec, diff --git a/crates/gitbutler-branch-actions/src/branch.rs b/crates/gitbutler-branch-actions/src/branch.rs index fe038a3ce..c2fb8f094 100644 --- a/crates/gitbutler-branch-actions/src/branch.rs +++ b/crates/gitbutler-branch-actions/src/branch.rs @@ -2,9 +2,7 @@ use crate::VirtualBranchesExt; use anyhow::{Context, Result}; use bstr::{BStr, BString, ByteSlice}; use core::fmt; -use gitbutler_branch::{ - Branch as GitButlerBranch, BranchId, BranchIdentity, ReferenceExtGix, Target, -}; +use gitbutler_branch::{Branch as GitButlerBranch, BranchId, ReferenceExtGix, Target}; use gitbutler_command_context::CommandContext; use gitbutler_reference::normalize_branch_name; use gix::prelude::ObjectIdExt; @@ -35,12 +33,9 @@ pub fn list_branches( 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| { - reference - .name() - .as_bstr() - .ends_with_str(branch_name.as_bstr()) - }); + 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; @@ -194,13 +189,9 @@ fn branch_group_to_branch( }; if virtual_branch.is_none() - && local_branches.iter().any(|b| { - b.name() - .identity(remotes) - .as_deref() - .ok() - .map_or(false, |identity| identity == target.branch.branch()) - }) + && local_branches + .iter() + .any(|b| b.name().given_name(remotes).as_deref().ok() == Some(target.branch.branch())) { return Ok(None); } @@ -212,10 +203,11 @@ fn branch_group_to_branch( in_workspace: branch.in_workspace, }); - let mut remotes: Vec> = Vec::new(); + // 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(remote_name) = branch.remote_name(gix::remote::Direction::Fetch) { - remotes.push(remote_name.to_owned()); + remotes.push(remote_name.as_bstr().into()); } } @@ -301,7 +293,7 @@ impl GroupBranch<'_> { fn identity(&self, remotes: &BTreeSet>) -> Option { match self { GroupBranch::Local(branch) | GroupBranch::Remote(branch) => { - branch.name().identity(remotes).ok() + 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) => { @@ -310,10 +302,10 @@ impl GroupBranch<'_> { let rich_name = branch.name.clone(); let rich_name = normalize_branch_name(&rich_name).ok()?; let identity = name_from_source.unwrap_or(name_from_upstream.unwrap_or(&rich_name)); - Some(identity.into()) + Some(identity.to_string()) } } - .map(BranchIdentity::from) + .map(BranchIdentity) } } @@ -321,13 +313,14 @@ impl GroupBranch<'_> { /// This excludes the target branch as well as gitbutler specific branches. fn should_list_git_branch(identity: &BranchIdentity) -> bool { // Exclude gitbutler technical branches (not useful for the user) - const TECHNICAL_IDENTITIES: &[&[u8]] = &[ - b"gitbutler/integration", - b"gitbutler/target", - b"gitbutler/oplog", - b"HEAD", - ]; - !TECHNICAL_IDENTITIES.contains(&identity.as_bytes()) + let is_technical = [ + "gitbutler/integration", + "gitbutler/target", + "gitbutler/oplog", + "HEAD", + ] + .contains(&&*identity.0); + !is_technical } /// A filter that can be applied to the branch listing @@ -354,8 +347,8 @@ pub struct BranchListing { pub name: BranchIdentity, /// This is a list of remotes that this branch can be found on (e.g. `origin`, `upstream` etc.), /// by collecting remotes from all local branches with the same identity that have a tracking setup. - #[serde(serialize_with = "gitbutler_serde::as_string_lossy_vec_remote_name")] - pub remotes: Vec>, + #[serde(serialize_with = "gitbutler_serde::serde::as_string_lossy_vec")] + pub remotes: Vec, /// The branch may or may not have a virtual branch associated with it. pub virtual_branch: Option, /// Timestamp in milliseconds since the branch was last updated. @@ -377,16 +370,43 @@ 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, + pub name: Option, /// The email of the author as configured in the git config - pub email: Option, + pub email: Option, +} + +/// The identity of a branch as to allow to group similar branches together. +/// +/// * For *local* branches, it is what's left without the standard prefix, like `refs/heads`, e.g. `main` +/// for `refs/heads/main` or `feat/one` for `refs/heads/feat/one`. +/// * For *remote* branches, it is what's without the prefix and remote name, like `main` for `refs/remotes/origin/main`. +/// or `feat/one` for `refs/remotes/my/special/remote/feat/one`. +/// * For virtual branches, it's either the above if there is a `source_refname` or an `upstream`, or it's the normalized +/// name of the virtual branch. +#[derive(Debug, Clone, Serialize, PartialEq, Eq, Hash, Ord, PartialOrd)] +pub struct BranchIdentity(String); + +/// Facilitate obtaining this type from the UI - otherwise it would be better not to have it as it should be +/// a particular thing, not any string. +impl From for BranchIdentity { + fn from(value: String) -> Self { + BranchIdentity(value) + } +} + +/// Also not for testing. +impl From<&str> for BranchIdentity { + fn from(value: &str) -> Self { + BranchIdentity(value.into()) + } } impl From> for Author { fn from(value: git2::Signature) -> Self { - let name = value.name().map(str::to_string).map(Into::into); - let email = value.email().map(str::to_string).map(Into::into); + let name = value.name().map(str::to_string); + let email = value.email().map(str::to_string); Author { name, email } } } @@ -394,8 +414,8 @@ impl From> for Author { impl From> for Author { fn from(value: gix::actor::SignatureRef<'_>) -> Self { Author { - name: Some(value.name.to_owned()), - email: Some(value.email.to_owned()), + name: Some(value.name.to_string()), + email: Some(value.email.to_string()), } } } @@ -416,13 +436,9 @@ pub struct VirtualBranchReference { /// a list of enriched branch data in the form of `BranchData`. pub fn get_branch_listing_details( ctx: &CommandContext, - branch_names: impl IntoIterator>, + branch_names: impl IntoIterator>, ) -> Result> { - let branch_names: Vec<_> = branch_names - .into_iter() - .map(TryInto::try_into) - .filter_map(Result::ok) - .collect(); + let branch_names: Vec<_> = branch_names.into_iter().map(Into::into).collect(); let repo = ctx.repository(); let branches = list_branches(ctx, None, Some(branch_names.clone()))?; let default_target = ctx @@ -520,10 +536,10 @@ pub struct BranchEntry { /// The name of the branch (e.g. `main`, `feature/branch`) pub name: String, /// The head commit of the branch - #[serde(with = "gitbutler_serde::oid")] + #[serde(with = "gitbutler_serde::serde::oid")] head: git2::Oid, /// The commit base of the branch - #[serde(with = "gitbutler_serde::oid")] + #[serde(with = "gitbutler_serde::serde::oid")] base: git2::Oid, /// The list of commits associated with the branch pub commits: Vec, @@ -552,17 +568,18 @@ pub struct RemoteBranchEntry { #[serde(rename_all = "camelCase")] pub struct CommitEntry { /// The commit sha that it can be referenced by - #[serde(with = "gitbutler_serde::oid")] + #[serde(with = "gitbutler_serde::serde::oid")] pub id: git2::Oid, /// If the commit is referencing a specific change, this is its change id pub change_id: Option, /// The commit message + #[serde(serialize_with = "gitbutler_serde::serde::as_string_lossy")] pub description: BString, /// The timestamp of the commit in milliseconds pub created_at: u128, /// The author of the commit pub authors: Vec, /// The parent commits of the commit - #[serde(with = "gitbutler_serde::oid_vec")] + #[serde(with = "gitbutler_serde::serde::oid_vec")] pub parent_ids: Vec, } diff --git a/crates/gitbutler-branch-actions/src/commit.rs b/crates/gitbutler-branch-actions/src/commit.rs index 4a629c010..ae8a3a791 100644 --- a/crates/gitbutler-branch-actions/src/commit.rs +++ b/crates/gitbutler-branch-actions/src/commit.rs @@ -21,15 +21,16 @@ use crate::{ #[derive(Debug, PartialEq, Clone, Serialize)] #[serde(rename_all = "camelCase")] pub struct VirtualBranchCommit { - #[serde(with = "gitbutler_serde::oid")] + #[serde(with = "gitbutler_serde::serde::oid")] pub id: git2::Oid, + #[serde(serialize_with = "gitbutler_serde::serde::as_string_lossy")] pub description: BString, pub created_at: u128, pub author: Author, pub is_remote: bool, pub files: Vec, pub is_integrated: bool, - #[serde(with = "gitbutler_serde::oid_vec")] + #[serde(with = "gitbutler_serde::serde::oid_vec")] pub parent_ids: Vec, pub branch_id: BranchId, pub change_id: Option, diff --git a/crates/gitbutler-branch-actions/src/hunk.rs b/crates/gitbutler-branch-actions/src/hunk.rs index fc758b9b1..cf10ad4b3 100644 --- a/crates/gitbutler-branch-actions/src/hunk.rs +++ b/crates/gitbutler-branch-actions/src/hunk.rs @@ -24,6 +24,7 @@ use serde::Serialize; #[serde(rename_all = "camelCase")] pub struct VirtualBranchHunk { pub id: String, + #[serde(serialize_with = "gitbutler_serde::serde::as_string_lossy")] pub diff: BString, pub modified_at: u128, pub file_path: PathBuf, @@ -49,7 +50,7 @@ pub struct VirtualBranchHunk { #[serde(rename_all = "camelCase")] pub struct HunkLock { pub branch_id: BranchId, - #[serde(with = "gitbutler_serde::oid")] + #[serde(with = "gitbutler_serde::serde::oid")] pub commit_id: git2::Oid, } diff --git a/crates/gitbutler-branch-actions/src/lib.rs b/crates/gitbutler-branch-actions/src/lib.rs index 8ffae0891..ff65038f9 100644 --- a/crates/gitbutler-branch-actions/src/lib.rs +++ b/crates/gitbutler-branch-actions/src/lib.rs @@ -41,6 +41,6 @@ mod commit; mod hunk; pub use branch::{ - get_branch_listing_details, list_branches, Author, BranchListing, BranchListingDetails, - BranchListingFilter, + get_branch_listing_details, list_branches, Author, BranchIdentity, BranchListing, + BranchListingDetails, BranchListingFilter, }; diff --git a/crates/gitbutler-branch-actions/src/remote.rs b/crates/gitbutler-branch-actions/src/remote.rs index c32b5a9fb..bd354bb29 100644 --- a/crates/gitbutler-branch-actions/src/remote.rs +++ b/crates/gitbutler-branch-actions/src/remote.rs @@ -23,7 +23,7 @@ use crate::author::Author; #[derive(Debug, Clone, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct RemoteBranch { - #[serde(with = "gitbutler_serde::oid")] + #[serde(with = "gitbutler_serde::serde::oid")] pub sha: git2::Oid, pub name: Refname, pub upstream: Option, @@ -36,13 +36,13 @@ pub struct RemoteBranch { #[derive(Debug, Clone, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct RemoteBranchData { - #[serde(with = "gitbutler_serde::oid")] + #[serde(with = "gitbutler_serde::serde::oid")] pub sha: git2::Oid, pub name: Refname, pub upstream: Option, pub behind: u32, pub commits: Vec, - #[serde(with = "gitbutler_serde::oid_opt", default)] + #[serde(with = "gitbutler_serde::serde::oid_opt", default)] pub fork_point: Option, } @@ -50,11 +50,12 @@ pub struct RemoteBranchData { #[serde(rename_all = "camelCase")] pub struct RemoteCommit { pub id: String, + #[serde(serialize_with = "gitbutler_serde::serde::as_string_lossy")] pub description: BString, pub created_at: u128, pub author: Author, pub change_id: Option, - #[serde(with = "gitbutler_serde::oid_vec")] + #[serde(with = "gitbutler_serde::serde::oid_vec")] pub parent_ids: Vec, } diff --git a/crates/gitbutler-branch-actions/src/virtual.rs b/crates/gitbutler-branch-actions/src/virtual.rs index 7334e4e5a..aa2b182ed 100644 --- a/crates/gitbutler-branch-actions/src/virtual.rs +++ b/crates/gitbutler-branch-actions/src/virtual.rs @@ -68,13 +68,13 @@ pub struct VirtualBranch { pub updated_at: u128, pub selected_for_changes: bool, pub allow_rebasing: bool, - #[serde(with = "gitbutler_serde::oid")] + #[serde(with = "gitbutler_serde::serde::oid")] pub head: git2::Oid, /// The merge base between the target branch and the virtual branch - #[serde(with = "gitbutler_serde::oid")] + #[serde(with = "gitbutler_serde::serde::oid")] pub merge_base: git2::Oid, /// The fork point between the target branch and the virtual branch - #[serde(with = "gitbutler_serde::oid_opt", default)] + #[serde(with = "gitbutler_serde::serde::oid_opt", default)] pub fork_point: Option, } diff --git a/crates/gitbutler-branch-actions/tests/virtual_branches/list.rs b/crates/gitbutler-branch-actions/tests/virtual_branches/list.rs index 809032959..83e0321e5 100644 --- a/crates/gitbutler-branch-actions/tests/virtual_branches/list.rs +++ b/crates/gitbutler-branch-actions/tests/virtual_branches/list.rs @@ -137,8 +137,8 @@ fn one_branch_on_integration_multiple_remotes() -> Result<()> { mod util { use anyhow::Result; - use gitbutler_branch::BranchIdentity; - use gitbutler_branch_actions::{BranchListing, BranchListingFilter}; + use bstr::BString; + use gitbutler_branch_actions::{BranchIdentity, BranchListing, BranchListingFilter}; use gitbutler_command_context::CommandContext; /// A flattened and simplified mirror of `BranchListing` for comparing the actual and expected data. @@ -154,7 +154,7 @@ mod util { impl Default for ExpectedBranchListing<'static> { fn default() -> Self { ExpectedBranchListing { - identity: "invalid-identity-should-always-be-specified".into(), + identity: ">(), "remotes: {msg}" ); diff --git a/crates/gitbutler-branch/Cargo.toml b/crates/gitbutler-branch/Cargo.toml index 8a76f02cd..dcb22737d 100644 --- a/crates/gitbutler-branch/Cargo.toml +++ b/crates/gitbutler-branch/Cargo.toml @@ -8,7 +8,7 @@ publish = false [dependencies] anyhow = "1.0.86" git2.workspace = true -gix = { workspace = true, features = ["serde"] } +gix.workspace = true gitbutler-reference.workspace = true gitbutler-serde.workspace = true gitbutler-id.workspace = true @@ -18,7 +18,7 @@ gitbutler-diff.workspace = true itertools = "0.13" toml = "0.8.15" serde = { workspace = true, features = ["std"] } -bstr.workspace = true +bstr = "1.10.0" md5 = "0.7.0" hex = "0.4.3" tracing = "0.1.40" diff --git a/crates/gitbutler-branch/src/branch.rs b/crates/gitbutler-branch/src/branch.rs index 0e89850da..548ba1a1e 100644 --- a/crates/gitbutler-branch/src/branch.rs +++ b/crates/gitbutler-branch/src/branch.rs @@ -1,9 +1,7 @@ use anyhow::Result; -use bstr::BStr; use gitbutler_id::id::Id; use gitbutler_reference::{normalize_branch_name, Refname, RemoteRefname, VirtualRefname}; use serde::{Deserialize, Serialize}; -use std::ops::Deref; use crate::ownership::BranchOwnershipClaims; @@ -26,7 +24,7 @@ pub struct Branch { /// The local tracking branch, holding the state of the remote. pub upstream: Option, // upstream_head is the last commit on we've pushed to the upstream branch - #[serde(with = "gitbutler_serde::oid_opt", default)] + #[serde(with = "gitbutler_serde::serde::oid_opt", default)] pub upstream_head: Option, #[serde( serialize_with = "serialize_u128", @@ -39,10 +37,10 @@ pub struct Branch { )] pub updated_timestamp_ms: u128, /// tree is the last git tree written to a session, or merge base tree if this is new. use this for delta calculation from the session data - #[serde(with = "gitbutler_serde::oid")] + #[serde(with = "gitbutler_serde::serde::oid")] pub tree: git2::Oid, /// head is id of the last "virtual" commit in this branch - #[serde(with = "gitbutler_serde::oid")] + #[serde(with = "gitbutler_serde::serde::oid")] pub head: git2::Oid, pub ownership: BranchOwnershipClaims, // order is the number by which UI should sort branches @@ -137,52 +135,3 @@ pub struct BranchCreateRequest { pub order: Option, pub selected_for_changes: Option, } - -/// The identity of a branch as to allow to group similar branches together. -/// -/// * For *local* branches, it is what's left without the standard prefix, like `refs/heads`, e.g. `main` -/// for `refs/heads/main` or `feat/one` for `refs/heads/feat/one`. -/// * For *remote* branches, it is what's without the prefix and remote name, like `main` for `refs/remotes/origin/main`. -/// or `feat/one` for `refs/remotes/my/special/remote/feat/one`. -/// * For virtual branches, it's either the above if there is a `source_refname` or an `upstream`, or it's the normalized -/// name of the virtual branch. -#[derive(Debug, Clone, Serialize, PartialEq, Eq, Hash, Ord, PartialOrd)] -pub struct BranchIdentity( - /// The identity is always a valid reference name, full or partial. - pub gix::refs::PartialName, -); - -impl Deref for BranchIdentity { - type Target = BStr; - - fn deref(&self) -> &Self::Target { - self.0.as_ref().as_bstr() - } -} - -/// Facilitate obtaining this type from the UI. -impl TryFrom for BranchIdentity { - type Error = gix::refs::name::Error; - - fn try_from(value: String) -> std::result::Result { - gix::refs::PartialName::try_from(value).map(BranchIdentity) - } -} - -/// Used in testing, and **panics** if the value isn't a valid partial ref name -impl From<&str> for BranchIdentity { - fn from(value: &str) -> Self { - gix::refs::PartialName::try_from(value) - .map(BranchIdentity) - .expect("BUG: value must be valid ref name") - } -} - -/// Used in for short-name conversions -impl TryFrom<&BStr> for BranchIdentity { - type Error = gix::refs::name::Error; - - fn try_from(value: &BStr) -> std::result::Result { - gix::refs::PartialName::try_from(value.to_owned()).map(BranchIdentity) - } -} diff --git a/crates/gitbutler-branch/src/lib.rs b/crates/gitbutler-branch/src/lib.rs index 773036604..04cf5a144 100644 --- a/crates/gitbutler-branch/src/lib.rs +++ b/crates/gitbutler-branch/src/lib.rs @@ -1,7 +1,7 @@ mod branch; use anyhow::Context; -pub use branch::{Branch, BranchCreateRequest, BranchId, BranchIdentity, BranchUpdateRequest}; +pub use branch::{Branch, BranchCreateRequest, BranchId, BranchUpdateRequest}; use bstr::ByteSlice; mod branch_ext; pub use branch_ext::BranchExt; diff --git a/crates/gitbutler-branch/src/reference_ext.rs b/crates/gitbutler-branch/src/reference_ext.rs index 83d8e6a38..f7e693cf1 100644 --- a/crates/gitbutler-branch/src/reference_ext.rs +++ b/crates/gitbutler-branch/src/reference_ext.rs @@ -1,4 +1,3 @@ -use crate::BranchIdentity; use anyhow::{Context, Result}; use bstr::{BStr, ByteSlice}; use gix::refs::Category; @@ -20,15 +19,15 @@ pub trait ReferenceExt { // TODO(ST): replace the original with this one. pub trait ReferenceExtGix { - /// Produces a name by removing all prefixes, leaving only its actual name. All known - /// `remotes` are needed to be able to strip remote names. + /// Fetches a branches name without the remote name attached /// - /// Here are some examples: + /// 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) /// - /// `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`) - fn identity(&self, remotes: &BTreeSet>) -> Result; + /// 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> { @@ -66,12 +65,13 @@ impl<'repo> ReferenceExt for git2::Reference<'repo> { } impl ReferenceExtGix for &gix::refs::FullNameRef { - fn identity(&self, remotes: &BTreeSet>) -> Result { + // 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.try_into()?); + return Ok(shorthand_name.to_string()); } let longest_remote = remotes @@ -91,6 +91,7 @@ impl ReferenceExtGix for &gix::refs::FullNameRef { ))? .into(); - Ok(shorthand_name.try_into()?) + // TODO(correctness): this should be `BString`, but can't change it yet. + Ok(shorthand_name.to_string()) } } diff --git a/crates/gitbutler-commit/Cargo.toml b/crates/gitbutler-commit/Cargo.toml index fb1de5b99..83636bb8b 100644 --- a/crates/gitbutler-commit/Cargo.toml +++ b/crates/gitbutler-commit/Cargo.toml @@ -7,5 +7,5 @@ publish = false [dependencies] git2.workspace = true -bstr.workspace = true +bstr = "1.10.0" uuid.workspace = true diff --git a/crates/gitbutler-diff/Cargo.toml b/crates/gitbutler-diff/Cargo.toml index 353633341..8293e1b40 100644 --- a/crates/gitbutler-diff/Cargo.toml +++ b/crates/gitbutler-diff/Cargo.toml @@ -7,7 +7,7 @@ publish = false [dependencies] git2.workspace = true -bstr.workspace = true +bstr = "1.10.0" md5 = "0.7.0" anyhow = "1.0.86" hex = "0.4.3" diff --git a/crates/gitbutler-diff/src/diff.rs b/crates/gitbutler-diff/src/diff.rs index b6552925c..feb45a6b8 100644 --- a/crates/gitbutler-diff/src/diff.rs +++ b/crates/gitbutler-diff/src/diff.rs @@ -49,7 +49,10 @@ pub struct GitHunk { pub new_start: u32, pub new_lines: u32, /// The `+`, `-` or ` ` prefixed lines of the diff produced by `git2`, along with their line separator. - #[serde(rename = "diff")] + #[serde( + rename = "diff", + serialize_with = "gitbutler_serde::serde::as_string_lossy" + )] pub diff_lines: BString, pub binary: bool, pub change_type: ChangeType, diff --git a/crates/gitbutler-fs/Cargo.toml b/crates/gitbutler-fs/Cargo.toml index 3ce2f763f..7a7376a1a 100644 --- a/crates/gitbutler-fs/Cargo.toml +++ b/crates/gitbutler-fs/Cargo.toml @@ -7,7 +7,7 @@ publish = false [dependencies] serde = { workspace = true, features = ["std"]} -bstr.workspace = true +bstr = "1.10.0" anyhow = "1.0.86" gix = { workspace = true, features = ["dirwalk", "credentials", "parallel"] } walkdir = "2.5.0" diff --git a/crates/gitbutler-oplog/src/entry.rs b/crates/gitbutler-oplog/src/entry.rs index 5456c663b..fd9df371f 100644 --- a/crates/gitbutler-oplog/src/entry.rs +++ b/crates/gitbutler-oplog/src/entry.rs @@ -16,10 +16,10 @@ use strum::EnumString; #[serde(rename_all = "camelCase")] pub struct Snapshot { /// The id of the commit that represents the snapshot - #[serde(rename = "id", with = "gitbutler_serde::oid")] + #[serde(rename = "id", with = "gitbutler_serde::serde::oid")] pub commit_id: git2::Oid, /// Snapshot creation time in seconds from Unix epoch seconds, based on a commit as `commit_id`. - #[serde(serialize_with = "gitbutler_serde::as_time_seconds_from_unix_epoch")] + #[serde(serialize_with = "gitbutler_serde::serde::as_time_seconds_from_unix_epoch")] pub created_at: git2::Time, /// The number of working directory lines added in the snapshot pub lines_added: usize, diff --git a/crates/gitbutler-oplog/src/state.rs b/crates/gitbutler-oplog/src/state.rs index f648af241..9ff06cb40 100644 --- a/crates/gitbutler-oplog/src/state.rs +++ b/crates/gitbutler-oplog/src/state.rs @@ -26,7 +26,7 @@ fn unix_epoch() -> SystemTime { #[derive(Serialize, Deserialize, Debug)] pub struct Oplog { /// This is the sha of the last oplog commit - #[serde(with = "gitbutler_serde::oid_opt", default)] + #[serde(with = "gitbutler_serde::serde::oid_opt", default)] pub head_sha: Option, /// The time when the last snapshot was created. Seconds since Epoch #[serde( diff --git a/crates/gitbutler-project/src/project.rs b/crates/gitbutler-project/src/project.rs index 485a91e0e..dfa7e58a8 100644 --- a/crates/gitbutler-project/src/project.rs +++ b/crates/gitbutler-project/src/project.rs @@ -61,7 +61,7 @@ impl FetchResult { #[derive(Debug, Deserialize, Serialize, Copy, Clone)] pub struct CodePushState { - #[serde(with = "gitbutler_serde::oid")] + #[serde(with = "gitbutler_serde::serde::oid")] pub id: git2::Oid, pub timestamp: time::SystemTime, } diff --git a/crates/gitbutler-reference/src/refname/remote.rs b/crates/gitbutler-reference/src/refname/remote.rs index 1f119b85f..1197619d9 100644 --- a/crates/gitbutler-reference/src/refname/remote.rs +++ b/crates/gitbutler-reference/src/refname/remote.rs @@ -6,11 +6,9 @@ use super::error::Error; #[derive(Debug, Clone, Hash, PartialEq, Eq)] pub struct Refname { - /// contains name of the remote, e.x. "origin" or "upstream" + // contains name of the remote, e.x. "origin" or "upstream" remote: String, - /// contains name of the branch, e.x. "master" or "main" - // TODO(ST): use `BString` for this, or maybe figure out if there could - // be better abstractions for `Refname`, or a better name for the type. + // contains name of the branch, e.x. "master" or "main" branch: String, } diff --git a/crates/gitbutler-repo/Cargo.toml b/crates/gitbutler-repo/Cargo.toml index 73397bb0a..e819f141f 100644 --- a/crates/gitbutler-repo/Cargo.toml +++ b/crates/gitbutler-repo/Cargo.toml @@ -9,7 +9,7 @@ publish = false git2.workspace = true gix.workspace = true anyhow = "1.0.86" -bstr.workspace = true +bstr = "1.10.0" tokio = { workspace = true, features = [ "rt-multi-thread", "rt", "macros", "sync" ] } gitbutler-git.workspace = true tracing = "0.1.40" diff --git a/crates/gitbutler-serde/Cargo.toml b/crates/gitbutler-serde/Cargo.toml index e2df75ace..f9a8f9164 100644 --- a/crates/gitbutler-serde/Cargo.toml +++ b/crates/gitbutler-serde/Cargo.toml @@ -7,6 +7,5 @@ publish = false [dependencies] git2.workspace = true -gix.workspace = true serde = { workspace = true, features = ["std"]} -bstr.workspace = true +bstr = "1.10.0" diff --git a/crates/gitbutler-serde/src/lib.rs b/crates/gitbutler-serde/src/lib.rs index c5e2dbd21..82b2d0949 100644 --- a/crates/gitbutler-serde/src/lib.rs +++ b/crates/gitbutler-serde/src/lib.rs @@ -1,89 +1 @@ -use serde::Serialize; - -pub fn as_string_lossy_vec_remote_name( - v: &[gix::remote::Name<'static>], - s: S, -) -> Result -where - S: serde::Serializer, -{ - let vec: Vec = v.iter().map(|v| v.as_bstr().to_string()).collect(); - vec.serialize(s) -} - -pub fn as_time_seconds_from_unix_epoch(v: &git2::Time, s: S) -> Result -where - S: serde::Serializer, -{ - v.seconds().serialize(s) -} - -pub mod oid_opt { - use serde::{Deserialize, Deserializer, Serialize}; - - pub fn serialize(v: &Option, s: S) -> Result - where - S: serde::Serializer, - { - v.as_ref().map(|v| v.to_string()).serialize(s) - } - - pub fn deserialize<'de, D>(d: D) -> Result, D::Error> - where - D: Deserializer<'de>, - { - let hex = as Deserialize>::deserialize(d)?; - hex.map(|v| { - v.parse() - .map_err(|err: git2::Error| serde::de::Error::custom(err.to_string())) - }) - .transpose() - } -} - -pub mod oid_vec { - use serde::{Deserialize, Deserializer, Serialize}; - - pub fn serialize(v: &[git2::Oid], s: S) -> Result - where - S: serde::Serializer, - { - let vec: Vec = v.iter().map(|v| v.to_string()).collect(); - vec.serialize(s) - } - - pub fn deserialize<'de, D>(d: D) -> Result, D::Error> - where - D: Deserializer<'de>, - { - let hex = as Deserialize>::deserialize(d)?; - let hex: Result, D::Error> = hex - .into_iter() - .map(|v| { - git2::Oid::from_str(v.as_str()) - .map_err(|err: git2::Error| serde::de::Error::custom(err.to_string())) - }) - .collect(); - hex - } -} - -pub mod oid { - use serde::{Deserialize, Deserializer, Serialize}; - - pub fn serialize(v: &git2::Oid, s: S) -> Result - where - S: serde::Serializer, - { - v.to_string().serialize(s) - } - - pub fn deserialize<'de, D>(d: D) -> Result - where - D: Deserializer<'de>, - { - let hex = String::deserialize(d)?; - hex.parse() - .map_err(|err: git2::Error| serde::de::Error::custom(err.to_string())) - } -} +pub mod serde; diff --git a/crates/gitbutler-serde/src/serde.rs b/crates/gitbutler-serde/src/serde.rs new file mode 100644 index 000000000..ba0d467f9 --- /dev/null +++ b/crates/gitbutler-serde/src/serde.rs @@ -0,0 +1,94 @@ +use bstr::{BString, ByteSlice}; +use serde::Serialize; + +pub fn as_string_lossy(v: &BString, s: S) -> Result +where + S: serde::Serializer, +{ + v.to_str_lossy().serialize(s) +} + +pub fn as_string_lossy_vec(v: &[BString], s: S) -> Result +where + S: serde::Serializer, +{ + let vec: Vec = v.iter().map(|v| v.to_string()).collect(); + vec.serialize(s) +} + +pub fn as_time_seconds_from_unix_epoch(v: &git2::Time, s: S) -> Result +where + S: serde::Serializer, +{ + v.seconds().serialize(s) +} + +pub mod oid_opt { + use serde::{Deserialize, Deserializer, Serialize}; + + pub fn serialize(v: &Option, s: S) -> Result + where + S: serde::Serializer, + { + v.as_ref().map(|v| v.to_string()).serialize(s) + } + + pub fn deserialize<'de, D>(d: D) -> Result, D::Error> + where + D: Deserializer<'de>, + { + let hex = as Deserialize>::deserialize(d)?; + hex.map(|v| { + v.parse() + .map_err(|err: git2::Error| serde::de::Error::custom(err.to_string())) + }) + .transpose() + } +} + +pub mod oid_vec { + use serde::{Deserialize, Deserializer, Serialize}; + + pub fn serialize(v: &[git2::Oid], s: S) -> Result + where + S: serde::Serializer, + { + let vec: Vec = v.iter().map(|v| v.to_string()).collect(); + vec.serialize(s) + } + + pub fn deserialize<'de, D>(d: D) -> Result, D::Error> + where + D: Deserializer<'de>, + { + let hex = as Deserialize>::deserialize(d)?; + let hex: Result, D::Error> = hex + .into_iter() + .map(|v| { + git2::Oid::from_str(v.as_str()) + .map_err(|err: git2::Error| serde::de::Error::custom(err.to_string())) + }) + .collect(); + hex + } +} + +pub mod oid { + use serde::{Deserialize, Deserializer, Serialize}; + + pub fn serialize(v: &git2::Oid, s: S) -> Result + where + S: serde::Serializer, + { + v.to_string().serialize(s) + } + + pub fn deserialize<'de, D>(d: D) -> Result + where + D: Deserializer<'de>, + { + let hex = String::deserialize(d)?; + hex.parse() + .map_err(|err: git2::Error| serde::de::Error::custom(err.to_string())) + } +} diff --git a/crates/gitbutler-url/Cargo.toml b/crates/gitbutler-url/Cargo.toml index ace8ff621..1a6ccb2f7 100644 --- a/crates/gitbutler-url/Cargo.toml +++ b/crates/gitbutler-url/Cargo.toml @@ -8,4 +8,4 @@ publish = false [dependencies] url = { version = "2.5.2", features = ["serde"] } thiserror.workspace = true -bstr.workspace = true +bstr = "1.10.0"