mirror of
https://github.com/gitbutlerapp/gitbutler.git
synced 2025-01-02 06:25:02 +03:00
Merge pull request #4658 from Byron/fixes
Fix complete app breakage due to BString serialization, and prevent it from occurring again
This commit is contained in:
commit
af6815d3e6
389
Cargo.lock
generated
389
Cargo.lock
generated
@ -2387,6 +2387,7 @@ version = "0.0.0"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"git2",
|
||||
"gix",
|
||||
"serde",
|
||||
]
|
||||
|
||||
@ -2552,48 +2553,48 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix"
|
||||
version = "0.64.0"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"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-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-command",
|
||||
"gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"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=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-features 0.38.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"gix-filter",
|
||||
"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-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-macros",
|
||||
"gix-negotiate",
|
||||
"gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-object 0.42.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"gix-odb",
|
||||
"gix-pack",
|
||||
"gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"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=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-sec 0.10.7 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"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-submodule",
|
||||
"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-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-traverse 0.39.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"gix-url",
|
||||
"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)",
|
||||
"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)",
|
||||
"once_cell",
|
||||
"smallvec",
|
||||
"thiserror",
|
||||
@ -2616,11 +2617,11 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-actor"
|
||||
version = "0.31.5"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"gix-date 0.9.0",
|
||||
"gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"itoa 1.0.11",
|
||||
"thiserror",
|
||||
"winnow 0.6.16",
|
||||
@ -2646,13 +2647,13 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-attributes"
|
||||
version = "0.22.3"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"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)",
|
||||
"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)",
|
||||
"kstring",
|
||||
"smallvec",
|
||||
"thiserror",
|
||||
@ -2671,7 +2672,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-bitmap"
|
||||
version = "0.2.11"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"thiserror",
|
||||
]
|
||||
@ -2688,7 +2689,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-chunk"
|
||||
version = "0.4.8"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"thiserror",
|
||||
]
|
||||
@ -2696,11 +2697,11 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-command"
|
||||
version = "0.3.8"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"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)",
|
||||
"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)",
|
||||
"shell-words",
|
||||
]
|
||||
|
||||
@ -2721,12 +2722,12 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-commitgraph"
|
||||
version = "0.24.3"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"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-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)",
|
||||
"memmap2",
|
||||
"thiserror",
|
||||
]
|
||||
@ -2734,15 +2735,15 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-config"
|
||||
version = "0.38.0"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"gix-config-value",
|
||||
"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-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-ref 0.45.0",
|
||||
"gix-sec 0.10.7 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-sec 0.10.7 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"memchr",
|
||||
"once_cell",
|
||||
"smallvec",
|
||||
@ -2754,11 +2755,11 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-config-value"
|
||||
version = "0.14.7"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"bstr",
|
||||
"gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"libc",
|
||||
"thiserror",
|
||||
]
|
||||
@ -2766,15 +2767,15 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-credentials"
|
||||
version = "0.24.4"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"gix-command",
|
||||
"gix-config-value",
|
||||
"gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"gix-prompt",
|
||||
"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-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-url",
|
||||
"thiserror",
|
||||
]
|
||||
@ -2794,7 +2795,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-date"
|
||||
version = "0.9.0"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"itoa 1.0.11",
|
||||
@ -2805,30 +2806,30 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-diff"
|
||||
version = "0.44.1"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"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-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)",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gix-dir"
|
||||
version = "0.6.0"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"gix-discover 0.33.0",
|
||||
"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-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-pathspec",
|
||||
"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)",
|
||||
"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)",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
@ -2851,15 +2852,15 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-discover"
|
||||
version = "0.33.0"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"dunce",
|
||||
"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-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-ref 0.45.0",
|
||||
"gix-sec 0.10.7 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-sec 0.10.7 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
@ -2881,14 +2882,14 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-features"
|
||||
version = "0.38.2"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"crc32fast",
|
||||
"crossbeam-channel",
|
||||
"flate2",
|
||||
"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)",
|
||||
"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)",
|
||||
"libc",
|
||||
"once_cell",
|
||||
"parking_lot 0.12.3",
|
||||
@ -2901,19 +2902,19 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-filter"
|
||||
version = "0.11.3"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"encoding_rs",
|
||||
"gix-attributes 0.22.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-attributes 0.22.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"gix-command",
|
||||
"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-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-packetline-blocking",
|
||||
"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)",
|
||||
"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)",
|
||||
"smallvec",
|
||||
"thiserror",
|
||||
]
|
||||
@ -2932,11 +2933,11 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-fs"
|
||||
version = "0.11.2"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"fastrand 2.1.0",
|
||||
"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)",
|
||||
"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)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -2954,12 +2955,12 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-glob"
|
||||
version = "0.16.4"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"bstr",
|
||||
"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)",
|
||||
"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)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -2975,7 +2976,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-hash"
|
||||
version = "0.14.2"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"faster-hex",
|
||||
"thiserror",
|
||||
@ -2995,9 +2996,9 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-hashtable"
|
||||
version = "0.5.2"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"hashbrown 0.14.5",
|
||||
"parking_lot 0.12.3",
|
||||
]
|
||||
@ -3018,12 +3019,12 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-ignore"
|
||||
version = "0.11.3"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"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)",
|
||||
"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)",
|
||||
"unicode-bom",
|
||||
]
|
||||
|
||||
@ -3058,21 +3059,21 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-index"
|
||||
version = "0.33.1"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"bstr",
|
||||
"filetime",
|
||||
"fnv",
|
||||
"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)",
|
||||
"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)",
|
||||
"hashbrown 0.14.5",
|
||||
"itoa 1.0.11",
|
||||
"libc",
|
||||
@ -3096,17 +3097,17 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-lock"
|
||||
version = "14.0.0"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"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-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)",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gix-macros"
|
||||
version = "0.1.5"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@ -3116,14 +3117,14 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-negotiate"
|
||||
version = "0.13.2"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"gix-date 0.9.0",
|
||||
"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)",
|
||||
"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)",
|
||||
"smallvec",
|
||||
"thiserror",
|
||||
]
|
||||
@ -3150,15 +3151,15 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-object"
|
||||
version = "0.42.3"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"gix-actor 0.31.5 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-actor 0.31.5 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"gix-date 0.9.0",
|
||||
"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)",
|
||||
"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)",
|
||||
"itoa 1.0.11",
|
||||
"smallvec",
|
||||
"thiserror",
|
||||
@ -3168,17 +3169,17 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-odb"
|
||||
version = "0.61.1"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"arc-swap",
|
||||
"gix-date 0.9.0",
|
||||
"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-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-pack",
|
||||
"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-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)",
|
||||
"parking_lot 0.12.3",
|
||||
"tempfile",
|
||||
"thiserror",
|
||||
@ -3187,15 +3188,15 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-pack"
|
||||
version = "0.51.1"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"clru",
|
||||
"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)",
|
||||
"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)",
|
||||
"memmap2",
|
||||
"smallvec",
|
||||
"thiserror",
|
||||
@ -3205,11 +3206,11 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-packetline-blocking"
|
||||
version = "0.17.4"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
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=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
@ -3229,10 +3230,10 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-path"
|
||||
version = "0.10.9"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-trace 0.1.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"home",
|
||||
"once_cell",
|
||||
"thiserror",
|
||||
@ -3241,21 +3242,21 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-pathspec"
|
||||
version = "0.7.6"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"bstr",
|
||||
"gix-attributes 0.22.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-attributes 0.22.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"gix-config-value",
|
||||
"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-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)",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gix-prompt"
|
||||
version = "0.8.6"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"gix-command",
|
||||
"gix-config-value",
|
||||
@ -3278,10 +3279,10 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-quote"
|
||||
version = "0.4.12"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-utils 0.1.12 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
@ -3310,18 +3311,18 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-ref"
|
||||
version = "0.45.0"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"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)",
|
||||
"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)",
|
||||
"memmap2",
|
||||
"thiserror",
|
||||
"winnow 0.6.16",
|
||||
@ -3330,12 +3331,12 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-refspec"
|
||||
version = "0.23.1"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-hash 0.14.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"gix-revision",
|
||||
"gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-validate 0.8.5 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"smallvec",
|
||||
"thiserror",
|
||||
]
|
||||
@ -3343,13 +3344,13 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-revision"
|
||||
version = "0.27.2"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"gix-date 0.9.0",
|
||||
"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)",
|
||||
"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)",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
@ -3371,13 +3372,13 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-revwalk"
|
||||
version = "0.13.2"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"gix-date 0.9.0",
|
||||
"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-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)",
|
||||
"smallvec",
|
||||
"thiserror",
|
||||
]
|
||||
@ -3397,10 +3398,10 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-sec"
|
||||
version = "0.10.7"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"libc",
|
||||
"windows-sys 0.52.0",
|
||||
]
|
||||
@ -3408,11 +3409,11 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-submodule"
|
||||
version = "0.12.0"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"gix-config",
|
||||
"gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-path 0.10.9 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"gix-pathspec",
|
||||
"gix-refspec",
|
||||
"gix-url",
|
||||
@ -3437,9 +3438,9 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-tempfile"
|
||||
version = "14.0.1"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-fs 0.11.2 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"libc",
|
||||
"once_cell",
|
||||
"parking_lot 0.12.3",
|
||||
@ -3481,7 +3482,7 @@ checksum = "f924267408915fddcd558e3f37295cc7d6a3e50f8bd8b606cee0808c3915157e"
|
||||
[[package]]
|
||||
name = "gix-trace"
|
||||
version = "0.1.9"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
|
||||
[[package]]
|
||||
name = "gix-traverse"
|
||||
@ -3503,15 +3504,15 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-traverse"
|
||||
version = "0.39.2"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa)",
|
||||
"gix-commitgraph 0.24.3 (git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a)",
|
||||
"gix-date 0.9.0",
|
||||
"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)",
|
||||
"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)",
|
||||
"smallvec",
|
||||
"thiserror",
|
||||
]
|
||||
@ -3519,11 +3520,11 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-url"
|
||||
version = "0.27.4"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"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)",
|
||||
"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)",
|
||||
"home",
|
||||
"thiserror",
|
||||
"url",
|
||||
@ -3542,7 +3543,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-utils"
|
||||
version = "0.1.12"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"fastrand 2.1.0",
|
||||
@ -3562,7 +3563,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-validate"
|
||||
version = "0.8.5"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"thiserror",
|
||||
@ -3590,19 +3591,19 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "gix-worktree"
|
||||
version = "0.34.1"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=29898e3010bd3332418c683f2ac96aff5c8e72fa#29898e3010bd3332418c683f2ac96aff5c8e72fa"
|
||||
source = "git+https://github.com/Byron/gitoxide?rev=7dff44754e0fdc369f92221468fb953bad9be60a#7dff44754e0fdc369f92221468fb953bad9be60a"
|
||||
dependencies = [
|
||||
"bstr",
|
||||
"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)",
|
||||
"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)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -33,8 +33,9 @@ members = [
|
||||
resolver = "2"
|
||||
|
||||
[workspace.dependencies]
|
||||
bstr = "1.10.0"
|
||||
# Add the `tracing` or `tracing-detail` features to see more of gitoxide in the logs. Useful to see which programs it invokes.
|
||||
gix = { git = "https://github.com/Byron/gitoxide", rev = "29898e3010bd3332418c683f2ac96aff5c8e72fa", default-features = false, features = [] }
|
||||
gix = { git = "https://github.com/Byron/gitoxide", rev = "7dff44754e0fdc369f92221468fb953bad9be60a", default-features = false, features = [] }
|
||||
git2 = { version = "0.18.3", features = [
|
||||
"vendored-openssl",
|
||||
"vendored-libgit2",
|
||||
|
@ -26,7 +26,7 @@ gitbutler-fs.workspace = true
|
||||
gitbutler-diff.workspace = true
|
||||
gitbutler-operating-modes.workspace = true
|
||||
serde = { workspace = true, features = ["std"] }
|
||||
bstr = "1.10.0"
|
||||
bstr.workspace = true
|
||||
diffy = "0.4.0"
|
||||
hex = "0.4.3"
|
||||
regex = "1.10"
|
||||
|
@ -31,9 +31,9 @@ pub struct BaseBranch {
|
||||
pub remote_url: String,
|
||||
pub push_remote_name: Option<String>,
|
||||
pub push_remote_url: String,
|
||||
#[serde(with = "gitbutler_serde::serde::oid")]
|
||||
#[serde(with = "gitbutler_serde::oid")]
|
||||
pub base_sha: git2::Oid,
|
||||
#[serde(with = "gitbutler_serde::serde::oid")]
|
||||
#[serde(with = "gitbutler_serde::oid")]
|
||||
pub current_sha: git2::Oid,
|
||||
pub behind: usize,
|
||||
pub upstream_commits: Vec<RemoteCommit>,
|
||||
|
@ -1,10 +1,13 @@
|
||||
use crate::VirtualBranchesExt;
|
||||
use anyhow::{Context, Result};
|
||||
use bstr::{BStr, BString, ByteSlice};
|
||||
use bstr::{BStr, ByteSlice};
|
||||
use core::fmt;
|
||||
use gitbutler_branch::{Branch as GitButlerBranch, BranchId, ReferenceExtGix, Target};
|
||||
use gitbutler_branch::{
|
||||
Branch as GitButlerBranch, BranchId, BranchIdentity, ReferenceExtGix, Target,
|
||||
};
|
||||
use gitbutler_command_context::CommandContext;
|
||||
use gitbutler_reference::normalize_branch_name;
|
||||
use gitbutler_serde::BStringForFrontend;
|
||||
use gix::prelude::ObjectIdExt;
|
||||
use gix::reference::Category;
|
||||
use serde::{Deserialize, Serialize};
|
||||
@ -33,9 +36,12 @@ 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.0));
|
||||
let has_matching_name = branch_names.iter().any(|branch_name| {
|
||||
reference
|
||||
.name()
|
||||
.as_bstr()
|
||||
.ends_with_str(branch_name.as_bstr())
|
||||
});
|
||||
|
||||
if !has_matching_name {
|
||||
continue;
|
||||
@ -189,9 +195,13 @@ fn branch_group_to_branch(
|
||||
};
|
||||
|
||||
if virtual_branch.is_none()
|
||||
&& local_branches
|
||||
.iter()
|
||||
.any(|b| b.name().given_name(remotes).as_deref().ok() == Some(target.branch.branch()))
|
||||
&& local_branches.iter().any(|b| {
|
||||
b.name()
|
||||
.identity(remotes)
|
||||
.as_deref()
|
||||
.ok()
|
||||
.map_or(false, |identity| identity == target.branch.branch())
|
||||
})
|
||||
{
|
||||
return Ok(None);
|
||||
}
|
||||
@ -203,11 +213,10 @@ 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<BString> = Vec::new();
|
||||
let mut remotes: Vec<gix::remote::Name<'static>> = Vec::new();
|
||||
for branch in remote_branches.iter() {
|
||||
if let Some(remote_name) = branch.remote_name(gix::remote::Direction::Fetch) {
|
||||
remotes.push(remote_name.as_bstr().into());
|
||||
remotes.push(remote_name.to_owned());
|
||||
}
|
||||
}
|
||||
|
||||
@ -293,7 +302,7 @@ impl GroupBranch<'_> {
|
||||
fn identity(&self, remotes: &BTreeSet<Cow<'_, BStr>>) -> Option<BranchIdentity> {
|
||||
match self {
|
||||
GroupBranch::Local(branch) | GroupBranch::Remote(branch) => {
|
||||
branch.name().given_name(remotes).ok()
|
||||
branch.name().identity(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) => {
|
||||
@ -302,10 +311,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.to_string())
|
||||
Some(identity.into())
|
||||
}
|
||||
}
|
||||
.map(BranchIdentity)
|
||||
.map(BranchIdentity::from)
|
||||
}
|
||||
}
|
||||
|
||||
@ -313,14 +322,13 @@ 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)
|
||||
let is_technical = [
|
||||
"gitbutler/integration",
|
||||
"gitbutler/target",
|
||||
"gitbutler/oplog",
|
||||
"HEAD",
|
||||
]
|
||||
.contains(&&*identity.0);
|
||||
!is_technical
|
||||
const TECHNICAL_IDENTITIES: &[&[u8]] = &[
|
||||
b"gitbutler/integration",
|
||||
b"gitbutler/target",
|
||||
b"gitbutler/oplog",
|
||||
b"HEAD",
|
||||
];
|
||||
!TECHNICAL_IDENTITIES.contains(&identity.as_bytes())
|
||||
}
|
||||
|
||||
/// A filter that can be applied to the branch listing
|
||||
@ -347,8 +355,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::serde::as_string_lossy_vec")]
|
||||
pub remotes: Vec<BString>,
|
||||
#[serde(serialize_with = "gitbutler_serde::as_string_lossy_vec_remote_name")]
|
||||
pub remotes: Vec<gix::remote::Name<'static>>,
|
||||
/// The branch may or may not have a virtual branch associated with it.
|
||||
pub virtual_branch: Option<VirtualBranchReference>,
|
||||
/// Timestamp in milliseconds since the branch was last updated.
|
||||
@ -370,43 +378,16 @@ 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<String>,
|
||||
pub name: Option<BStringForFrontend>,
|
||||
/// The email of the author as configured in the git config
|
||||
pub email: Option<String>,
|
||||
}
|
||||
|
||||
/// 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<String> 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())
|
||||
}
|
||||
pub email: Option<BStringForFrontend>,
|
||||
}
|
||||
|
||||
impl From<git2::Signature<'_>> for Author {
|
||||
fn from(value: git2::Signature) -> Self {
|
||||
let name = value.name().map(str::to_string);
|
||||
let email = value.email().map(str::to_string);
|
||||
let name = value.name().map(str::to_string).map(Into::into);
|
||||
let email = value.email().map(str::to_string).map(Into::into);
|
||||
Author { name, email }
|
||||
}
|
||||
}
|
||||
@ -414,8 +395,8 @@ impl From<git2::Signature<'_>> for Author {
|
||||
impl From<gix::actor::SignatureRef<'_>> for Author {
|
||||
fn from(value: gix::actor::SignatureRef<'_>) -> Self {
|
||||
Author {
|
||||
name: Some(value.name.to_string()),
|
||||
email: Some(value.email.to_string()),
|
||||
name: Some(value.name.to_owned().into()),
|
||||
email: Some(value.email.to_owned().into()),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -436,9 +417,13 @@ 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<Item = impl Into<BranchIdentity>>,
|
||||
branch_names: impl IntoIterator<Item = impl TryInto<BranchIdentity>>,
|
||||
) -> Result<Vec<BranchListingDetails>> {
|
||||
let branch_names: Vec<_> = branch_names.into_iter().map(Into::into).collect();
|
||||
let branch_names: Vec<_> = branch_names
|
||||
.into_iter()
|
||||
.map(TryInto::try_into)
|
||||
.filter_map(Result::ok)
|
||||
.collect();
|
||||
let repo = ctx.repository();
|
||||
let branches = list_branches(ctx, None, Some(branch_names.clone()))?;
|
||||
let default_target = ctx
|
||||
@ -536,10 +521,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::serde::oid")]
|
||||
#[serde(with = "gitbutler_serde::oid")]
|
||||
head: git2::Oid,
|
||||
/// The commit base of the branch
|
||||
#[serde(with = "gitbutler_serde::serde::oid")]
|
||||
#[serde(with = "gitbutler_serde::oid")]
|
||||
base: git2::Oid,
|
||||
/// The list of commits associated with the branch
|
||||
pub commits: Vec<CommitEntry>,
|
||||
@ -568,18 +553,17 @@ pub struct RemoteBranchEntry {
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct CommitEntry {
|
||||
/// The commit sha that it can be referenced by
|
||||
#[serde(with = "gitbutler_serde::serde::oid")]
|
||||
#[serde(with = "gitbutler_serde::oid")]
|
||||
pub id: git2::Oid,
|
||||
/// If the commit is referencing a specific change, this is its change id
|
||||
pub change_id: Option<String>,
|
||||
/// The commit message
|
||||
#[serde(serialize_with = "gitbutler_serde::serde::as_string_lossy")]
|
||||
pub description: BString,
|
||||
pub description: BStringForFrontend,
|
||||
/// The timestamp of the commit in milliseconds
|
||||
pub created_at: u128,
|
||||
/// The author of the commit
|
||||
pub authors: Vec<Author>,
|
||||
/// The parent commits of the commit
|
||||
#[serde(with = "gitbutler_serde::serde::oid_vec")]
|
||||
#[serde(with = "gitbutler_serde::oid_vec")]
|
||||
pub parent_ids: Vec<git2::Oid>,
|
||||
}
|
||||
|
@ -1,14 +1,13 @@
|
||||
use anyhow::{Context, Result};
|
||||
use bstr::BString;
|
||||
use gitbutler_branch::{Branch, BranchId};
|
||||
use gitbutler_command_context::CommandContext;
|
||||
use gitbutler_commit::commit_ext::CommitExt;
|
||||
use serde::Serialize;
|
||||
|
||||
use crate::{
|
||||
author::Author,
|
||||
file::{list_virtual_commit_files, VirtualBranchFile},
|
||||
};
|
||||
use anyhow::{Context, Result};
|
||||
use gitbutler_branch::{Branch, BranchId};
|
||||
use gitbutler_command_context::CommandContext;
|
||||
use gitbutler_commit::commit_ext::CommitExt;
|
||||
use gitbutler_serde::BStringForFrontend;
|
||||
use serde::Serialize;
|
||||
|
||||
// this is the struct that maps to the view `Commit` type in Typescript
|
||||
// it is derived from walking the git commits between the `Branch.head` commit
|
||||
@ -21,16 +20,15 @@ use crate::{
|
||||
#[derive(Debug, PartialEq, Clone, Serialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct VirtualBranchCommit {
|
||||
#[serde(with = "gitbutler_serde::serde::oid")]
|
||||
#[serde(with = "gitbutler_serde::oid")]
|
||||
pub id: git2::Oid,
|
||||
#[serde(serialize_with = "gitbutler_serde::serde::as_string_lossy")]
|
||||
pub description: BString,
|
||||
pub description: BStringForFrontend,
|
||||
pub created_at: u128,
|
||||
pub author: Author,
|
||||
pub is_remote: bool,
|
||||
pub files: Vec<VirtualBranchFile>,
|
||||
pub is_integrated: bool,
|
||||
#[serde(with = "gitbutler_serde::serde::oid_vec")]
|
||||
#[serde(with = "gitbutler_serde::oid_vec")]
|
||||
pub parent_ids: Vec<git2::Oid>,
|
||||
pub branch_id: BranchId,
|
||||
pub change_id: Option<String>,
|
||||
@ -62,7 +60,7 @@ pub(crate) fn commit_to_vbranch_commit(
|
||||
id: commit.id(),
|
||||
created_at: timestamp * 1000,
|
||||
author: commit.author().into(),
|
||||
description: message,
|
||||
description: message.into(),
|
||||
is_remote,
|
||||
files,
|
||||
is_integrated,
|
||||
|
@ -5,9 +5,9 @@ use std::{
|
||||
time::SystemTime,
|
||||
};
|
||||
|
||||
use bstr::BString;
|
||||
use gitbutler_branch::BranchId;
|
||||
use gitbutler_diff::{GitHunk, Hunk, HunkHash};
|
||||
use gitbutler_serde::BStringForFrontend;
|
||||
use itertools::Itertools;
|
||||
use md5::Digest;
|
||||
use serde::Serialize;
|
||||
@ -24,8 +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 diff: BStringForFrontend,
|
||||
pub modified_at: u128,
|
||||
pub file_path: PathBuf,
|
||||
#[serde(serialize_with = "gitbutler_branch::serde::hash_to_hex")]
|
||||
@ -50,7 +49,7 @@ pub struct VirtualBranchHunk {
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct HunkLock {
|
||||
pub branch_id: BranchId,
|
||||
#[serde(with = "gitbutler_serde::serde::oid")]
|
||||
#[serde(with = "gitbutler_serde::oid")]
|
||||
pub commit_id: git2::Oid,
|
||||
}
|
||||
|
||||
|
@ -41,6 +41,6 @@ mod commit;
|
||||
mod hunk;
|
||||
|
||||
pub use branch::{
|
||||
get_branch_listing_details, list_branches, Author, BranchIdentity, BranchListing,
|
||||
BranchListingDetails, BranchListingFilter,
|
||||
get_branch_listing_details, list_branches, Author, BranchListing, BranchListingDetails,
|
||||
BranchListingFilter,
|
||||
};
|
||||
|
@ -1,16 +1,15 @@
|
||||
use std::path::Path;
|
||||
|
||||
use crate::author::Author;
|
||||
use anyhow::{Context, Result};
|
||||
use bstr::BString;
|
||||
use gitbutler_branch::{ReferenceExt, Target, VirtualBranchesHandle};
|
||||
use gitbutler_command_context::CommandContext;
|
||||
use gitbutler_commit::commit_ext::CommitExt;
|
||||
use gitbutler_reference::{Refname, RemoteRefname};
|
||||
use gitbutler_repo::{LogUntil, RepoActionsExt, RepositoryExt};
|
||||
use gitbutler_serde::BStringForFrontend;
|
||||
use serde::Serialize;
|
||||
|
||||
use crate::author::Author;
|
||||
|
||||
// this struct is a mapping to the view `RemoteBranch` type in Typescript
|
||||
// found in src-tauri/src/routes/repo/[project_id]/types.ts
|
||||
//
|
||||
@ -23,7 +22,7 @@ use crate::author::Author;
|
||||
#[derive(Debug, Clone, Serialize, PartialEq)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct RemoteBranch {
|
||||
#[serde(with = "gitbutler_serde::serde::oid")]
|
||||
#[serde(with = "gitbutler_serde::oid")]
|
||||
pub sha: git2::Oid,
|
||||
pub name: Refname,
|
||||
pub upstream: Option<RemoteRefname>,
|
||||
@ -36,13 +35,13 @@ pub struct RemoteBranch {
|
||||
#[derive(Debug, Clone, Serialize, PartialEq)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct RemoteBranchData {
|
||||
#[serde(with = "gitbutler_serde::serde::oid")]
|
||||
#[serde(with = "gitbutler_serde::oid")]
|
||||
pub sha: git2::Oid,
|
||||
pub name: Refname,
|
||||
pub upstream: Option<RemoteRefname>,
|
||||
pub behind: u32,
|
||||
pub commits: Vec<RemoteCommit>,
|
||||
#[serde(with = "gitbutler_serde::serde::oid_opt", default)]
|
||||
#[serde(with = "gitbutler_serde::oid_opt", default)]
|
||||
pub fork_point: Option<git2::Oid>,
|
||||
}
|
||||
|
||||
@ -50,12 +49,11 @@ 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 description: BStringForFrontend,
|
||||
pub created_at: u128,
|
||||
pub author: Author,
|
||||
pub change_id: Option<String>,
|
||||
#[serde(with = "gitbutler_serde::serde::oid_vec")]
|
||||
#[serde(with = "gitbutler_serde::oid_vec")]
|
||||
pub parent_ids: Vec<git2::Oid>,
|
||||
}
|
||||
|
||||
@ -188,7 +186,7 @@ pub(crate) fn commit_to_remote_commit(commit: &git2::Commit) -> RemoteCommit {
|
||||
let parent_ids = commit.parents().map(|c| c.id()).collect();
|
||||
RemoteCommit {
|
||||
id: commit.id().to_string(),
|
||||
description: commit.message_bstr().to_owned(),
|
||||
description: commit.message_bstr().into(),
|
||||
created_at: commit.time().seconds().try_into().unwrap(),
|
||||
author: commit.author().into(),
|
||||
change_id: commit.change_id(),
|
||||
|
@ -68,13 +68,13 @@ pub struct VirtualBranch {
|
||||
pub updated_at: u128,
|
||||
pub selected_for_changes: bool,
|
||||
pub allow_rebasing: bool,
|
||||
#[serde(with = "gitbutler_serde::serde::oid")]
|
||||
#[serde(with = "gitbutler_serde::oid")]
|
||||
pub head: git2::Oid,
|
||||
/// The merge base between the target branch and the virtual branch
|
||||
#[serde(with = "gitbutler_serde::serde::oid")]
|
||||
#[serde(with = "gitbutler_serde::oid")]
|
||||
pub merge_base: git2::Oid,
|
||||
/// The fork point between the target branch and the virtual branch
|
||||
#[serde(with = "gitbutler_serde::serde::oid_opt", default)]
|
||||
#[serde(with = "gitbutler_serde::oid_opt", default)]
|
||||
pub fork_point: Option<git2::Oid>,
|
||||
}
|
||||
|
||||
|
@ -137,8 +137,8 @@ fn one_branch_on_integration_multiple_remotes() -> Result<()> {
|
||||
|
||||
mod util {
|
||||
use anyhow::Result;
|
||||
use bstr::BString;
|
||||
use gitbutler_branch_actions::{BranchIdentity, BranchListing, BranchListingFilter};
|
||||
use gitbutler_branch::BranchIdentity;
|
||||
use gitbutler_branch_actions::{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: "invalid-identity-should-always-be-specified".into(),
|
||||
remotes: vec![],
|
||||
virtual_branch_given_name: None,
|
||||
virtual_branch_in_workspace: false,
|
||||
@ -182,7 +182,7 @@ mod util {
|
||||
expected
|
||||
.remotes
|
||||
.into_iter()
|
||||
.map(BString::from)
|
||||
.map(|name| gix::remote::Name::Symbol(name.into()))
|
||||
.collect::<Vec<_>>(),
|
||||
"remotes: {msg}"
|
||||
);
|
||||
|
@ -8,7 +8,7 @@ publish = false
|
||||
[dependencies]
|
||||
anyhow = "1.0.86"
|
||||
git2.workspace = true
|
||||
gix.workspace = true
|
||||
gix = { workspace = true, features = [] }
|
||||
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 = "1.10.0"
|
||||
bstr.workspace = true
|
||||
md5 = "0.7.0"
|
||||
hex = "0.4.3"
|
||||
tracing = "0.1.40"
|
||||
|
@ -1,7 +1,9 @@
|
||||
use anyhow::Result;
|
||||
use bstr::{BStr, ByteSlice};
|
||||
use gitbutler_id::id::Id;
|
||||
use gitbutler_reference::{normalize_branch_name, Refname, RemoteRefname, VirtualRefname};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde::{Deserialize, Serialize, Serializer};
|
||||
use std::ops::Deref;
|
||||
|
||||
use crate::ownership::BranchOwnershipClaims;
|
||||
|
||||
@ -24,7 +26,7 @@ pub struct Branch {
|
||||
/// The local tracking branch, holding the state of the remote.
|
||||
pub upstream: Option<RemoteRefname>,
|
||||
// upstream_head is the last commit on we've pushed to the upstream branch
|
||||
#[serde(with = "gitbutler_serde::serde::oid_opt", default)]
|
||||
#[serde(with = "gitbutler_serde::oid_opt", default)]
|
||||
pub upstream_head: Option<git2::Oid>,
|
||||
#[serde(
|
||||
serialize_with = "serialize_u128",
|
||||
@ -37,10 +39,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::serde::oid")]
|
||||
#[serde(with = "gitbutler_serde::oid")]
|
||||
pub tree: git2::Oid,
|
||||
/// head is id of the last "virtual" commit in this branch
|
||||
#[serde(with = "gitbutler_serde::serde::oid")]
|
||||
#[serde(with = "gitbutler_serde::oid")]
|
||||
pub head: git2::Oid,
|
||||
pub ownership: BranchOwnershipClaims,
|
||||
// order is the number by which UI should sort branches
|
||||
@ -135,3 +137,61 @@ pub struct BranchCreateRequest {
|
||||
pub order: Option<usize>,
|
||||
pub selected_for_changes: Option<bool>,
|
||||
}
|
||||
|
||||
/// 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, PartialEq, Eq, Hash, Ord, PartialOrd)]
|
||||
pub struct BranchIdentity(
|
||||
/// The identity is always a valid reference name, full or partial.
|
||||
pub gix::refs::PartialName,
|
||||
);
|
||||
|
||||
impl Serialize for BranchIdentity {
|
||||
fn serialize<S>(&self, s: S) -> std::result::Result<S::Ok, S::Error>
|
||||
where
|
||||
S: Serializer,
|
||||
{
|
||||
self.0.as_ref().as_bstr().to_str_lossy().serialize(s)
|
||||
}
|
||||
}
|
||||
|
||||
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<String> for BranchIdentity {
|
||||
type Error = gix::refs::name::Error;
|
||||
|
||||
fn try_from(value: String) -> std::result::Result<Self, Self::Error> {
|
||||
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<Self, Self::Error> {
|
||||
gix::refs::PartialName::try_from(value.to_owned()).map(BranchIdentity)
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
mod branch;
|
||||
|
||||
use anyhow::Context;
|
||||
pub use branch::{Branch, BranchCreateRequest, BranchId, BranchUpdateRequest};
|
||||
pub use branch::{Branch, BranchCreateRequest, BranchId, BranchIdentity, BranchUpdateRequest};
|
||||
use bstr::ByteSlice;
|
||||
mod branch_ext;
|
||||
pub use branch_ext::BranchExt;
|
||||
|
@ -1,3 +1,4 @@
|
||||
use crate::BranchIdentity;
|
||||
use anyhow::{Context, Result};
|
||||
use bstr::{BStr, ByteSlice};
|
||||
use gix::refs::Category;
|
||||
@ -19,15 +20,15 @@ pub trait ReferenceExt {
|
||||
|
||||
// TODO(ST): replace the original with this one.
|
||||
pub trait ReferenceExtGix {
|
||||
/// Fetches a branches name without the remote name attached
|
||||
/// Produces a name by removing all prefixes, leaving only its actual name. All known
|
||||
/// `remotes` are needed to be able to strip remote names.
|
||||
///
|
||||
/// 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)
|
||||
/// Here are some examples:
|
||||
///
|
||||
/// 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<Cow<'_, BStr>>) -> Result<String>;
|
||||
/// `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<Cow<'_, BStr>>) -> Result<BranchIdentity>;
|
||||
}
|
||||
|
||||
impl<'repo> ReferenceExt for git2::Reference<'repo> {
|
||||
@ -65,13 +66,12 @@ 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<Cow<'_, BStr>>) -> Result<String> {
|
||||
fn identity(&self, remotes: &BTreeSet<Cow<'_, BStr>>) -> Result<BranchIdentity> {
|
||||
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());
|
||||
return Ok(shorthand_name.try_into()?);
|
||||
}
|
||||
|
||||
let longest_remote = remotes
|
||||
@ -91,7 +91,6 @@ impl ReferenceExtGix for &gix::refs::FullNameRef {
|
||||
))?
|
||||
.into();
|
||||
|
||||
// TODO(correctness): this should be `BString`, but can't change it yet.
|
||||
Ok(shorthand_name.to_string())
|
||||
Ok(shorthand_name.try_into()?)
|
||||
}
|
||||
}
|
||||
|
@ -7,5 +7,5 @@ publish = false
|
||||
|
||||
[dependencies]
|
||||
git2.workspace = true
|
||||
bstr = "1.10.0"
|
||||
bstr.workspace = true
|
||||
uuid.workspace = true
|
||||
|
@ -7,7 +7,7 @@ publish = false
|
||||
|
||||
[dependencies]
|
||||
git2.workspace = true
|
||||
bstr = "1.10.0"
|
||||
bstr.workspace = true
|
||||
md5 = "0.7.0"
|
||||
anyhow = "1.0.86"
|
||||
hex = "0.4.3"
|
||||
|
@ -7,6 +7,7 @@ use std::{
|
||||
|
||||
use anyhow::{Context, Result};
|
||||
use bstr::{BStr, BString, ByteSlice, ByteVec};
|
||||
use gitbutler_serde::BStringForFrontend;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use tracing::instrument;
|
||||
|
||||
@ -49,11 +50,8 @@ 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",
|
||||
serialize_with = "gitbutler_serde::serde::as_string_lossy"
|
||||
)]
|
||||
pub diff_lines: BString,
|
||||
#[serde(rename = "diff")]
|
||||
pub diff_lines: BStringForFrontend,
|
||||
pub binary: bool,
|
||||
pub change_type: ChangeType,
|
||||
}
|
||||
@ -310,7 +308,7 @@ pub fn hunks_by_filepath(
|
||||
old_lines,
|
||||
new_start,
|
||||
new_lines,
|
||||
diff_lines: line.into_owned(),
|
||||
diff_lines: line.into_owned().into(),
|
||||
binary: false,
|
||||
change_type,
|
||||
}
|
||||
@ -416,7 +414,7 @@ pub fn reverse_hunk(hunk: &GitHunk) -> Option<GitHunk> {
|
||||
old_lines: hunk.new_lines,
|
||||
new_start: hunk.old_start,
|
||||
new_lines: hunk.old_lines,
|
||||
diff_lines: diff,
|
||||
diff_lines: diff.into(),
|
||||
binary: hunk.binary,
|
||||
change_type: hunk.change_type,
|
||||
})
|
||||
|
@ -7,7 +7,7 @@ publish = false
|
||||
|
||||
[dependencies]
|
||||
serde = { workspace = true, features = ["std"]}
|
||||
bstr = "1.10.0"
|
||||
bstr.workspace = true
|
||||
anyhow = "1.0.86"
|
||||
gix = { workspace = true, features = ["dirwalk", "credentials", "parallel"] }
|
||||
walkdir = "2.5.0"
|
||||
|
@ -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::serde::oid")]
|
||||
#[serde(rename = "id", with = "gitbutler_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::serde::as_time_seconds_from_unix_epoch")]
|
||||
#[serde(serialize_with = "gitbutler_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,
|
||||
|
@ -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::serde::oid_opt", default)]
|
||||
#[serde(with = "gitbutler_serde::oid_opt", default)]
|
||||
pub head_sha: Option<git2::Oid>,
|
||||
/// The time when the last snapshot was created. Seconds since Epoch
|
||||
#[serde(
|
||||
|
@ -61,7 +61,7 @@ impl FetchResult {
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize, Copy, Clone)]
|
||||
pub struct CodePushState {
|
||||
#[serde(with = "gitbutler_serde::serde::oid")]
|
||||
#[serde(with = "gitbutler_serde::oid")]
|
||||
pub id: git2::Oid,
|
||||
pub timestamp: time::SystemTime,
|
||||
}
|
||||
|
@ -6,9 +6,11 @@ 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"
|
||||
/// 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.
|
||||
branch: String,
|
||||
}
|
||||
|
||||
|
@ -9,7 +9,7 @@ publish = false
|
||||
git2.workspace = true
|
||||
gix.workspace = true
|
||||
anyhow = "1.0.86"
|
||||
bstr = "1.10.0"
|
||||
bstr.workspace = true
|
||||
tokio = { workspace = true, features = [ "rt-multi-thread", "rt", "macros", "sync" ] }
|
||||
gitbutler-git.workspace = true
|
||||
tracing = "0.1.40"
|
||||
|
@ -7,5 +7,6 @@ publish = false
|
||||
|
||||
[dependencies]
|
||||
git2.workspace = true
|
||||
gix.workspace = true
|
||||
serde = { workspace = true, features = ["std"]}
|
||||
bstr = "1.10.0"
|
||||
bstr.workspace = true
|
||||
|
72
crates/gitbutler-serde/src/bstring.rs
Normal file
72
crates/gitbutler-serde/src/bstring.rs
Normal file
@ -0,0 +1,72 @@
|
||||
use bstr::{BStr, BString, ByteSlice};
|
||||
use serde::{Serialize, Serializer};
|
||||
use std::ops::{Deref, DerefMut};
|
||||
|
||||
/// A form of `BString` for use in structures that are going to be serialized for the frontend as string.
|
||||
///
|
||||
/// ### Note
|
||||
///
|
||||
/// `BString` provides its own serialize implementation, but serializes as list of bytes, something that
|
||||
/// would break the UI. Thus, whenever `BString` is involved, a custom serialization or this type
|
||||
/// will be required.
|
||||
#[derive(Clone, Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Default)]
|
||||
pub struct BStringForFrontend(BString);
|
||||
|
||||
impl Serialize for BStringForFrontend {
|
||||
fn serialize<S>(&self, s: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: Serializer,
|
||||
{
|
||||
self.0.to_str_lossy().serialize(s)
|
||||
}
|
||||
}
|
||||
|
||||
impl Deref for BStringForFrontend {
|
||||
type Target = BString;
|
||||
|
||||
fn deref(&self) -> &Self::Target {
|
||||
&self.0
|
||||
}
|
||||
}
|
||||
|
||||
impl DerefMut for BStringForFrontend {
|
||||
fn deref_mut(&mut self) -> &mut Self::Target {
|
||||
&mut self.0
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRef<[u8]> for BStringForFrontend {
|
||||
fn as_ref(&self) -> &[u8] {
|
||||
self.0.as_ref()
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRef<BStr> for BStringForFrontend {
|
||||
fn as_ref(&self) -> &BStr {
|
||||
self.0.as_ref()
|
||||
}
|
||||
}
|
||||
|
||||
impl From<String> for BStringForFrontend {
|
||||
fn from(value: String) -> Self {
|
||||
BStringForFrontend(value.into())
|
||||
}
|
||||
}
|
||||
|
||||
impl From<BString> for BStringForFrontend {
|
||||
fn from(value: BString) -> Self {
|
||||
BStringForFrontend(value)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<&BStr> for BStringForFrontend {
|
||||
fn from(value: &BStr) -> Self {
|
||||
BStringForFrontend(value.into())
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialEq<&str> for BStringForFrontend {
|
||||
fn eq(&self, other: &&str) -> bool {
|
||||
self.0.eq(other)
|
||||
}
|
||||
}
|
@ -1 +1,92 @@
|
||||
pub mod serde;
|
||||
use serde::Serialize;
|
||||
|
||||
mod bstring;
|
||||
pub use bstring::BStringForFrontend;
|
||||
|
||||
pub fn as_string_lossy_vec_remote_name<S>(
|
||||
v: &[gix::remote::Name<'static>],
|
||||
s: S,
|
||||
) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: serde::Serializer,
|
||||
{
|
||||
let vec: Vec<String> = v.iter().map(|v| v.as_bstr().to_string()).collect();
|
||||
vec.serialize(s)
|
||||
}
|
||||
|
||||
pub fn as_time_seconds_from_unix_epoch<S>(v: &git2::Time, s: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: serde::Serializer,
|
||||
{
|
||||
v.seconds().serialize(s)
|
||||
}
|
||||
|
||||
pub mod oid_opt {
|
||||
use serde::{Deserialize, Deserializer, Serialize};
|
||||
|
||||
pub fn serialize<S>(v: &Option<git2::Oid>, s: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: serde::Serializer,
|
||||
{
|
||||
v.as_ref().map(|v| v.to_string()).serialize(s)
|
||||
}
|
||||
|
||||
pub fn deserialize<'de, D>(d: D) -> Result<Option<git2::Oid>, D::Error>
|
||||
where
|
||||
D: Deserializer<'de>,
|
||||
{
|
||||
let hex = <Option<String> 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<S>(v: &[git2::Oid], s: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: serde::Serializer,
|
||||
{
|
||||
let vec: Vec<String> = v.iter().map(|v| v.to_string()).collect();
|
||||
vec.serialize(s)
|
||||
}
|
||||
|
||||
pub fn deserialize<'de, D>(d: D) -> Result<Vec<git2::Oid>, D::Error>
|
||||
where
|
||||
D: Deserializer<'de>,
|
||||
{
|
||||
let hex = <Vec<String> as Deserialize>::deserialize(d)?;
|
||||
let hex: Result<Vec<git2::Oid>, 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<S>(v: &git2::Oid, s: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: serde::Serializer,
|
||||
{
|
||||
v.to_string().serialize(s)
|
||||
}
|
||||
|
||||
pub fn deserialize<'de, D>(d: D) -> Result<git2::Oid, D::Error>
|
||||
where
|
||||
D: Deserializer<'de>,
|
||||
{
|
||||
let hex = String::deserialize(d)?;
|
||||
hex.parse()
|
||||
.map_err(|err: git2::Error| serde::de::Error::custom(err.to_string()))
|
||||
}
|
||||
}
|
||||
|
@ -1,94 +0,0 @@
|
||||
use bstr::{BString, ByteSlice};
|
||||
use serde::Serialize;
|
||||
|
||||
pub fn as_string_lossy<S>(v: &BString, s: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: serde::Serializer,
|
||||
{
|
||||
v.to_str_lossy().serialize(s)
|
||||
}
|
||||
|
||||
pub fn as_string_lossy_vec<S>(v: &[BString], s: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: serde::Serializer,
|
||||
{
|
||||
let vec: Vec<String> = v.iter().map(|v| v.to_string()).collect();
|
||||
vec.serialize(s)
|
||||
}
|
||||
|
||||
pub fn as_time_seconds_from_unix_epoch<S>(v: &git2::Time, s: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: serde::Serializer,
|
||||
{
|
||||
v.seconds().serialize(s)
|
||||
}
|
||||
|
||||
pub mod oid_opt {
|
||||
use serde::{Deserialize, Deserializer, Serialize};
|
||||
|
||||
pub fn serialize<S>(v: &Option<git2::Oid>, s: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: serde::Serializer,
|
||||
{
|
||||
v.as_ref().map(|v| v.to_string()).serialize(s)
|
||||
}
|
||||
|
||||
pub fn deserialize<'de, D>(d: D) -> Result<Option<git2::Oid>, D::Error>
|
||||
where
|
||||
D: Deserializer<'de>,
|
||||
{
|
||||
let hex = <Option<String> 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<S>(v: &[git2::Oid], s: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: serde::Serializer,
|
||||
{
|
||||
let vec: Vec<String> = v.iter().map(|v| v.to_string()).collect();
|
||||
vec.serialize(s)
|
||||
}
|
||||
|
||||
pub fn deserialize<'de, D>(d: D) -> Result<Vec<git2::Oid>, D::Error>
|
||||
where
|
||||
D: Deserializer<'de>,
|
||||
{
|
||||
let hex = <Vec<String> as Deserialize>::deserialize(d)?;
|
||||
let hex: Result<Vec<git2::Oid>, 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<S>(v: &git2::Oid, s: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: serde::Serializer,
|
||||
{
|
||||
v.to_string().serialize(s)
|
||||
}
|
||||
|
||||
pub fn deserialize<'de, D>(d: D) -> Result<git2::Oid, D::Error>
|
||||
where
|
||||
D: Deserializer<'de>,
|
||||
{
|
||||
let hex = String::deserialize(d)?;
|
||||
hex.parse()
|
||||
.map_err(|err: git2::Error| serde::de::Error::custom(err.to_string()))
|
||||
}
|
||||
}
|
@ -8,4 +8,4 @@ publish = false
|
||||
[dependencies]
|
||||
url = { version = "2.5.2", features = ["serde"] }
|
||||
thiserror.workspace = true
|
||||
bstr = "1.10.0"
|
||||
bstr.workspace = true
|
||||
|
Loading…
Reference in New Issue
Block a user