diff --git a/Cargo.lock b/Cargo.lock index 443239e8..20ebe6d0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,15 +4,15 @@ version = 3 [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "ahash" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", "once_cell", @@ -28,9 +28,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "anstream" -version = "0.6.18" +version = "0.6.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" dependencies = [ "anstyle", "anstyle-parse", @@ -43,44 +43,44 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" [[package]] name = "anstyle-parse" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" dependencies = [ "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.7" +version = "3.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" dependencies = [ "anstyle", - "once_cell", + "once_cell_polyfill", "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.96" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b964d184e89d9b6b67dd2715bc8e74cf3107fb2b529990c90cf517326150bf4" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "arc-swap" @@ -90,27 +90,42 @@ checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "bitflags" -version = "2.8.0" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" + +[[package]] +name = "block-buffer" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] [[package]] name = "bstr" -version = "1.11.3" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" +checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" dependencies = [ "memchr", "regex-automata", "serde", ] +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + [[package]] name = "bzip2-rs" version = "0.1.2" @@ -123,18 +138,18 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.15" +version = "1.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c736e259eea577f443d5c86c304f9f4ae0295c43f3ba05c21f1d66b5f06001af" +checksum = "d487aa071b5f64da6f19a3e848e3578944b726ee5a4854b82172f02aa876bfdc" dependencies = [ "shlex", ] [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" [[package]] name = "cfg_aliases" @@ -144,18 +159,18 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "clap" -version = "4.5.30" +version = "4.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92b7b18d71fad5313a1e320fa9897994228ce274b60faa4d694fe0ea89cd9e6d" +checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.30" +version = "4.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35db2071778a7344791a4fb4f95308b5673d219dee3ae348b86642574ecc90c" +checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e" dependencies = [ "anstream", "anstyle", @@ -166,9 +181,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" [[package]] name = "clru" @@ -178,9 +193,18 @@ checksum = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59" [[package]] name = "colorchoice" -version = "1.0.3" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" + +[[package]] +name = "cpufeatures" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] [[package]] name = "crc32fast" @@ -191,11 +215,21 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + [[package]] name = "ctrlc" -version = "3.4.5" +version = "3.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" +checksum = "46f93780a459b7d656ef7f071fe699c4d3d2cb201c4b24d085b6ddc505276e73" dependencies = [ "nix", "windows-sys 0.59.0", @@ -203,9 +237,9 @@ dependencies = [ [[package]] name = "curl" -version = "0.4.47" +version = "0.4.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9fb4d13a1be2b58f14d60adba57c9834b78c62fd86c3e76a148f732686e9265" +checksum = "9e2d5c8f48d9c0c23250e52b55e82a6ab4fdba6650c931f5a0a57a43abda812b" dependencies = [ "curl-sys", "libc", @@ -213,14 +247,14 @@ dependencies = [ "openssl-sys", "schannel", "socket2", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "curl-sys" -version = "0.4.80+curl-8.12.1" +version = "0.4.82+curl-8.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55f7df2eac63200c3ab25bde3b2268ef2ee56af3d238e76d61f01c3c49bff734" +checksum = "c4d63638b5ec65f1a4ae945287b3fd035be4554bbaf211901159c9a2a74fb5be" dependencies = [ "cc", "libc", @@ -228,7 +262,17 @@ dependencies = [ "openssl-sys", "pkg-config", "vcpkg", - "windows-sys 0.52.0", + "windows-sys 0.59.0", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", ] [[package]] @@ -265,12 +309,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.10" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -282,6 +326,16 @@ dependencies = [ "serde", ] +[[package]] +name = "faster-hex" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7223ae2d2f179b803433d9c830478527e92b8117eab39460edae7f1614d9fb73" +dependencies = [ + "heapless", + "serde", +] + [[package]] name = "fastrand" version = "2.3.0" @@ -302,9 +356,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.35" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" dependencies = [ "crc32fast", "miniz_oxide", @@ -325,23 +379,33 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + [[package]] name = "getrandom" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", "libc", + "r-efi", "wasi", - "windows-targets", ] [[package]] name = "gix" -version = "0.70.0" +version = "0.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736f14636705f3a56ea52b553e67282519418d9a35bb1e90b3a9637a00296b68" +checksum = "a61e71ec6817fc3c9f12f812682cfe51ee6ea0d2e27e02fc3849c35524617435" dependencies = [ "gix-actor", "gix-command", @@ -350,10 +414,10 @@ dependencies = [ "gix-date", "gix-diff", "gix-discover", - "gix-features", - "gix-fs", + "gix-features 0.41.1", + "gix-fs 0.14.0", "gix-glob", - "gix-hash", + "gix-hash 0.17.0", "gix-hashtable", "gix-index", "gix-lock", @@ -372,8 +436,8 @@ dependencies = [ "gix-trace", "gix-traverse", "gix-url", - "gix-utils", - "gix-validate", + "gix-utils 0.2.0", + "gix-validate 0.9.4", "once_cell", "smallvec", "thiserror", @@ -381,16 +445,16 @@ dependencies = [ [[package]] name = "gix-actor" -version = "0.33.2" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20018a1a6332e065f1fcc8305c1c932c6b8c9985edea2284b3c79dc6fa3ee4b2" +checksum = "f438c87d4028aca4b82f82ba8d8ab1569823cfb3e5bc5fa8456a71678b2a20e7" dependencies = [ "bstr", "gix-date", - "gix-utils", + "gix-utils 0.2.0", "itoa", "thiserror", - "winnow 0.6.26", + "winnow", ] [[package]] @@ -413,39 +477,39 @@ dependencies = [ [[package]] name = "gix-command" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb410b84d6575db45e62025a9118bdbf4d4b099ce7575a76161e898d9ca98df1" +checksum = "c0378995847773a697f8e157fe2963ecf3462fe64be05b7b3da000b3b472def8" dependencies = [ "bstr", "gix-path", + "gix-quote", "gix-trace", "shell-words", ] [[package]] name = "gix-commitgraph" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e23a8ec2d8a16026a10dafdb6ed51bcfd08f5d97f20fa52e200bc50cb72e4877" +checksum = "043cbe49b7a7505150db975f3cb7c15833335ac1e26781f615454d9d640a28fe" dependencies = [ "bstr", "gix-chunk", - "gix-features", - "gix-hash", + "gix-hash 0.17.0", "memmap2", "thiserror", ] [[package]] name = "gix-config" -version = "0.43.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "377c1efd2014d5d469e0b3cd2952c8097bce9828f634e04d5665383249f1d9e9" +checksum = "9c6f830bf746604940261b49abf7f655d2c19cadc9f4142ae9379e3a316e8cfa" dependencies = [ "bstr", "gix-config-value", - "gix-features", + "gix-features 0.41.1", "gix-glob", "gix-path", "gix-ref", @@ -455,14 +519,14 @@ dependencies = [ "smallvec", "thiserror", "unicode-bom", - "winnow 0.6.26", + "winnow", ] [[package]] name = "gix-config-value" -version = "0.14.11" +version = "0.14.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11365144ef93082f3403471dbaa94cfe4b5e72743bdb9560719a251d439f4cee" +checksum = "8dc2c844c4cf141884678cabef736fd91dd73068b9146e6f004ba1a0457944b6" dependencies = [ "bitflags", "bstr", @@ -473,38 +537,38 @@ dependencies = [ [[package]] name = "gix-date" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c57c477b645ee248b173bb1176b52dd528872f12c50375801a58aaf5ae91113f" +checksum = "daa30058ec7d3511fbc229e4f9e696a35abd07ec5b82e635eff864a2726217e4" dependencies = [ "bstr", "itoa", - "jiff 0.1.29", + "jiff", "thiserror", ] [[package]] name = "gix-diff" -version = "0.50.0" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62afb7f4ca0acdf4e9dad92065b2eb1bf2993bcc5014b57bc796e3a365b17c4d" +checksum = "a2c975dad2afc85e4e233f444d1efbe436c3cdcf3a07173984509c436d00a3f8" dependencies = [ "bstr", - "gix-hash", + "gix-hash 0.17.0", "gix-object", "thiserror", ] [[package]] name = "gix-discover" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c2414bdf04064e0f5a5aa029dfda1e663cf9a6c4bfc8759f2d369299bb65d8" +checksum = "f7fb8a4349b854506a3915de18d3341e5f1daa6b489c8affc9ca0d69efe86781" dependencies = [ "bstr", "dunce", - "gix-fs", - "gix-hash", + "gix-fs 0.14.0", + "gix-hash 0.17.0", "gix-path", "gix-ref", "gix-sec", @@ -513,138 +577,180 @@ dependencies = [ [[package]] name = "gix-features" -version = "0.40.0" +version = "0.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bfdd4838a8d42bd482c9f0cb526411d003ee94cc7c7b08afe5007329c71d554" +checksum = "016d6050219458d14520fe22bdfdeb9cb71631dec9bc2724767c983f60109634" dependencies = [ "crc32fast", "flate2", - "gix-hash", + "gix-path", "gix-trace", - "gix-utils", + "gix-utils 0.2.0", "libc", "once_cell", "prodash", - "sha1_smol", "thiserror", "walkdir", ] +[[package]] +name = "gix-features" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f4399af6ec4fd9db84dd4cf9656c5c785ab492ab40a7c27ea92b4241923fed" +dependencies = [ + "gix-trace", + "gix-utils 0.3.0", + "libc", + "prodash", +] + [[package]] name = "gix-fs" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "182e7fa7bfdf44ffb7cfe7451b373cdf1e00870ac9a488a49587a110c562063d" +checksum = "951e886120dc5fa8cac053e5e5c89443f12368ca36811b2e43d1539081f9c111" dependencies = [ + "bstr", "fastrand", - "gix-features", - "gix-utils", + "gix-features 0.41.1", + "gix-path", + "gix-utils 0.2.0", + "thiserror", +] + +[[package]] +name = "gix-fs" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a0637149b4ef24d3ea55f81f77231401c8463fae6da27331c987957eb597c7" +dependencies = [ + "bstr", + "fastrand", + "gix-features 0.42.1", + "gix-path", + "gix-utils 0.3.0", + "thiserror", ] [[package]] name = "gix-glob" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9c7249fa0a78f9b363aa58323db71e0a6161fd69860ed6f48dedf0ef3a314e" +checksum = "20972499c03473e773a2099e5fd0c695b9b72465837797a51a43391a1635a030" dependencies = [ "bitflags", "bstr", - "gix-features", + "gix-features 0.41.1", "gix-path", ] [[package]] name = "gix-hash" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e81c5ec48649b1821b3ed066a44efb95f1a268b35c1d91295e61252539fbe9f8" +checksum = "834e79722063958b03342edaa1e17595cd2939bb2b3306b3225d0815566dcb49" dependencies = [ - "faster-hex", + "faster-hex 0.9.0", + "gix-features 0.41.1", + "sha1-checked", + "thiserror", +] + +[[package]] +name = "gix-hash" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d4900562c662852a6b42e2ef03442eccebf24f047d8eab4f23bc12ef0d785d8" +dependencies = [ + "faster-hex 0.10.0", + "gix-features 0.42.1", + "sha1-checked", "thiserror", ] [[package]] name = "gix-hashtable" -version = "0.7.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "189130bc372accd02e0520dc5ab1cef318dcc2bc829b76ab8d84bbe90ac212d1" +checksum = "b5b5cb3c308b4144f2612ff64e32130e641279fcf1a84d8d40dad843b4f64904" dependencies = [ - "gix-hash", + "gix-hash 0.18.0", "hashbrown 0.14.5", "parking_lot", ] [[package]] name = "gix-index" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acd12e3626879369310fffe2ac61acc828613ef656b50c4ea984dd59d7dc85d8" +checksum = "855bece2d4153453aa5d0a80d51deea1ce8cd6a3b4cf213da85ac344ccb908a7" dependencies = [ "bitflags", "bstr", "filetime", "fnv", "gix-bitmap", - "gix-features", - "gix-fs", - "gix-hash", + "gix-features 0.41.1", + "gix-fs 0.14.0", + "gix-hash 0.17.0", "gix-lock", "gix-object", "gix-traverse", - "gix-utils", - "gix-validate", + "gix-utils 0.2.0", + "gix-validate 0.9.4", "hashbrown 0.14.5", "itoa", "libc", "memmap2", - "rustix", + "rustix 0.38.44", "smallvec", "thiserror", ] [[package]] name = "gix-lock" -version = "16.0.0" +version = "17.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9739815270ff6940968441824d162df9433db19211ca9ba8c3fc1b50b849c642" +checksum = "570f8b034659f256366dc90f1a24924902f20acccd6a15be96d44d1269e7a796" dependencies = [ "gix-tempfile", - "gix-utils", + "gix-utils 0.3.0", "thiserror", ] [[package]] name = "gix-object" -version = "0.47.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc4b3a0044244f0fe22347fb7a79cca165e37829d668b41b85ff46a43e5fd68" +checksum = "4943fcdae6ffc135920c9ea71e0362ed539182924ab7a85dd9dac8d89b0dd69a" dependencies = [ "bstr", "gix-actor", "gix-date", - "gix-features", - "gix-hash", + "gix-features 0.41.1", + "gix-hash 0.17.0", "gix-hashtable", "gix-path", - "gix-utils", - "gix-validate", + "gix-utils 0.2.0", + "gix-validate 0.9.4", "itoa", "smallvec", "thiserror", - "winnow 0.6.26", + "winnow", ] [[package]] name = "gix-odb" -version = "0.67.0" +version = "0.68.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e93457df69cd09573608ce9fa4f443fbd84bc8d15d8d83adecd471058459c1b" +checksum = "50306d40dcc982eb6b7593103f066ea6289c7b094cb9db14f3cd2be0b9f5e610" dependencies = [ "arc-swap", "gix-date", - "gix-features", - "gix-fs", - "gix-hash", + "gix-features 0.41.1", + "gix-fs 0.14.0", + "gix-hash 0.17.0", "gix-hashtable", "gix-object", "gix-pack", @@ -657,14 +763,14 @@ dependencies = [ [[package]] name = "gix-pack" -version = "0.57.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc13a475b3db735617017fb35f816079bf503765312d4b1913b18cf96f3fa515" +checksum = "9b65fffb09393c26624ca408d32cfe8776fb94cd0a5cdf984905e1d2f39779cb" dependencies = [ "clru", "gix-chunk", - "gix-features", - "gix-hash", + "gix-features 0.41.1", + "gix-hash 0.17.0", "gix-hashtable", "gix-object", "gix-path", @@ -675,24 +781,25 @@ dependencies = [ [[package]] name = "gix-packetline" -version = "0.18.3" +version = "0.18.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7e5ae6bc3ac160a6bf44a55f5537813ca3ddb08549c0fd3e7ef699c73c439cd" +checksum = "123844a70cf4d5352441dc06bab0da8aef61be94ec239cb631e0ba01dc6d3a04" dependencies = [ "bstr", - "faster-hex", + "faster-hex 0.9.0", "gix-trace", "thiserror", ] [[package]] name = "gix-path" -version = "0.10.14" +version = "0.10.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c40f12bb65a8299be0cfb90fe718e3be236b7a94b434877012980863a883a99f" +checksum = "567f65fec4ef10dfab97ae71f26a27fd4d7fe7b8e3f90c8a58551c41ff3fb65b" dependencies = [ "bstr", "gix-trace", + "gix-validate 0.10.0", "home", "once_cell", "thiserror", @@ -700,80 +807,80 @@ dependencies = [ [[package]] name = "gix-protocol" -version = "0.48.0" +version = "0.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c61bd61afc6b67d213241e2100394c164be421e3f7228d3521b04f48ca5ba90" +checksum = "5678ddae1d62880bc30e2200be1b9387af3372e0e88e21f81b4e7f8367355b5a" dependencies = [ "bstr", "gix-date", - "gix-features", - "gix-hash", + "gix-features 0.41.1", + "gix-hash 0.17.0", "gix-ref", "gix-shallow", "gix-transport", - "gix-utils", + "gix-utils 0.2.0", "maybe-async", "thiserror", - "winnow 0.6.26", + "winnow", ] [[package]] name = "gix-quote" -version = "0.4.15" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e49357fccdb0c85c0d3a3292a9f6db32d9b3535959b5471bb9624908f4a066c6" +checksum = "1b005c550bf84de3b24aa5e540a23e6146a1c01c7d30470e35d75a12f827f969" dependencies = [ "bstr", - "gix-utils", + "gix-utils 0.2.0", "thiserror", ] [[package]] name = "gix-ref" -version = "0.50.0" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47adf4c5f933429f8554e95d0d92eee583cfe4b95d2bf665cd6fd4a1531ee20c" +checksum = "b2e1f7eb6b7ce82d2d19961f74bd637bab3ea79b1bc7bfb23dbefc67b0415d8b" dependencies = [ "gix-actor", - "gix-features", - "gix-fs", - "gix-hash", + "gix-features 0.41.1", + "gix-fs 0.14.0", + "gix-hash 0.17.0", "gix-lock", "gix-object", "gix-path", "gix-tempfile", - "gix-utils", - "gix-validate", + "gix-utils 0.2.0", + "gix-validate 0.9.4", "memmap2", "thiserror", - "winnow 0.6.26", + "winnow", ] [[package]] name = "gix-refspec" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59650228d8f612f68e7f7a25f517fcf386c5d0d39826085492e94766858b0a90" +checksum = "1d8587b21e2264a6e8938d940c5c99662779c13a10741a5737b15fc85c252ffc" dependencies = [ "bstr", - "gix-hash", + "gix-hash 0.17.0", "gix-revision", - "gix-validate", + "gix-validate 0.9.4", "smallvec", "thiserror", ] [[package]] name = "gix-revision" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fe28bbccca55da6d66e6c6efc6bb4003c29d407afd8178380293729733e6b53" +checksum = "342caa4e158df3020cadf62f656307c3948fe4eacfdf67171d7212811860c3e9" dependencies = [ "bitflags", "bstr", "gix-commitgraph", "gix-date", - "gix-hash", + "gix-hash 0.17.0", "gix-hashtable", "gix-object", "gix-revwalk", @@ -783,13 +890,13 @@ dependencies = [ [[package]] name = "gix-revwalk" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4ecb80c235b1e9ef2b99b23a81ea50dd569a88a9eb767179793269e0e616247" +checksum = "2dc7c3d7e5cdc1ab8d35130106e4af0a4f9f9eca0c81f4312b690780e92bde0d" dependencies = [ "gix-commitgraph", "gix-date", - "gix-hash", + "gix-hash 0.17.0", "gix-hashtable", "gix-object", "smallvec", @@ -798,9 +905,9 @@ dependencies = [ [[package]] name = "gix-sec" -version = "0.10.11" +version = "0.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d84dae13271f4313f8d60a166bf27e54c968c7c33e2ffd31c48cafe5da649875" +checksum = "47aeb0f13de9ef2f3033f5ff218de30f44db827ac9f1286f9ef050aacddd5888" dependencies = [ "bitflags", "gix-path", @@ -810,23 +917,23 @@ dependencies = [ [[package]] name = "gix-shallow" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab72543011e303e52733c85bef784603ef39632ddf47f69723def52825e35066" +checksum = "cc0598aacfe1d52575a21c9492fee086edbb21e228ec36c819c42ab923f434c3" dependencies = [ "bstr", - "gix-hash", + "gix-hash 0.17.0", "gix-lock", "thiserror", ] [[package]] name = "gix-tempfile" -version = "16.0.0" +version = "17.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2558f423945ef24a8328c55d1fd6db06b8376b0e7013b1bb476cc4ffdf678501" +checksum = "c750e8c008453a2dba67a2b0d928b7716e05da31173a3f5e351d5457ad4470aa" dependencies = [ - "gix-fs", + "gix-fs 0.15.0", "libc", "once_cell", "parking_lot", @@ -841,13 +948,13 @@ checksum = "7c396a2036920c69695f760a65e7f2677267ccf483f25046977d87e4cb2665f7" [[package]] name = "gix-transport" -version = "0.45.0" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11187418489477b1b5b862ae1aedbbac77e582f2c4b0ef54280f20cfe5b964d9" +checksum = "b3f68c2870bfca8278389d2484a7f2215b67d0b0cc5277d3c72ad72acf41787e" dependencies = [ "bstr", "gix-command", - "gix-features", + "gix-features 0.41.1", "gix-packetline", "gix-quote", "gix-sec", @@ -857,14 +964,14 @@ dependencies = [ [[package]] name = "gix-traverse" -version = "0.44.0" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bec70e53896586ef32a3efa7e4427b67308531ed186bb6120fb3eca0f0d61b4" +checksum = "36c0b049f8bdb61b20016694102f7b507f2e1727e83e9c5e6dad4f7d84ff7384" dependencies = [ "bitflags", "gix-commitgraph", "gix-date", - "gix-hash", + "gix-hash 0.17.0", "gix-hashtable", "gix-object", "gix-revwalk", @@ -874,12 +981,12 @@ dependencies = [ [[package]] name = "gix-url" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29218c768b53dd8f116045d87fec05b294c731a4b2bdd257eeca2084cc150b13" +checksum = "48dfe23f93f1ddb84977d80bb0dd7aa09d1bf5d5afc0c9b6820cccacc25ae860" dependencies = [ "bstr", - "gix-features", + "gix-features 0.41.1", "gix-path", "percent-encoding", "thiserror", @@ -888,9 +995,19 @@ dependencies = [ [[package]] name = "gix-utils" -version = "0.1.14" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "189f8724cf903e7fd57cfe0b7bc209db255cacdcb22c781a022f52c3a774f8d0" +dependencies = [ + "fastrand", + "unicode-normalization", +] + +[[package]] +name = "gix-utils" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff08f24e03ac8916c478c8419d7d3c33393da9bb41fa4c24455d5406aeefd35f" +checksum = "5351af2b172caf41a3728eb4455326d84e0d70fe26fc4de74ab0bd37df4191c5" dependencies = [ "fastrand", "unicode-normalization", @@ -898,14 +1015,33 @@ dependencies = [ [[package]] name = "gix-validate" -version = "0.9.3" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b5f1253109da6c79ed7cf6e1e38437080bb6d704c76af14c93e2f255234084" +dependencies = [ + "bstr", + "thiserror", +] + +[[package]] +name = "gix-validate" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eaa01c3337d885617c0a42e92823922a2aea71f4caeace6fe87002bdcadbd90" +checksum = "77b9e00cacde5b51388d28ed746c493b18a6add1f19b5e01d686b3b9ece66d4d" dependencies = [ "bstr", "thiserror", ] +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + [[package]] name = "hashbrown" version = "0.14.5" @@ -918,15 +1054,25 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.2" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" + +[[package]] +name = "heapless" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" +dependencies = [ + "hash32", + "stable_deref_trait", +] [[package]] name = "hermit-abi" -version = "0.4.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "home" @@ -939,21 +1085,22 @@ dependencies = [ [[package]] name = "icu_collections" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" dependencies = [ "displaydoc", + "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locid" -version = "1.5.0" +name = "icu_locale_core" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ "displaydoc", "litemap", @@ -962,31 +1109,11 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - [[package]] name = "icu_normalizer" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" dependencies = [ "displaydoc", "icu_collections", @@ -994,67 +1121,54 @@ dependencies = [ "icu_properties", "icu_provider", "smallvec", - "utf16_iter", - "utf8_iter", - "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "1.5.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ "displaydoc", "icu_collections", - "icu_locid_transform", + "icu_locale_core", "icu_properties_data", "icu_provider", - "tinystr", + "potential_utf", + "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "1.5.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" dependencies = [ "displaydoc", - "icu_locid", - "icu_provider_macros", + "icu_locale_core", "stable_deref_trait", "tinystr", "writeable", "yoke", "zerofrom", + "zerotrie", "zerovec", ] -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "idna" version = "1.0.3" @@ -1068,9 +1182,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -1078,19 +1192,19 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.1" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "equivalent", - "hashbrown 0.15.2", + "hashbrown 0.15.4", ] [[package]] name = "is-terminal" -version = "0.4.15" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e19b23d53f35ce9f56aebc7d1bb4e6ac1e9c0db7ac85c8d1760c04379edced37" +checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" dependencies = [ "hermit-abi", "libc", @@ -1105,16 +1219,17 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itoa" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jiff" -version = "0.1.29" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c04ef77ae73f3cf50510712722f0c4e8b46f5aaa1bf5ffad2ae213e6495e78e5" +checksum = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49" dependencies = [ + "jiff-static", "jiff-tzdb-platform", "log", "portable-atomic", @@ -1124,45 +1239,42 @@ dependencies = [ ] [[package]] -name = "jiff" -version = "0.2.1" +name = "jiff-static" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3590fea8e9e22d449600c9bbd481a8163bef223e4ff938e5f55899f8cf1adb93" +checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4" dependencies = [ - "jiff-tzdb-platform", - "log", - "portable-atomic", - "portable-atomic-util", - "serde", - "windows-sys 0.59.0", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "jiff-tzdb" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2cec2f5d266af45a071ece48b1fb89f3b00b2421ac3a5fe10285a6caaa60d3" +checksum = "c1283705eb0a21404d2bfd6eef2a7593d240bc42a0bdb39db0ad6fa2ec026524" [[package]] name = "jiff-tzdb-platform" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a63c62e404e7b92979d2792352d885a7f8f83fd1d0d31eea582d77b2ceca697e" +checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8" dependencies = [ "jiff-tzdb", ] [[package]] name = "libc" -version = "0.2.169" +version = "0.2.174" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "libredox" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" dependencies = [ "bitflags", "libc", @@ -1171,9 +1283,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.21" +version = "1.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df9b68e50e6e0b26f672573834882eb57759f6db9b3be2ea3c35c91188bb4eaa" +checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" dependencies = [ "cc", "libc", @@ -1187,17 +1299,23 @@ version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +[[package]] +name = "linux-raw-sys" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" + [[package]] name = "litemap" -version = "0.7.4" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ "autocfg", "scopeguard", @@ -1205,9 +1323,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.26" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "maybe-async" @@ -1222,9 +1340,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memmap2" @@ -1237,18 +1355,18 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.8.5" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", ] [[package]] name = "nix" -version = "0.29.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ "bitflags", "cfg-if", @@ -1258,9 +1376,15 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.20.3" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" [[package]] name = "openssl-probe" @@ -1270,9 +1394,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.106" +version = "0.9.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" +checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" dependencies = [ "cc", "libc", @@ -1282,9 +1406,9 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ "lock_api", "parking_lot_core", @@ -1292,15 +1416,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -1311,15 +1435,15 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pkg-config" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "portable-atomic" -version = "1.10.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "portable-atomic-util" @@ -1330,20 +1454,29 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "potential_utf" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "zerovec", +] + [[package]] name = "proc-macro2" -version = "1.0.93" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] [[package]] name = "prodash" -version = "29.0.0" +version = "29.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a266d8d6020c61a437be704c5e618037588e1985c7dbb7bf8d265db84cffe325" +checksum = "f04bb108f648884c23b98a0e940ebc2c93c0c3b89f04dbaf7eb8256ce617d1bc" dependencies = [ "log", "parking_lot", @@ -1351,18 +1484,24 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.38" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "redox_syscall" -version = "0.5.9" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f" +checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" dependencies = [ "bitflags", ] @@ -1382,15 +1521,28 @@ dependencies = [ "bitflags", "errno", "libc", - "linux-raw-sys", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys 0.9.4", "windows-sys 0.59.0", ] [[package]] name = "ryu" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "same-file" @@ -1418,18 +1570,18 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "serde" -version = "1.0.218" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.218" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", @@ -1438,9 +1590,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.139" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ "itoa", "memchr", @@ -1449,10 +1601,25 @@ dependencies = [ ] [[package]] -name = "sha1_smol" -version = "1.0.1" +name = "sha1" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha1-checked" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89f599ac0c323ebb1c6082821a54962b839832b03984598375bff3975b804423" +dependencies = [ + "digest", + "sha1", +] [[package]] name = "shell-words" @@ -1468,15 +1635,15 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "smallvec" -version = "1.14.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" -version = "0.5.8" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", "windows-sys 0.52.0", @@ -1504,7 +1671,7 @@ dependencies = [ "gix", "indexmap", "is-terminal", - "jiff 0.2.1", + "jiff", "serde", "serde_json", "strsim", @@ -1512,7 +1679,7 @@ dependencies = [ "tempfile", "termcolor", "thiserror", - "winnow 0.7.3", + "winnow", ] [[package]] @@ -1523,9 +1690,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" -version = "2.0.98" +version = "2.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" dependencies = [ "proc-macro2", "quote", @@ -1534,9 +1701,9 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", @@ -1556,15 +1723,14 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.17.1" +version = "3.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230" +checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" dependencies = [ - "cfg-if", "fastrand", "getrandom", "once_cell", - "rustix", + "rustix 1.0.7", "windows-sys 0.59.0", ] @@ -1579,28 +1745,28 @@ dependencies = [ [[package]] name = "terminal_size" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5352447f921fda68cf61b4101566c0bdb5104eff6804d0678e5227580ab6a4e9" +checksum = "45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed" dependencies = [ - "rustix", + "rustix 1.0.7", "windows-sys 0.59.0", ] [[package]] name = "thiserror" -version = "2.0.11" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.11" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", @@ -1609,9 +1775,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.7.6" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" dependencies = [ "displaydoc", "zerovec", @@ -1619,9 +1785,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" dependencies = [ "tinyvec_macros", ] @@ -1632,6 +1798,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + [[package]] name = "unicode-bom" version = "2.0.3" @@ -1640,9 +1812,9 @@ checksum = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217" [[package]] name = "unicode-ident" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-normalization" @@ -1664,12 +1836,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - [[package]] name = "utf8_iter" version = "1.0.4" @@ -1706,9 +1872,9 @@ dependencies = [ [[package]] name = "wasi" -version = "0.13.3+wasi-0.2.2" +version = "0.14.2+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" dependencies = [ "wit-bindgen-rt", ] @@ -1728,7 +1894,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -1737,7 +1903,16 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.2", ] [[package]] @@ -1746,14 +1921,30 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", ] [[package]] @@ -1762,42 +1953,84 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -1805,60 +2038,50 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] -name = "winnow" -version = "0.6.26" +name = "windows_x86_64_msvc" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" -dependencies = [ - "memchr", -] +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.3" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" +checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd" dependencies = [ "memchr", ] [[package]] name = "wit-bindgen-rt" -version = "0.33.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ "bitflags", ] -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - [[package]] name = "writeable" -version = "0.5.5" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" [[package]] name = "xattr" -version = "1.4.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e105d177a3871454f754b33bb0ee637ecaaac997446375fd3e5d43a2ed00c909" +checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" dependencies = [ "libc", - "linux-raw-sys", - "rustix", + "rustix 1.0.7", ] [[package]] name = "yoke" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" dependencies = [ "serde", "stable_deref_trait", @@ -1868,9 +2091,9 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", @@ -1880,18 +2103,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.35" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.35" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", @@ -1900,18 +2123,18 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", @@ -1919,11 +2142,22 @@ dependencies = [ "synstructure", ] +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + [[package]] name = "zerovec" -version = "0.10.4" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" dependencies = [ "yoke", "zerofrom", @@ -1932,9 +2166,9 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.10.3" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index fd72ae02..426960e7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,7 @@ clap = { version = "~4.5", default-features = false, features = [ ctrlc = "3.4" encoding_rs = "0.8" flate2 = "1" -gix = { version = "0.70", default-features = false, features = [ +gix = { version = "0.71", default-features = false, features = [ "command", "revision", ] } @@ -57,7 +57,7 @@ tar = "0.4" tempfile = "3" termcolor = "1.4" thiserror = "~2.0" -winnow = "0.7.2" +winnow = "0.7.10" curl = { version = "0.4", optional = true } diff --git a/contrib/stgit.el b/contrib/stgit.el index 3774cc69..baf4ad35 100644 --- a/contrib/stgit.el +++ b/contrib/stgit.el @@ -1,4 +1,4 @@ -;;; stgit.el --- major mode for StGit interaction +;;; stgit.el --- major mode for StGit interaction -*- lexical-binding: t; -*- ;; ;; Copyright (C) 2007-2013 David Kågedal ;; @@ -58,10 +58,28 @@ (require 'ewoc) (require 'easymenu) (require 'format-spec) +(require 'vc) + +(defvar log-edit-parent-buffer) + +(defvar-local stgit-marked-patches nil + "List of marked patches.") + +(defvar-local stgit-index-node nil) +(defvar-local stgit-worktree-node nil) +(defvar-local stgit-expanded-patches '(:work :index)) +(defvar-local stgit-svn-find-rev-hash nil) +(defvar-local stgit-ewoc nil) +(defvar-local stgit-edit-patchsym nil) +(defvar-local stgit-refresh-after-new nil) +(defvar-local stgit-refresh-after-new nil) +(defvar-local stgit-sink-to nil) +(defvar-local stgit-patchsyms nil) +(defvar-local old-process-sentinel nil) +(defvar-local stgit-buffer nil) (defun stgit-set-default (symbol value) - "Set default value of SYMBOL to VALUE using `set-default' and -reload all StGit buffers." + "Set default value of SYMBOL to VALUE and reload StGit buffers." (set-default symbol value) (dolist (buf (buffer-list)) (with-current-buffer buf @@ -82,6 +100,7 @@ setting in an already-started StGit buffer." :type 'boolean :group 'stgit :link '(variable-link stgit-show-worktree)) +(defvar-local stgit-show-worktree stgit-default-show-worktree) (defcustom stgit-default-show-unknown nil "Set to non-nil to by default show unknown files a new stgit buffer. @@ -91,6 +110,7 @@ setting in an already-started StGit buffer." :type 'boolean :group 'stgit :link '(variable-link stgit-show-unknown)) +(defvar-local stgit-show-unknown stgit-default-show-unknown) (defcustom stgit-default-show-ignored nil "Set to non-nil to by default show ignored files a new stgit buffer. @@ -100,6 +120,7 @@ setting in an already-started StGit buffer." :type 'boolean :group 'stgit :link '(variable-link stgit-show-ignored)) +(defvar-local stgit-show-ignored stgit-default-show-ignored) (defcustom stgit-default-show-patch-names t "If non-nil, default to showing patch names in a new stgit buffer. @@ -109,6 +130,7 @@ to toggle the this setting in an already-started StGit buffer." :type 'boolean :group 'stgit :link '(variable-link stgit-show-patch-names)) +(defvar-local stgit-show-patch-names stgit-default-show-patch-names) (defcustom stgit-default-show-committed nil "Set to nil to inhibit showing of historical git commits by default. @@ -120,28 +142,29 @@ shown." :group 'stgit :link '(variable-link stgit-default-committed-count) :link '(variable-link stgit-show-committed)) +(defvar-local stgit-show-committed stgit-default-show-committed) (defcustom stgit-default-committed-count 5 - "The number of historical commits to show when `stgit-show-committed' -is enabled." + "The number of historical commits to show when `stgit-show-committed' is enabled." :type 'number :group 'stgit :link '(variable-link stgit-default-show-committed) :link '(variable-link stgit-committed-count)) +(defvar-local stgit-committed-count stgit-default-committed-count) (defcustom stgit-default-show-svn t - "Set to non-nil to by default show subversion information in a -new stgit buffer. + "Set to non-nil to by default show subversion information in a new stgit buffer. Use \\\\[stgit-toggle-svn] to toggle this \ setting in an already-started StGit buffer." :type 'boolean :group 'stgit :link '(variable-link stgit-show-worktree)) +(defvar-local stgit-show-svn stgit-default-show-svn) (defcustom stgit-abbreviate-copies-and-renames t - "If non-nil, abbreviate copies and renames as \"dir/{old -> new}/file\" -instead of \"dir/old/file -> dir/new/file\"." + "If non-nil, abbreviate copies and renames. +For example: \"dir/{old -> new}/file\" instead of \"dir/old/file -> dir/new/file\"." :type 'boolean :group 'stgit :set 'stgit-set-default) @@ -156,8 +179,7 @@ flag, which reduces performance." :set 'stgit-set-default) (defcustom stgit-show-worktree-mode 'center - "This variable controls where the \"Index\" and \"Work tree\" -will be shown on in the buffer. + "Where the \"Index\" and \"Work tree\" will be shown in the buffer. It can be set to \='top (above all patches), \='center (show between applied and unapplied patches), and \='bottom (below all patches)." @@ -308,6 +330,15 @@ format characters are recognized: "StGit mode face used for modified file status." :group 'stgit-faces) +(defconst stgit-patch-status-face-alist + '((applied . stgit-applied-patch-face) + (top . stgit-top-patch-face) + (unapplied . stgit-unapplied-patch-face) + (committed . stgit-committed-patch-face) + (index . stgit-index-work-tree-title-face) + (work . stgit-index-work-tree-title-face)) + "Alist of face to use for a given patch status.") + (defun stgit (dir) "Manage StGit patches for the tree in DIR. @@ -333,8 +364,7 @@ See `stgit-mode' for commands available." (car (split-string cdup "\n"))))))) (defun stgit-refresh-git-status (&optional dir) - "If it exists, refresh the `git-status' buffer belonging to -directory DIR or `default-directory'" + "If it exists, refresh the `git-status' buffer for DIR or `default-directory'." (when (and (fboundp 'git-find-status-buffer) (fboundp 'git-refresh-status)) (let* ((top-dir (git-get-top-dir (or dir default-directory))) @@ -378,8 +408,8 @@ A newline is appended." (insert (string-trim-right text " ") ?\n)) (defun stgit-line-format () - "Return the current line format; one of -`stgit-patch-line-format' and `stgit-noname-patch-line-format'" + "Return the current line format. +Will be either `stgit-patch-line-format' or `stgit-noname-patch-line-format'." (if stgit-show-patch-names stgit-patch-line-format stgit-noname-patch-line-format)) @@ -425,16 +455,15 @@ Argument DIR is the repository path." (with-current-buffer buf (setq default-directory dir) (stgit-mode) - (set (make-local-variable 'stgit-ewoc) - (ewoc-create #'stgit-patch-pp "Branch:\n\n" "--\n" t)) + (setq stgit-ewoc + (ewoc-create #'stgit-patch-pp "Branch:\n\n" "--\n" t)) (setq buffer-read-only t)) buf)) (def-edebug-spec stgit-capture-output (form body)) (defmacro stgit-capture-output (name &rest body) - "Capture StGit output and, if there was any output, show it in a window -at the end. + "Capture StGit output from BODY in buffer NAME and display it. Returns the result of the last form in BODY." (declare (debug ([&or stringp null] body)) (indent 1)) @@ -471,7 +500,8 @@ Returns the result of the last form in BODY." "Set to non-nil to inhibit messages when running `stg' commands. See also `stgit-message'.") (defun stgit-message (format-spec &rest args) - "Call `message' on the arguments unless `stgit-inhibit-messages' is non-nil." + "Call `message' on the arguments unless `stgit-inhibit-messages' is non-nil. +See `message` for a description of FORMAT-SPEC and ARGS." (unless stgit-inhibit-messages (apply 'message format-spec args))) @@ -543,25 +573,22 @@ been advised to update the stgit status when necessary.") (ewoc-invalidate (car stgit-worktree-node) (cdr stgit-worktree-node)))) (defun stgit-run-series-insert-index (ewoc) - ;; TODO: non-lexical stuff happening here (`index-node' and `worktree-node'). - ;; Fix this before enabling lexical binding. - (setq index-node (cons ewoc (ewoc-enter-last ewoc - (make-stgit-patch - :status 'index - :name :index - :desc nil - :empty nil))) - worktree-node (cons ewoc (ewoc-enter-last ewoc - (make-stgit-patch - :status 'work - :name :work - :desc nil - :empty nil))))) + (setq stgit-index-node (cons ewoc (ewoc-enter-last ewoc + (make-stgit-patch + :status 'index + :name :index + :desc nil + :empty nil))) + stgit-worktree-node (cons ewoc (ewoc-enter-last ewoc + (make-stgit-patch + :status 'work + :name :work + :desc nil + :empty nil))))) (defun stgit-get-position (&optional position) - "Return `stgit-mode' position information at POSITION (point by -default) that can be used to restore the point using -`stgit-restore-position'." + "Return position information at POSITION or point that can be restored later. +Point restoration is done by `stgit-restore-position'." (let ((point (point))) (and position (goto-char position)) (prog1 @@ -573,8 +600,7 @@ default) that can be used to restore the point using (goto-char point)))) (defun stgit-restore-position (state) - "Move point to the position in STATE, as returned by -`stgit-get-position'." + "Move point to the position in STATE, as returned by `stgit-get-position'." (cl-destructuring-bind (patch file line column) state (unless (and patch (cl-case (stgit-goto-patch patch file) ((t) (move-to-column column) t) @@ -603,8 +629,8 @@ Use `stgit-restore-window-state' to restore the state." transient-mark-mode)) (defun stgit-restore-window-state (state) - "Restore the state of the stgit buffer and windows in STATE, as -obtained from `stgit-get-window-state'." + "Restore the state of the stgit buffer and windows in STATE. +State information is obtained from `stgit-get-window-state'." (cl-destructuring-bind (buffer window-states buffer-state mark-state old-mark-active old-transient-mark-mode) @@ -628,9 +654,7 @@ obtained from `stgit-get-window-state'." transient-mark-mode old-transient-mark-mode))))) (defmacro stgit-save-excursion (&rest body) - "Execute BODY and, for each window displaying the current -buffer, move point and mark back to the file, patch, or line -where they were." + "Save point relative position; execute BODY; restore point." (declare (indent 0) (debug (body))) (let ((state (make-symbol "state"))) `(let ((,state (stgit-get-window-state)) @@ -639,8 +663,7 @@ where they were." (stgit-restore-window-state ,state)))) (defun stgit-svn-find-rev (sha1 hash) - "Return the subversion revision corresponding to SHA1 as -reported by git svn. + "Return the subversion revision corresponding to SHA1 as reported by git svn. Cached data is stored in HASH, which must have been created using (make-hash-table :test \='equal)." @@ -672,6 +695,7 @@ using (make-hash-table :test \='equal)." (commit-abbrev (when (string-match "%-\\([0-9]+\\)n" fmt) (string-to-number (match-string 1 fmt)))) (exit-status (stgit-run-git-silent "--no-pager" "log" + "--no-color" "--reverse" "--pretty=oneline" nentries @@ -707,9 +731,7 @@ using (make-hash-table :test \='equal)." :desc desc :empty empty))) (forward-line 1))))))) - (let ((inserted-index (not stgit-show-worktree)) - index-node - worktree-node) + (let ((inserted-index (not stgit-show-worktree))) (with-temp-buffer (let* ((standard-output (current-buffer)) (exit-status (stgit-run-silent "series" @@ -726,7 +748,7 @@ using (make-hash-table :test \='equal)." (match-string 0)))) (while (not (eobp)) (unless (looking-at - "\\([*0 ]\\)\\([>+-]\\)\\( \\)\\([^ ]+\\) *[|#] \\(.*\\)") + "\\([*0 ]\\)\\([>+-]\\)\\( \\)\\([^ ]+\\) *[|#] ?\\(.*\\)") (error "Syntax error in output from stg series")) (let* ((state-str (match-string 2)) (state (cond ((string= state-str ">") 'top) @@ -751,9 +773,7 @@ using (make-hash-table :test \='equal)." (forward-line 1))))) (unless inserted-index (stgit-run-series-insert-index ewoc)) - (setq stgit-index-node index-node - stgit-worktree-node worktree-node - stgit-marked-patches (cl-intersection stgit-marked-patches + (setq stgit-marked-patches (cl-intersection stgit-marked-patches all-patchsyms))))) (defun stgit-current-branch () @@ -802,15 +822,6 @@ during the operation." (ignore "Ignored" stgit-ignored-file-face))) "Alist of code symbols to description strings.") -(defconst stgit-patch-status-face-alist - '((applied . stgit-applied-patch-face) - (top . stgit-top-patch-face) - (unapplied . stgit-unapplied-patch-face) - (committed . stgit-committed-patch-face) - (index . stgit-index-work-tree-title-face) - (work . stgit-index-work-tree-title-face)) - "Alist of face to use for a given patch status.") - (defun stgit-file-status-code-as-string (file) "Return stgit status code for FILE as a string." (let* ((code (assq (stgit-file->status file) @@ -824,7 +835,7 @@ during the operation." (cdr code))))) (defun stgit-file-status-code (str &optional score) - "Return stgit status code from git status string." + "Return stgit status code from git status string STR." (let ((code (assoc str '(("A" . add) ("C" . copy) ("D" . delete) @@ -993,8 +1004,8 @@ If NO-QUOTES is non-nil, do not enclose the result in double quotes." 'file-data file)))) (defun stgit-find-copies-harder-diff-arg () - "Return the flag to use with `git-diff' depending on the -`stgit-find-copies-harder' flag." + "Return the flag to use with `git-diff'. +Depends on the value of `stgit-find-copies-harder'." (if stgit-find-copies-harder "--find-copies-harder" "-C")) (defun stgit-insert-ls-files (args file-flag) @@ -1007,7 +1018,7 @@ If NO-QUOTES is non-nil, do not enclose the result in double quotes." (insert ":0 0 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 " file-flag "\0") (forward-char name-len))))) -(defun stgit-process-files (callback) +(defun stgit-process-files (patch callback) (goto-char (point-min)) (when (looking-at "[0-9A-Fa-f]\\{40\\}\0") (goto-char (match-end 0))) @@ -1018,7 +1029,6 @@ If NO-QUOTES is non-nil, do not enclose the result in double quotes." (let ((file (cond ((looking-at "\\([CR]\\)\\([0-9]*\\)\0\\([^\0]*\\)\0\\([^\0]*\\)\0") - ;; TODO: Where does `patch' come from? (let* ((patch-status (stgit-patch->status patch)) (file-subexp (if (eq patch-status 'unapplied) 3 @@ -1050,8 +1060,7 @@ If NO-QUOTES is non-nil, do not enclose the result in double quotes." (defun stgit-insert-patch-files (patch) - "Expand (show modification of) the patch PATCH after the line -at point." + "Expand (show modification of) the patch PATCH after the line at point." (let* ((patchsym (stgit-patch->name patch)) (end (point-marker)) (args (list "-z" (stgit-find-copies-harder-diff-arg))) @@ -1082,7 +1091,7 @@ at point." (sort-regexp-fields nil ":[^\0]*\0\\([^\0]*\\)\0" "\\1" (point-min) (point-max))) - (stgit-process-files (lambda (file) (ewoc-enter-last ewoc file))) + (stgit-process-files patch (lambda (file) (ewoc-enter-last ewoc file))) (unless (ewoc-nth ewoc 0) (ewoc-set-hf ewoc "" @@ -1110,7 +1119,7 @@ at point." 'switch-to-buffer-other-window 'switch-to-buffer) (find-file-noselect filename)) - (set (make-local-variable 'vc-parent-buffer) filename))) + (setq vc-parent-buffer filename))) (defun stgit-find-file (&optional other-window this-rev) (let* ((file (or (stgit-patched-file-at-point) @@ -1155,7 +1164,7 @@ expand if COLLAPSE is not nil." (move-to-column (stgit-goal-column))) (defun stgit-collapse (&optional patches) - "Hide the contents of marked patches, or the patch at point. + "Hide the contents of marked PATCHES, or the patch at point. See also `stgit-expand'." (interactive (list (stgit-patches-marked-or-at-point t))) @@ -1192,7 +1201,8 @@ See also `stgit-expand'." "--no-empty-directory" "--" filename) "X") - (stgit-process-files (lambda (f) + (stgit-process-files patch + (lambda (f) (setq node (ewoc-enter-after ewoc node f)))))) (move-to-column (stgit-goal-column)) @@ -1223,13 +1233,13 @@ file for (applied) copies and renames." (t (error "No patch or file on line")))) -(defun stgit-find-file-other-window (&optional this-rev) +(defun stgit-find-file-other-window (&optional revision) "Open file at point in other window. -With prefix argument, open a buffer with that revision of the file." +With prefix argument, open a buffer with that REVISION of the file." (interactive "p") (stgit-assert-mode) - (stgit-find-file t (> this-rev 1))) + (stgit-find-file t (> revision 1))) (defun stgit-find-file-merge () "Open file at point and merge it using `smerge-ediff'." @@ -1683,21 +1693,16 @@ See also \\[customize-group] for the \"stgit\" group." major-mode 'stgit-mode goal-column 2) (use-local-map stgit-mode-map) - (mapc (lambda (x) (set (make-local-variable (car x)) (cdr x))) - `((list-buffers-directory . ,default-directory) - (parse-sexp-lookup-properties . t) - (stgit-expanded-patches . (:work :index)) - (stgit-index-node . nil) - (stgit-worktree-node . nil) - (stgit-marked-patches . nil) - (stgit-svn-find-rev-hash . ,(make-hash-table :test 'equal)) - (stgit-committed-count . ,stgit-default-committed-count) - (stgit-show-committed . ,stgit-default-show-committed) - (stgit-show-ignored . ,stgit-default-show-ignored) - (stgit-show-patch-names . ,stgit-default-show-patch-names) - (stgit-show-svn . ,stgit-default-show-svn) - (stgit-show-unknown . ,stgit-default-show-unknown) - (stgit-show-worktree . ,stgit-default-show-worktree))) + (setq list-buffers-directory default-directory) + (setq-local parse-sexp-lookup-properties t) + (setq stgit-svn-find-rev-hash (make-hash-table :test 'equal)) + (setq stgit-committed-count stgit-default-committed-count) + (setq stgit-show-committed stgit-default-show-committed) + (setq stgit-show-ignored stgit-default-show-ignored) + (setq stgit-show-patch-names stgit-default-show-patch-names) + (setq stgit-show-svn stgit-default-show-svn) + (setq stgit-show-unknown stgit-default-show-unknown) + (setq stgit-show-worktree stgit-default-show-worktree) (set-variable 'truncate-lines 't) (add-hook 'after-save-hook 'stgit-update-stgit-for-buffer) (unless stgit-did-advise @@ -1705,36 +1710,33 @@ See also \\[customize-group] for the \"stgit\" group." (setq stgit-did-advise t)) (run-hooks 'stgit-mode-hook)) +(defun stgit-update-stgit-advice (&rest _ignore) + "Update work tree and index of stgit buffers. +Intended to be used to advise other functions." + (stgit-update-stgit-for-buffer :index)) + (defun stgit-advise-funlist (funlist) - "Add advice to the functions in FUNLIST so we can refresh the -stgit buffers as the git status of files change." + "Advise functions in FUNLIST to refresh stgit buffers." (mapc (lambda (sym) (when (fboundp sym) - (eval `(defadvice ,sym (after stgit-update-stgit-for-buffer) - (stgit-update-stgit-for-buffer :index))) - (ad-activate sym))) + (advice-add sym :after #'stgit-update-stgit-advice))) funlist)) (defun stgit-advise () - "Add advice to appropriate (non-stgit) git functions so we can -refresh the stgit buffers as the git status of files change." - (mapc (lambda (arg) - (let ((feature (car arg)) - (funlist (cdr arg))) - (if (featurep feature) - (stgit-advise-funlist funlist) - (add-to-list 'after-load-alist - `(,feature (stgit-advise-funlist - (quote ,funlist))))))) - ;; lists of ( ...) to be advised - '((vc-git vc-git-rename-file vc-git-revert vc-git-register) - (git git-add-file git-checkout git-revert-file git-remove-file) - (dired dired-delete-file)))) + "Advise appropriate (non-stgit) git functions to refresh stgit buffers." + (with-eval-after-load "vc-git" + (stgit-advise-funlist + '(vc-git-rename-file vc-git-revert vc-git-register))) + (with-eval-after-load "git" + (stgit-advise-funlist + '(git-add-file git-checkout git-revert-file git-remove-file))) + (with-eval-after-load "dired" + (stgit-advise-funlist + '(dired-delete-file)))) (defvar stgit-pending-refresh-buffers nil - "Alist of (`buffer' . `mode') of buffers that need to be -refreshed. See `stgit-post-refresh' for the different values of -`mode'.") + "Alist of (`buffer' . `mode') of buffers that need to be refreshed. +See `stgit-post-refresh' for the different values of `mode'.") (defun stgit-run-pending-refreshs () "Run all pending stgit buffer updates as posted by `stgit-post-refresh'." @@ -1780,8 +1782,7 @@ MODE specifies what to do: stgit-pending-refresh-buffers))))) (defun stgit-update-stgit-for-buffer (&optional mode) - "When Emacs becomes idle, update the status in any `stgit-mode' -buffer that shows the status of the current buffer. + "When Emacs becomes idle, update the status in any `stgit-mode' buffers. MODE specifies how to update the buffer. See `stgit-post-refresh' for the different values MODE can have." @@ -1842,7 +1843,7 @@ allow historical commits; if nil, also allow work tree and index." (defun stgit-patches-marked-or-at-point (&optional cause-error types) "Return the symbols of the marked patches, or the patch on the current line. -If CAUSE-ERRROR is not nil, signal an error if none found. +If CAUSE-ERROR is not nil, signal an error if none found. TYPES controls which types of commits and patches can be returned. If it is t, only allow stgit patches; if \='allow-committed, also @@ -1973,7 +1974,7 @@ line of PATCHSYM and return :patch." (defun stgit-reload-or-repair (repair) "Update the contents of the StGit buffer (`stgit-reload'). -With a prefix argument, repair the StGit metadata if the branch +With a prefix argument, REPAIR the StGit metadata if the branch was modified with git commands (`stgit-repair')." (interactive "P") (stgit-assert-mode) @@ -2072,8 +2073,8 @@ If OMIT-STGIT is not nil, filter out \"resf/heads/*.stgit\"." result)))) (defun stgit-parent-branch () - "Return the parent branch of the current stg branch as per -git-config setting branch..stgit.parentbranch." + "Return the parent branch of the current stg branch. +It is determed as per git-config setting branch..stgit.parentbranch." (let ((output (with-output-to-string (stgit-run-git-silent "config" (format "branch.%s.stgit.parentbranch" @@ -2118,8 +2119,9 @@ A negative COUNT will commit using `stgit-commit' instead." (stgit-reload))) (defun stgit-neighbour-file () - "Return the file name of the next file after point, or the -previous file if point is at the last file within a patch." + "Return the file name of the file at point. +It will be the file after point, or the previous file if point is at the +last file within a patch." (let ((old-point (point)) neighbour-file) (and (zerop (forward-line 1)) @@ -2134,8 +2136,7 @@ previous file if point is at the last file within a patch." neighbour-file)) (defun stgit-unmerged-file-stages (file) - "Returns list of the merge stages that contain FILE, which -must be an unmerged file. + "Returns list of merge stages that contain FILE, which must be an unmerged file. Stage 1, the common ancestor, is \='ancestor. Stage 2, HEAD, is \='head. @@ -2154,8 +2155,7 @@ Stage 3, MERGE_HEAD, is \='merge-head." stages)) (defun stgit-revert-file () - "Revert the file at point, which must be in the index or the -working tree." + "Revert the file at point, which must be in the index or the working tree." (interactive) (stgit-assert-mode) (let* ((patched-file (or (stgit-patched-file-at-point) @@ -2209,8 +2209,9 @@ working tree." (stgit-goto-patch patch-name next-file)))) (defun stgit-revert () - "Revert the change at point, which must be the index, the work -tree, or a single change in either." + "Revert the change at point. +The change must be in the index, the work tree, or a single change in +either." (interactive) (stgit-assert-mode) (let ((patched-file (stgit-patched-file-at-point))) @@ -2332,8 +2333,7 @@ If ONLY-PATCHES is not nil, exclude index and work tree." (not (next-single-property-change (point) 'patch-data))) (defun stgit-goto-target () - "Return the goto target at point: a patchsym, :top, -or :bottom." + "Return the goto target at point: a patchsym, :top, or :bottom." (let ((patch (stgit-patch-at-point))) (cond (patch (cl-case (stgit-patch->status patch) @@ -2427,7 +2427,7 @@ which stage to diff against in the case of unmerged files." (if (eq patch-id :index) '("--cached") (list unmerged-stage)))) - (let ((args (append '("show" "-O" "--patch-with-stat") + (let ((args (append '("show" "--color=never" "-O" "--patch-with-stat") `("-O" ,(stgit-find-copies-harder-diff-arg)) (and space-arg (list "-O" space-arg)) (list (stgit-patch-name-at-point))))) @@ -2604,7 +2604,7 @@ file ended up. You can then jump to the file with \ (edit-buf (get-buffer-create "*StGit edit*")) (dir default-directory)) (log-edit 'stgit-confirm-edit t nil edit-buf) - (set (make-local-variable 'stgit-edit-patchsym) patchsym) + (setq stgit-edit-patchsym patchsym) (setq default-directory dir) (let ((standard-output edit-buf)) (save-excursion @@ -2660,8 +2660,8 @@ that name (a symbol)." (dir default-directory)) (log-edit 'stgit-confirm-new t nil edit-buf) (setq default-directory dir) - (set (make-local-variable 'stgit-refresh-after-new) refresh) - (set (make-local-variable 'stgit-sink-to) sink-to) + (setq stgit-refresh-after-new refresh) + (setq stgit-sink-to sink-to) (when add-sign (save-excursion (let ((standard-output (current-buffer))) @@ -2689,8 +2689,7 @@ that name (a symbol)." (stgit-goto-patch new-patch)))) (defun stgit-new-and-refresh (add-sign) - "Create a new patch based on the current changes, asking for a -commit message. + "Create a new patch based on the current changes, asking for a commit message. With a prefix argument, include a \"Signed-off-by:\" line at the end of the patch. @@ -2702,7 +2701,7 @@ This works just like running `stgit-new' followed by `stgit-refresh'." (stgit-new add-sign t)) (defun stgit-create-patch-name (description) - "Create a patch name from a long description." + "Create a patch name from a long DESCRIPTION." (let ((patch "")) (while (> (length description) 0) (cond ((string-match "\\`[a-zA-Z_-]+" description) @@ -2751,8 +2750,7 @@ the work tree and index." (stgit-reload))))) (defun stgit-move-patches-target () - "Return the patchsym indicating a target patch for -`stgit-move-patches'. + "Return the patchsym indicating a target patch for `stgit-move-patches'. This is either the first unmarked patch at or after point, or one of :top and :bottom if the point is after or before the applied @@ -2771,8 +2769,8 @@ patches." result))) (defun stgit-sort-patches (patchsyms &optional allow-duplicates) - "Returns the list of patches in PATCHSYMS sorted according to -their position in the patch series, bottommost first. + "Returns a list of patches in PATCHSYMS sorted by patch series position. +The bottommost position is first. PATCHSYMS must not contain duplicate entries, unless ALLOW-DUPLICATES is not nil." @@ -2835,7 +2833,7 @@ deepest patch had before the squash." (dir default-directory) (sorted-patchsyms (stgit-sort-patches patchsyms))) (log-edit 'stgit-confirm-squash t nil edit-buf) - (set (make-local-variable 'stgit-patchsyms) sorted-patchsyms) + (setq stgit-patchsyms sorted-patchsyms) (setq default-directory dir) (let ((result (let ((standard-output edit-buf)) (save-excursion @@ -2939,10 +2937,8 @@ When the command has finished, reload the stgit buffer." (let ((old-buffer (current-buffer))) (with-current-buffer buffer (let ((process (get-buffer-process buffer))) - (set (make-local-variable 'old-process-sentinel) - (process-sentinel process)) - (set (make-local-variable 'stgit-buffer) - old-buffer) + (setq old-process-sentinel (process-sentinel process)) + (setq stgit-buffer old-buffer) (set-process-filter process 'stgit-execute-process-filter) (set-process-sentinel process 'stgit-execute-process-sentinel)))) (with-current-buffer buffer diff --git a/src/cmd/branch/create.rs b/src/cmd/branch/create.rs index fa29f7f3..f7f89651 100644 --- a/src/cmd/branch/create.rs +++ b/src/cmd/branch/create.rs @@ -100,10 +100,8 @@ pub(super) fn dispatch(repo: &gix::Repository, matches: &clap::ArgMatches) -> Re ); None } - } else if let Ok(current_branch) = repo.get_current_branch() { - Some(current_branch) } else { - None + repo.get_current_branch().ok() }; let (target_commit, target_name) = if let Some(parent_branch) = parent_branch.as_ref() { diff --git a/src/cmd/completion/bash.rs b/src/cmd/completion/bash.rs index 1c936ced..feb5ff69 100644 --- a/src/cmd/completion/bash.rs +++ b/src/cmd/completion/bash.rs @@ -60,6 +60,7 @@ fn write_command_func(script: &mut ShStream, fname: &str, command: &clap::Comman &f!("local long_flags=\"{long_flags}\""), &f!("local options=\"{options_pattern}\""), "local pos_index=0", + "local __branch", ]); if !subcommand_names.as_ref().is_empty() { @@ -83,6 +84,17 @@ fn write_command_func(script: &mut ShStream, fname: &str, command: &clap::Comman script.lines(&["cmd_index=$i", &f!("{fname}-{subcommand_name}; return;;")]); script.dedent(); } + script.lines(&[ + "-b|--branch|-B|--ref-branch)", + " if (( i < cword )); then", + " __branch=\"${words[i+1]}\"", + " fi", + " ;;", + "--branch=*|--ref-branch=*)", + " __branch=\"${words[i]}\"", + " __branch=\"${__branch#*=}\"", + " ;;", + ]); if !flags_pattern.as_ref().is_empty() { script.lines(&[&f!("{flags_pattern})"), " ;;"]); } @@ -549,29 +561,34 @@ _remotes () test "$g" && __git show-ref | grep ' refs/remotes/' | sed 's,.* refs/remotes/,,' } +_stg_series () +{ + __stg series ${__branch:+"--branch=${__branch}"} "$@" +} + _all_patches () { - __stg series --no-description --noprefix --all + _stg_series --no-description --noprefix --all } _applied_patches () { - __stg series --no-description --noprefix --applied + _stg_series --no-description --noprefix --applied } _unapplied_patches () { - __stg series --no-description --noprefix --unapplied + _stg_series --no-description --noprefix --unapplied } _visible_patches () { - __stg series --no-description --noprefix --applied --unapplied + _stg_series --no-description --noprefix --applied --unapplied } _hidden_patches () { - __stg series --no-description --noprefix --hidden + _stg_series --no-description --noprefix --hidden } _conflicting_files () diff --git a/src/cmd/series.rs b/src/cmd/series.rs index a63ef807..b6552b55 100644 --- a/src/cmd/series.rs +++ b/src/cmd/series.rs @@ -525,19 +525,20 @@ fn run(matches: &ArgMatches) -> Result<()> { let indices_flag = matches.get_flag("indices"); let offsets_flag = matches.get_flag("offsets"); - let index_width = (indices_flag && !patches.is_empty()) - .then(|| patches.last().unwrap().index.to_string().len()) - .unwrap_or_default(); - - let offset_width = (offsets_flag && !patches.is_empty()) - .then(|| { - [patches.first().unwrap(), patches.last().unwrap()] - .iter() - .map(|entry| format!("{:+}", entry.offset_from_top).len()) - .max() - .unwrap() - }) - .unwrap_or_default(); + let index_width = if indices_flag && !patches.is_empty() { + patches.last().unwrap().index.to_string().len() + } else { + Default::default() + }; + let offset_width = if offsets_flag && !patches.is_empty() { + [patches.first().unwrap(), patches.last().unwrap()] + .iter() + .map(|entry| format!("{:+}", entry.offset_from_top).len()) + .max() + .unwrap() + } else { + Default::default() + }; let mut stdout = crate::color::get_color_stdout(matches); let mut color_spec = termcolor::ColorSpec::new(); diff --git a/src/cmd/version.rs b/src/cmd/version.rs index d5bb74ee..275640b4 100644 --- a/src/cmd/version.rs +++ b/src/cmd/version.rs @@ -38,7 +38,7 @@ fn run(matches: &ArgMatches) -> Result<()> { let license_id = env!("CARGO_PKG_LICENSE"); println!( "Stacked Git {pkg_version}{hash_suffix}\n\ - Copyright (C) 2005-2024 StGit authors\n\ + Copyright (C) 2005-2025 StGit authors\n\ This is free software: you are free to change and redistribute it.\n\ There is NO WARRANTY, to the extent permitted by law.\n\ SPDX-License-Identifier: {license_id}", diff --git a/src/hook.rs b/src/hook.rs index 35b3c2ea..c2018973 100644 --- a/src/hook.rs +++ b/src/hook.rs @@ -27,7 +27,7 @@ fn get_hook_path(repo: &gix::Repository, hook_name: &str) -> Result R return Ok(false); }; - let work_dir = repo.work_dir().expect("not a bare repo"); + let work_dir = repo.workdir().expect("not a bare repo"); let mut hook_command = std::process::Command::from( gix::command::prepare(hook_path).stdout(std::process::Stdio::inherit()), @@ -112,7 +112,7 @@ pub(crate) fn run_commit_msg_hook<'repo>( return Ok(message); }; - let work_dir = repo.work_dir().expect("not a bare repo"); + let work_dir = repo.workdir().expect("not a bare repo"); let temp_msg = TemporaryMessage::new(work_dir, &message)?; let index_path = repo.index_path(); diff --git a/src/main.rs b/src/main.rs index e9fd92ea..82eb061b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -449,7 +449,7 @@ fn execute_shell_alias( command.args(user_args); if let Some(repo) = repo { - if let Some(work_dir) = repo.work_dir() { + if let Some(work_dir) = repo.workdir() { command.current_dir(work_dir); if let Ok(Some(prefix)) = repo.prefix() { let mut prefix = prefix.as_os_str().to_owned(); diff --git a/src/patch/edit/interactive.rs b/src/patch/edit/interactive.rs index c025f75b..f7c84a65 100644 --- a/src/patch/edit/interactive.rs +++ b/src/patch/edit/interactive.rs @@ -91,7 +91,7 @@ pub(crate) fn call_editor>( let status_result = gix::command::prepare(&editor) .arg(path.as_ref()) - .with_shell_allow_manual_argument_splitting() + .command_may_be_shell_script_allow_manual_argument_splitting() .stdin(std::process::Stdio::inherit()) .stdout(std::process::Stdio::inherit()) .spawn() diff --git a/src/stack/upgrade.rs b/src/stack/upgrade.rs index bb98709e..ed1807e7 100644 --- a/src/stack/upgrade.rs +++ b/src/stack/upgrade.rs @@ -312,7 +312,7 @@ fn stack_upgrade_from_2(repo: &gix::Repository, branch_name: &str) -> Result<()> /// Remove the stack's format version from the config. fn rm_stackformatversion(repo: &gix::Repository, branch_name: &str) -> Result<()> { let section = "branch"; - let subsection = format!("{}.stgit", branch_name); + let subsection = format!("{branch_name}.stgit"); let subsection = subsection.as_str(); let mut local_config_file = repo.local_config_file()?; @@ -337,7 +337,7 @@ fn rm_stackformatversion(repo: &gix::Repository, branch_name: &str) -> Result<() /// Set the stack's protected state in the config. fn set_protected(repo: &gix::Repository, branch_name: &str) -> Result<()> { let section = "branch"; - let subsection = format!("{}.stgit", branch_name); + let subsection = format!("{branch_name}.stgit"); let subsection = subsection.as_str(); let mut local_config_file = repo.local_config_file()?; diff --git a/src/stupid/mod.rs b/src/stupid/mod.rs index b91ea09a..05532776 100644 --- a/src/stupid/mod.rs +++ b/src/stupid/mod.rs @@ -30,7 +30,7 @@ impl<'repo, 'index> Stupid<'repo, 'index> for gix::Repository { fn stupid(&'repo self) -> StupidContext<'repo, 'index> { StupidContext { git_dir: Some(self.git_dir()), - work_dir: self.work_dir(), + work_dir: self.workdir(), index_filename: None, git_version: RefCell::new(None::), }