aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock240
-rw-r--r--helix-vcs/Cargo.toml2
-rw-r--r--helix-vcs/src/git.rs27
3 files changed, 139 insertions, 130 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 840c664b..d8a07f41 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -290,15 +290,6 @@ dependencies = [
]
[[package]]
-name = "dirs"
-version = "4.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
-dependencies = [
- "dirs-sys",
-]
-
-[[package]]
name = "dirs-next"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -309,17 +300,6 @@ dependencies = [
]
[[package]]
-name = "dirs-sys"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
-dependencies = [
- "libc",
- "redox_users",
- "winapi",
-]
-
-[[package]]
name = "dirs-sys-next"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -514,9 +494,9 @@ dependencies = [
[[package]]
name = "gix"
-version = "0.43.1"
+version = "0.44.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c256ea71cc1967faaefdaad15f334146b7c806f12460dcafd3afed845c8c78dd"
+checksum = "ef2353761ba46eabc95759eb1deed72c99cb31ad8930bc5d811c06e3f52b0feb"
dependencies = [
"gix-actor",
"gix-attributes",
@@ -526,9 +506,11 @@ dependencies = [
"gix-diff",
"gix-discover",
"gix-features",
+ "gix-fs",
"gix-glob",
"gix-hash",
"gix-hashtable",
+ "gix-ignore",
"gix-index",
"gix-lock",
"gix-mailmap",
@@ -544,6 +526,7 @@ dependencies = [
"gix-tempfile",
"gix-traverse",
"gix-url",
+ "gix-utils",
"gix-validate",
"gix-worktree",
"log",
@@ -556,9 +539,9 @@ dependencies = [
[[package]]
name = "gix-actor"
-version = "0.19.0"
+version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc22b0cdc52237667c301dd7cdc6ead8f8f73c9f824e9942c8ebd6b764f6c0bf"
+checksum = "848efa0f1210cea8638f95691c82a46f98a74b9e3524f01d4955ebc25a8f84f3"
dependencies = [
"bstr",
"btoi",
@@ -570,24 +553,26 @@ dependencies = [
[[package]]
name = "gix-attributes"
-version = "0.10.0"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2231a25934a240d0a4b6f4478401c73ee81d8be52de0293eedbc172334abf3e1"
+checksum = "371c78ac6b4ef130abedc0f09c8f4b43d846df62d2d1571ca4e8cc5479886760"
dependencies = [
"bstr",
- "gix-features",
"gix-glob",
"gix-path",
"gix-quote",
+ "kstring",
+ "log",
+ "smallvec",
"thiserror",
"unicode-bom",
]
[[package]]
name = "gix-bitmap"
-version = "0.2.2"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "024bca0c7187517bda5ea24ab148c9ca8208dd0c3e2bea88cdb2008f91791a6d"
+checksum = "55a95f4942360766c3880bdb2b4b57f1ef73b190fc424755e7fdf480430af618"
dependencies = [
"thiserror",
]
@@ -612,9 +597,9 @@ dependencies = [
[[package]]
name = "gix-config"
-version = "0.20.1"
+version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fbad5ce54a8fc997acc50febd89ec80fa6e97cb7f8d0654cb229936407489d8"
+checksum = "58e8188bb673aeef4bb21dc8650084668e83ed944c1c6fcf22050b5e4de0ebdd"
dependencies = [
"bstr",
"gix-config-value",
@@ -634,11 +619,11 @@ dependencies = [
[[package]]
name = "gix-config-value"
-version = "0.10.2"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d09154c0c8677e4da0ec35e896f56ee3e338e741b9599fae06075edd83a4081c"
+checksum = "1a77b6c3e51bd6d8974ab80c7e7943b3f12abb8fa809834002db9742da6b4ac4"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.2.1",
"bstr",
"gix-path",
"libc",
@@ -647,9 +632,9 @@ dependencies = [
[[package]]
name = "gix-credentials"
-version = "0.12.0"
+version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "750b684197374518ea057e0a0594713e07683faa0a3f43c0f93d97f64130ad8d"
+checksum = "4896885f74b84a7bdcd0a2e32d9cb0a5082b34c8489c8fe1bfa94f155206b4f1"
dependencies = [
"bstr",
"gix-command",
@@ -663,9 +648,9 @@ dependencies = [
[[package]]
name = "gix-date"
-version = "0.4.3"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b96271912ce39822501616f177dea7218784e6c63be90d5f36322ff3a722aae2"
+checksum = "99056f37270715f5c7584fd8b46899a2296af9cae92463bf58b8bd1f5a78e553"
dependencies = [
"bstr",
"itoa",
@@ -675,9 +660,9 @@ dependencies = [
[[package]]
name = "gix-diff"
-version = "0.28.1"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "103a0fa79b0d438f5ecb662502f052e530ace4fe1fe8e1c83c0c6da76d728e67"
+checksum = "644a0f2768bc42d7a69289ada80c9e15c589caefc6a315d2307202df83ed1186"
dependencies = [
"gix-hash",
"gix-object",
@@ -687,9 +672,9 @@ dependencies = [
[[package]]
name = "gix-discover"
-version = "0.16.2"
+version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6eba8ba458cb8f4a6c33409b0fe650b1258655175a7ffd1d24fafd3ed31d880b"
+checksum = "0305d45385faeac734f1bda1fa7bad55b7d51416a26f6fb53d17a78186da0bd9"
dependencies = [
"bstr",
"dunce",
@@ -702,9 +687,9 @@ dependencies = [
[[package]]
name = "gix-features"
-version = "0.28.1"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b76f9a80f6dd7be66442ae86e1f534effad9546676a392acc95e269d0c21c22"
+checksum = "cf69b0f5c701cc3ae22d3204b671907668f6437ca88862d355eaf9bc47a4f897"
dependencies = [
"crc32fast",
"flate2",
@@ -718,20 +703,31 @@ dependencies = [
]
[[package]]
+name = "gix-fs"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b37a1832f691fdc09910bd267f9a2e413737c1f9ec68c6e31f9e802616278a9"
+dependencies = [
+ "gix-features",
+]
+
+[[package]]
name = "gix-glob"
-version = "0.5.5"
+version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93e43efd776bc543f46f0fd0ca3d920c37af71a764a16f2aebd89765e9ff2993"
+checksum = "035fd81df824cb4d987835120b6259d2bd39fbaf1e888cab9426dc687170191f"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.2.1",
"bstr",
+ "gix-features",
+ "gix-path",
]
[[package]]
name = "gix-hash"
-version = "0.10.4"
+version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a258595457bc192d1f1c59d0d168a1e34e2be9b97a614e14995416185de41a7"
+checksum = "078eec3ac2808cc03f0bddd2704cb661da5c5dc33b41a9d7947b141d499c7c42"
dependencies = [
"hex",
"thiserror",
@@ -739,9 +735,9 @@ dependencies = [
[[package]]
name = "gix-hashtable"
-version = "0.1.3"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4e55e40dfd694884f0eb78796c5bddcf2f8b295dace47039099dd7e76534973"
+checksum = "afebb85691c6a085b114e01a27f4a61364519298c5826cb87a45c304802299bc"
dependencies = [
"gix-hash",
"hashbrown 0.13.2",
@@ -749,12 +745,24 @@ dependencies = [
]
[[package]]
+name = "gix-ignore"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f958d7fe0858fb52a7573e279201e09df990874e21d2ef3df4ac85653fb88442"
+dependencies = [
+ "bstr",
+ "gix-glob",
+ "gix-path",
+ "unicode-bom",
+]
+
+[[package]]
name = "gix-index"
-version = "0.15.1"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "717ab601ece7921f59fe86849dbe27d44a46ebb883b5885732c4f30df4996177"
+checksum = "fa282756760f79c401d4f4f42588fbb4aa27bbb4b0830f3b4d3480c21a4ac5a7"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.2.1",
"bstr",
"btoi",
"filetime",
@@ -783,9 +791,9 @@ dependencies = [
[[package]]
name = "gix-mailmap"
-version = "0.11.0"
+version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b66aea5e52875cd4915f4957a6f4b75831a36981e2ec3f5fad9e370e444fe1a"
+checksum = "e8856cec3bdc3610c06970d28b6cb20a0c6621621cf9a8ec48cbd23f2630f362"
dependencies = [
"bstr",
"gix-actor",
@@ -794,9 +802,9 @@ dependencies = [
[[package]]
name = "gix-object"
-version = "0.28.0"
+version = "0.29.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8df068db9180ee935fbb70504848369e270bdcb576b05c0faa8b9fd3b86fc017"
+checksum = "c9bb30ce0818d37096daa29efe361a4bc6dd0b51a5726598898be7e9a40a01e1"
dependencies = [
"bstr",
"btoi",
@@ -813,9 +821,9 @@ dependencies = [
[[package]]
name = "gix-odb"
-version = "0.43.1"
+version = "0.44.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e83af2e3e36005bfe010927f0dff41fb5acc3e3d89c6f1174135b3a34086bda2"
+checksum = "5cd87fd2a4884899954daa06371ecd55b40e2c4b708e94fe70d869864d1cd552"
dependencies = [
"arc-swap",
"gix-features",
@@ -831,9 +839,9 @@ dependencies = [
[[package]]
name = "gix-pack"
-version = "0.33.2"
+version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9401911c7fe032ad7b31c6a6b5be59cb283d1d6c999417a8215056efe6d635f3"
+checksum = "e9914b411b8068322b877af7774fd0f283b25b141969cef2536ed09a2cf9fac1"
dependencies = [
"clru",
"gix-chunk",
@@ -853,24 +861,26 @@ dependencies = [
[[package]]
name = "gix-path"
-version = "0.7.3"
+version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32370dce200bb951df013e03dff35b4233fc7a89458642b047629b91734a7e19"
+checksum = "7f6581146846102b54702f1cadb98f79f00b996bc8470edc24645f460060d276"
dependencies = [
"bstr",
+ "home",
+ "once_cell",
"thiserror",
]
[[package]]
name = "gix-prompt"
-version = "0.3.3"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3034d4d935aef2c7bf719aaa54b88c520e82413118d886ae880a31d5bdee57"
+checksum = "78c5086dbabb66cb29d1dec4636cc0357e76fc95da682c149ec96dd97222697f"
dependencies = [
"gix-command",
"gix-config-value",
- "nix",
"parking_lot",
+ "rustix",
"thiserror",
]
@@ -887,12 +897,13 @@ dependencies = [
[[package]]
name = "gix-ref"
-version = "0.27.2"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4e909396ed3b176823991ccc391c276ae2a015e54edaafa3566d35123cfac9d"
+checksum = "2bf64922331b0abd855e75ba3148b072ce2b99e31cd9d1998b87b341e9dbb67e"
dependencies = [
"gix-actor",
"gix-features",
+ "gix-fs",
"gix-hash",
"gix-lock",
"gix-object",
@@ -906,9 +917,9 @@ dependencies = [
[[package]]
name = "gix-refspec"
-version = "0.9.0"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aba332462bda2e8efeae4302b39a6ed01ad56ef772fd5b7ef197cf2798294d65"
+checksum = "f520fd43ef706cafe14f4d5a196303c173da1b8cea92ab30fef7d38e866f6015"
dependencies = [
"bstr",
"gix-hash",
@@ -920,9 +931,9 @@ dependencies = [
[[package]]
name = "gix-revision"
-version = "0.12.2"
+version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c6f6ff53f888858afc24bf12628446a14279ceec148df6194481f306f553ad2"
+checksum = "810f35e9afeccca999d5d348b239f9c162353127d2e13ff3240e31b919e35476"
dependencies = [
"bstr",
"gix-date",
@@ -934,15 +945,14 @@ dependencies = [
[[package]]
name = "gix-sec"
-version = "0.6.2"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8ffa5bf0772f9b01de501c035b6b084cf9b8bb07dec41e3afc6a17336a65f47"
+checksum = "d59c51b67330c78abc069a3aec920dcb301b858739ca8414ce74c8df2d33734e"
dependencies = [
- "bitflags 1.3.2",
- "dirs",
+ "bitflags 2.2.1",
"gix-path",
"libc",
- "windows 0.43.0",
+ "windows",
]
[[package]]
@@ -961,9 +971,9 @@ dependencies = [
[[package]]
name = "gix-traverse"
-version = "0.24.0"
+version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd9a4a07bb22168dc79c60e1a6a41919d198187ca83d8a5940ad8d7122a45df3"
+checksum = "a5be1e807f288c33bb005075111886cceb43ed8a167b3182a0f62c186e2a0dd1"
dependencies = [
"gix-hash",
"gix-hashtable",
@@ -973,9 +983,9 @@ dependencies = [
[[package]]
name = "gix-url"
-version = "0.16.0"
+version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6a22b4b32ad14d68f7b7fb6458fa58d44b01797d94c1b8f4db2d9c7b3c366b5"
+checksum = "3b7e76c8259755bc0ef8f6be85943475a3f1ee26ae82bcc621eb0e704be63bd9"
dependencies = [
"bstr",
"gix-features",
@@ -986,6 +996,15 @@ dependencies = [
]
[[package]]
+name = "gix-utils"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c10b69beac219acb8df673187a1f07dde2d74092f974fb3f9eb385aeb667c909"
+dependencies = [
+ "fastrand",
+]
+
+[[package]]
name = "gix-validate"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -997,15 +1016,18 @@ dependencies = [
[[package]]
name = "gix-worktree"
-version = "0.15.2"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54ec9a000b4f24af706c3cc680c7cda235656cbe3216336522f5692773b8a301"
+checksum = "4753efd398078a1d049a7ab581730491cb1bfc750e179a362be5bd35042f7b53"
dependencies = [
"bstr",
+ "filetime",
"gix-attributes",
"gix-features",
+ "gix-fs",
"gix-glob",
"gix-hash",
+ "gix-ignore",
"gix-index",
"gix-object",
"gix-path",
@@ -1315,7 +1337,7 @@ dependencies = [
"iana-time-zone-haiku",
"js-sys",
"wasm-bindgen",
- "windows 0.48.0",
+ "windows",
]
[[package]]
@@ -1427,6 +1449,15 @@ dependencies = [
]
[[package]]
+name = "kstring"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec3066350882a1cd6d950d055997f379ac37fd39f81cd4d8ed186032eb3c5747"
+dependencies = [
+ "static_assertions",
+]
+
+[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1459,9 +1490,9 @@ dependencies = [
[[package]]
name = "linux-raw-sys"
-version = "0.3.1"
+version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f"
+checksum = "36eb31c1778188ae1e64398743890d0877fef36d11521ac60406b42016e8c2cf"
[[package]]
name = "lock_api"
@@ -1538,18 +1569,6 @@ dependencies = [
]
[[package]]
-name = "nix"
-version = "0.26.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
-dependencies = [
- "bitflags 1.3.2",
- "cfg-if",
- "libc",
- "static_assertions",
-]
-
-[[package]]
name = "nom"
version = "7.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1776,9 +1795,9 @@ dependencies = [
[[package]]
name = "rustix"
-version = "0.37.11"
+version = "0.37.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85597d61f83914ddeba6a47b3b8ffe7365107221c2e557ed94426489fefb5f77"
+checksum = "a0661814f891c57c930a610266415528da53c4933e6dea5fb350cbfe048a9ece"
dependencies = [
"bitflags 1.3.2",
"errno",
@@ -2232,9 +2251,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
[[package]]
name = "unicode-bom"
-version = "1.1.4"
+version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63ec69f541d875b783ca40184d655f2927c95f0bffd486faa83cd3ac3529ec32"
+checksum = "98e90c70c9f0d4d1ee6d0a7d04aa06cb9bbd53d8cfbdd62a0269a7c2eb640552"
[[package]]
name = "unicode-general-category"
@@ -2411,21 +2430,6 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows"
-version = "0.43.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04662ed0e3e5630dfa9b26e4cb823b817f1a9addda855d973a9458c236556244"
-dependencies = [
- "windows_aarch64_gnullvm 0.42.2",
- "windows_aarch64_msvc 0.42.2",
- "windows_i686_gnu 0.42.2",
- "windows_i686_msvc 0.42.2",
- "windows_x86_64_gnu 0.42.2",
- "windows_x86_64_gnullvm 0.42.2",
- "windows_x86_64_msvc 0.42.2",
-]
-
-[[package]]
-name = "windows"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
diff --git a/helix-vcs/Cargo.toml b/helix-vcs/Cargo.toml
index 8a226a0b..978af398 100644
--- a/helix-vcs/Cargo.toml
+++ b/helix-vcs/Cargo.toml
@@ -17,7 +17,7 @@ tokio = { version = "1", features = ["rt", "rt-multi-thread", "time", "sync", "p
parking_lot = "0.12"
arc-swap = { version = "1.6.0" }
-gix = { version = "0.43.0", default-features = false , optional = true }
+gix = { version = "0.44.0", default-features = false , optional = true }
imara-diff = "0.1.5"
anyhow = "1"
diff --git a/helix-vcs/src/git.rs b/helix-vcs/src/git.rs
index 00a2c596..cd28d5e4 100644
--- a/helix-vcs/src/git.rs
+++ b/helix-vcs/src/git.rs
@@ -23,7 +23,7 @@ impl Git {
// This path depends on the install location of git and therefore requires some overhead to lookup
// This is basically only used on windows and has some overhead hence it's disabled on other platforms.
// `gitoxide` doesn't use this as default
- let config = gix::permissions::Config {
+ let config = gix::open::permissions::Config {
system: true,
git: true,
user: true,
@@ -32,19 +32,24 @@ impl Git {
git_binary: cfg!(windows),
};
// change options for config permissions without touching anything else
- git_open_opts_map.reduced = git_open_opts_map.reduced.permissions(gix::Permissions {
+ git_open_opts_map.reduced = git_open_opts_map
+ .reduced
+ .permissions(gix::open::Permissions {
+ config,
+ ..gix::open::Permissions::default_for_level(gix::sec::Trust::Reduced)
+ });
+ git_open_opts_map.full = git_open_opts_map.full.permissions(gix::open::Permissions {
config,
- ..gix::Permissions::default_for_level(gix::sec::Trust::Reduced)
- });
- git_open_opts_map.full = git_open_opts_map.full.permissions(gix::Permissions {
- config,
- ..gix::Permissions::default_for_level(gix::sec::Trust::Full)
+ ..gix::open::Permissions::default_for_level(gix::sec::Trust::Full)
});
- let mut open_options = gix::discover::upwards::Options::default();
- if let Some(ceiling_dir) = ceiling_dir {
- open_options.ceiling_dirs = vec![ceiling_dir.to_owned()];
- }
+ let open_options = gix::discover::upwards::Options {
+ ceiling_dirs: ceiling_dir
+ .map(|dir| vec![dir.to_owned()])
+ .unwrap_or_default(),
+ dot_git_only: true,
+ ..Default::default()
+ };
let res = ThreadSafeRepository::discover_with_environment_overrides_opts(
path,