fix(vcs): support SHA-256 object-format git repositories (#442)

Repositories created with --object-format=sha256 failed to open because gix was built with SHA-1 only; ide-vcs and ide-vfs now enable gix's sha256 feature. Also adds the missing run.updateApplication entry to the VS Code macOS keymap.

Co-authored-by: a-rookie-of-C-language <186315048+a-rookie-of-C-language@users.noreply.github.com>
This commit is contained in:
arookieofc
2026-10-30 19:14:17 +08:00
committed by GitHub
co-authored by a-rookie-of-C-language
parent 7ba75c814c
commit 1ee22dbf35
5 changed files with 74 additions and 61 deletions
Generated
+60 -59
View File
@@ -1145,27 +1145,27 @@ dependencies = [
[[package]]
name = "cranelift-assembler-x64"
version = "0.136.4"
version = "0.136.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c9c587da2696fbaa58e7a2fa2e5bfdd365d0928219f36992304ac1f15e5bc254"
checksum = "249a61efca6a54425e027f5704a6f68a0232b4df527e05a3ef947d89dbdcb078"
dependencies = [
"cranelift-assembler-x64-meta",
]
[[package]]
name = "cranelift-assembler-x64-meta"
version = "0.136.4"
version = "0.136.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f28a60027b7556b680b051651291053ec381edf4ffbc01784997ae51a64269bb"
checksum = "d5336a46e05db2d515440b1ce8a9363e7bc04b608c0f66cc98dddc5492a66fbf"
dependencies = [
"cranelift-srcgen",
]
[[package]]
name = "cranelift-bforest"
version = "0.136.4"
version = "0.136.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62bfdb846acebfd591d601994ea283c98d525ac0bc9a84ca3f2c36bcf5b69ff1"
checksum = "01b3675b13214270fddbd257d5fbf4109be8b02d92fc636fe96e2829514a7235"
dependencies = [
"cranelift-entity",
"wasmtime-internal-core",
@@ -1173,9 +1173,9 @@ dependencies = [
[[package]]
name = "cranelift-bitset"
version = "0.136.4"
version = "0.136.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa9f8cc1080739d5f72b4ee7e00aff7d589f1284beaf0a19472c07878be7f299"
checksum = "d7c1d67aa02b6e174bd2b165c113e94af9498fcc20e2892d0f4d5ab8c9618d09"
dependencies = [
"serde",
"serde_derive",
@@ -1184,9 +1184,9 @@ dependencies = [
[[package]]
name = "cranelift-codegen"
version = "0.136.4"
version = "0.136.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d85417d493ecec833b5134546b4a252c78cc0bd5be11729a35d25dcff9e4e70b"
checksum = "26fe6f3ec5344c32602c414e986dcbe699fa501a3e3e7b02f887d9d12b14ae42"
dependencies = [
"bumpalo",
"cranelift-assembler-x64",
@@ -1215,9 +1215,9 @@ dependencies = [
[[package]]
name = "cranelift-codegen-meta"
version = "0.136.4"
version = "0.136.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d01c8ed0098360bae69ad6b82952d4247516799ce8050d45ad168d6689f4eae6"
checksum = "96c5e6323d458486d95781defdb5016a1176fc911d8bc8e64b696adbda6e9044"
dependencies = [
"cranelift-assembler-x64-meta",
"cranelift-codegen-shared",
@@ -1228,24 +1228,24 @@ dependencies = [
[[package]]
name = "cranelift-codegen-shared"
version = "0.136.4"
version = "0.136.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04f9b86d809cec9c4e88b201f1b3ed3b0347674c9ccfbb8c355228669e34be81"
checksum = "f1260aa93b0bd48e8e55c1c7fd9ff6a260f1a1bc46e1f0151a5055b124e5b15d"
[[package]]
name = "cranelift-control"
version = "0.136.4"
version = "0.136.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce182038fb10b719841e65fdf5deeee258c684f63439f5be680c2be059274b58"
checksum = "50c179632a09850f81f1a1e9116cb09330c734a86689f3ee4c3f4ec81543acbd"
dependencies = [
"arbitrary",
]
[[package]]
name = "cranelift-entity"
version = "0.136.4"
version = "0.136.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bca812b03a7b942796391f25bc02aa70a1a007fee3ce2756490c788429e9c39"
checksum = "d8c071188cb1c3b1803e23ae415a8d5f58d741d3a4b26a79b83dd61921112eac"
dependencies = [
"cranelift-bitset",
"serde",
@@ -1255,9 +1255,9 @@ dependencies = [
[[package]]
name = "cranelift-frontend"
version = "0.136.4"
version = "0.136.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0c30563d2aef95e8d1a00a920199c99117b350339599f0e9487a7a1cf5d59de"
checksum = "e2b85ba0a55d7685117b275fe6f36c819d438862e4223d28f0b97902460ff0ac"
dependencies = [
"cranelift-codegen",
"hashbrown 0.17.1",
@@ -1268,15 +1268,15 @@ dependencies = [
[[package]]
name = "cranelift-isle"
version = "0.136.4"
version = "0.136.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c54184333a275698edb1d3bdff226131a25d47133d792aa716e47e32b8b7f05"
checksum = "20ed364edcaed769da7b2709d540f8f7d0ff257749ba193f475e22dba6a0178b"
[[package]]
name = "cranelift-native"
version = "0.136.4"
version = "0.136.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb67a4c8a3180b5f1d77dffcd6317c05386ced42e5a31c7004523a9d99dc85c1"
checksum = "418d98c3dce08f0d13526692bbd1888bff4c5f45207f5093d168b5a224fbc88c"
dependencies = [
"cranelift-codegen",
"libc",
@@ -1285,9 +1285,9 @@ dependencies = [
[[package]]
name = "cranelift-srcgen"
version = "0.136.4"
version = "0.136.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b533db1679b4b728568bd490da6533cf50974c48a4d7534e78f1e0e02bc39769"
checksum = "4f016b9994e39cad68107f33fa5b8dcee8fb7e38332bde3f97690e5e8abe1b10"
[[package]]
name = "crc"
@@ -2934,6 +2934,7 @@ dependencies = [
"gix-error",
"gix-utils",
"sha1dc",
"sha2 0.11.1",
]
[[package]]
@@ -6797,9 +6798,9 @@ dependencies = [
[[package]]
name = "pulley-interpreter"
version = "49.0.4"
version = "49.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5cd3de43f4f4cff536de8902097edbdf749321b97dda548f36a37918eb85bba3"
checksum = "1d74df9e20cba0f6dd07f01c3140535a6b23e40aecccfcacfb921621b41d0acb"
dependencies = [
"cranelift-bitset",
"log",
@@ -6809,9 +6810,9 @@ dependencies = [
[[package]]
name = "pulley-macros"
version = "49.0.4"
version = "49.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8319a8fa5269b4895957f8795861c42822bd26218e495f70060a963323d94847"
checksum = "8415513bfa407c06de6f11dbe9437f2352e075a5520ff491a131166d3d90aed1"
dependencies = [
"proc-macro2",
"quote",
@@ -9055,7 +9056,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
dependencies = [
"fastrand",
"getrandom 0.4.3",
"getrandom 0.3.4",
"once_cell",
"rustix",
"windows-sys 0.61.2",
@@ -10341,9 +10342,9 @@ dependencies = [
[[package]]
name = "wasmtime"
version = "49.0.4"
version = "49.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36abb25de5518707e5ba96b586366b09db168d2d4976cb9dac57265a317497ea"
checksum = "d45bf3b13781b9febb0eef42e1e145146c92ef891f345fd918e0e0fa1568c992"
dependencies = [
"addr2line",
"async-trait",
@@ -10383,9 +10384,9 @@ dependencies = [
[[package]]
name = "wasmtime-environ"
version = "49.0.4"
version = "49.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92f16a4d09fb1fbf2dcfeddb9818e1517a258e13b505b3bfdadcf47a19bf31ca"
checksum = "833f00f3dc6128159284c5b71e211f24c97d45e052230a14f767fd830a6fb8b0"
dependencies = [
"anyhow",
"cpp_demangle",
@@ -10414,9 +10415,9 @@ dependencies = [
[[package]]
name = "wasmtime-internal-component-macro"
version = "49.0.4"
version = "49.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4fca03bd4425856574c0807d1dee16fad43f947feaf4e9ae1d2129596ee4de4"
checksum = "0d69c34412409072d2e8ec399101524c330e334ff313f77415e6984cc9c6a172"
dependencies = [
"anyhow",
"proc-macro2",
@@ -10429,15 +10430,15 @@ dependencies = [
[[package]]
name = "wasmtime-internal-component-util"
version = "49.0.4"
version = "49.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4006009fc3598af4e895ab18c6c33d2c6b7c657b1bd0a755ca7ee1abef6f0c16"
checksum = "b168d39f2d6b896d89fe096afa4ccdd7a8e927b01469b590af84f02fca3126a1"
[[package]]
name = "wasmtime-internal-core"
version = "49.0.4"
version = "49.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "947a732ad659f42c10ec639706fc8cb1f068dd9a55eebde8a1f24dfd06dfa525"
checksum = "7ad86a65d12c6a9202584ceb658c9a20cf5b25c32eed61c9be5e5f863f88f0d9"
dependencies = [
"hashbrown 0.17.1",
"libm",
@@ -10446,9 +10447,9 @@ dependencies = [
[[package]]
name = "wasmtime-internal-cranelift"
version = "49.0.4"
version = "49.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbfb8b455d524939e03df42e3e749f8e26e26ba2acd8b08fa00b3bda55686750"
checksum = "a71f0fd1dd40e4e18d4a20cdba29ff8e0eb2c0f21b12c2eb5869e0fea789dd05"
dependencies = [
"cranelift-codegen",
"cranelift-control",
@@ -10472,9 +10473,9 @@ dependencies = [
[[package]]
name = "wasmtime-internal-fiber"
version = "49.0.4"
version = "49.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd8aa8711f68b2cdd94c2b85ba5c8317edaa1ac4ee0a0534b957123680239307"
checksum = "fa4dfa39e58735b24ce3d28bfc8c2b3041603cc8a941bb268395351beff90172"
dependencies = [
"cc",
"libc",
@@ -10486,9 +10487,9 @@ dependencies = [
[[package]]
name = "wasmtime-internal-jit-debug"
version = "49.0.4"
version = "49.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e873e4504faf50aa8ce255d6ea7210d87b39d5f379c2486782e2c5f179c70ca8"
checksum = "f2eb98d4486c7b0163447d77dea06f3cc87e5e5ba5fc93613f8ec42e27ea181d"
dependencies = [
"cc",
"wasmtime-internal-versioned-export-macros",
@@ -10496,9 +10497,9 @@ dependencies = [
[[package]]
name = "wasmtime-internal-jit-icache-coherence"
version = "49.0.4"
version = "49.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "197ab1fda5da958a5c0b8a97eb241beafc48ac568b82ef4f12f38d6866c74173"
checksum = "852cae234735d79db6c58fe0d04b32f4078ad01fdb3fd6d488ac366132ba9785"
dependencies = [
"libc",
"wasmtime-internal-core",
@@ -10507,9 +10508,9 @@ dependencies = [
[[package]]
name = "wasmtime-internal-unwinder"
version = "49.0.4"
version = "49.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5577f3a5a979a7c3b1b23c1e9f13e70a8583acc8828471ec56f282117fc4952b"
checksum = "b9289378c82b9db7e7cf933d6bb441ad968536ac48f3f38c55b7cf9d3e8d87e1"
dependencies = [
"cranelift-codegen",
"log",
@@ -10519,9 +10520,9 @@ dependencies = [
[[package]]
name = "wasmtime-internal-versioned-export-macros"
version = "49.0.4"
version = "49.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6399c9c4050ed431cf66e21c05fadd6f9731db44476f452f8c7142b4597b883"
checksum = "cc5c60c732d99dbcc5d670b71ba6ccf2b015cd16fc828990eaad2c4b8805ebdb"
dependencies = [
"proc-macro2",
"quote",
@@ -10530,9 +10531,9 @@ dependencies = [
[[package]]
name = "wasmtime-internal-wit-bindgen"
version = "49.0.4"
version = "49.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4eaf45d4da7681d234bb6efd846b4a528b08a75384a7fc23f125d0145364b06"
checksum = "c77e4fcc7cd22772578458c5e233df47190ebc9b8b65788797d99a02787c9000"
dependencies = [
"anyhow",
"bitflags 2.13.2",
@@ -10544,9 +10545,9 @@ dependencies = [
[[package]]
name = "wasmtime-wasi"
version = "49.0.4"
version = "49.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "821e45765c35555d3b0bdf9277cb99478f7d1f29a17b3315ba76e01220f02a38"
checksum = "705b90d1fa1084cc73df656868948da77711b97f6b895d145a4949f86bcea674"
dependencies = [
"async-trait",
"bitflags 2.13.2",
@@ -10568,9 +10569,9 @@ dependencies = [
[[package]]
name = "wasmtime-wasi-io"
version = "49.0.4"
version = "49.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8cdff38d1c730bdaf4fcfbe0eedf3265fb9c7a4deb119deecbfc1c1778950716"
checksum = "f3d2b6a255be488639f450b380e7e0923789f946de3463696cd30f2fe8a65cc3"
dependencies = [
"async-trait",
"bytes",
+1 -1
View File
@@ -13,7 +13,7 @@ ignore.workspace = true
serde.workspace = true
serde_json.workspace = true
specta.workspace = true
gix = { workspace = true, features = ["sha1", "status", "blob-diff", "revision", "index", "dirwalk", "parallel"] }
gix = { workspace = true, features = ["sha1", "sha256", "status", "blob-diff", "revision", "index", "dirwalk", "parallel"] }
tracing.workspace = true
tempfile.workspace = true
which = "8"
+11
View File
@@ -110,6 +110,17 @@ fn discover_outside_and_inside() {
assert_eq!(std::fs::canonicalize(repo.root()).unwrap(), std::fs::canonicalize(&fx.dir).unwrap());
}
#[test]
fn discover_sha256_repository() {
let tmp = tempfile::tempdir().unwrap();
let dir = tmp.path().join("work");
std::fs::create_dir(&dir).unwrap();
git_in(&dir, &["init", "-q", "--object-format=sha256"]);
let repo = Repo::discover(&dir).unwrap().unwrap();
assert_eq!(std::fs::canonicalize(repo.root()).unwrap(), std::fs::canonicalize(&dir).unwrap());
assert!(repo.status().unwrap().is_empty());
}
#[test]
fn repository_without_commits() {
let fx = Fixture::new();
+1 -1
View File
@@ -7,7 +7,7 @@ license.workspace = true
[dependencies]
dunce.workspace = true
gix = { workspace = true, features = ["sha1"] }
gix = { workspace = true, features = ["sha1", "sha256"] }
ide-core.workspace = true
serde.workspace = true
specta.workspace = true
+1
View File
@@ -254,6 +254,7 @@ export const vscodeMacos: Record<string, string[]> = {
"run.stop": ["Shift+F5"],
"run.chooseConfig": [],
"run.editConfigs": [],
"run.updateApplication": [],
"run.rerun": [],
"coverage.manageReports": [],
"web.openInBrowser": [],