Compare commits
66 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6da27c6444 | |||
| 3026b3e6de | |||
| 725414cc71 | |||
| defb8fafca | |||
| f747c085c9 | |||
| 85dd794b53 | |||
| be8d85cb66 | |||
| 0b7527fc7d | |||
| 3a568a774a | |||
| a6ecb66547 | |||
| 8a04db8130 | |||
| d5bbbe6171 | |||
| c6a27525fd | |||
| 5880066531 | |||
| 918b63047b | |||
| 0fa2a65c81 | |||
| 87d5b7ad85 | |||
| 7db3596302 | |||
| e65c744f9c | |||
| bd79602d3a | |||
| 6e876aaefc | |||
| 04753e8d9c | |||
| 5811476e27 | |||
| 5ac814b857 | |||
| 3a87772606 | |||
| 001911bed9 | |||
| d1d729c33d | |||
| b4cabae4ec | |||
| 196bbeb2c2 | |||
| 4d60012f44 | |||
| b2f413b033 | |||
| c25bb8bf55 | |||
| 3b923e3e13 | |||
|
|
061265bbd0 | ||
| a08a8d2000 | |||
| fea0299c95 | |||
| 444930199c | |||
| 95704b9a40 | |||
| 8d300827d0 | |||
| 9ab79b120a | |||
| 8cc9470aca | |||
| 9e95701a6e | |||
| fe90401688 | |||
| aeaaee9915 | |||
| 52b024c1ba | |||
| 3a95613132 | |||
| 2ea2c994d8 | |||
| 04686b6dfa | |||
| 78201d4759 | |||
| 5fe6600dc3 | |||
| 2a65f78cd4 | |||
| 4852dad71e | |||
| 0746be904a | |||
| 53c2ee404c | |||
| bd694c3f7d | |||
| 95e9fcbffe | |||
| 98665a3231 | |||
| 7a51ad135f | |||
| e386935bc7 | |||
| c62562e6f0 | |||
| 00e37996b7 | |||
| a7e2c61984 | |||
| 58919b2d58 | |||
| dd36eb886f | |||
|
|
d2e01db0ae | ||
| bfd7b01ea4 |
308
Cargo.lock
generated
308
Cargo.lock
generated
@@ -4,18 +4,18 @@ version = 3
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aho-corasick"
|
name = "aho-corasick"
|
||||||
version = "0.7.18"
|
version = "0.7.19"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
|
checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"memchr",
|
"memchr",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "async-channel"
|
name = "async-channel"
|
||||||
version = "1.6.1"
|
version = "1.7.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319"
|
checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"concurrent-queue",
|
"concurrent-queue",
|
||||||
"event-listener",
|
"event-listener",
|
||||||
@@ -47,9 +47,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bytes"
|
name = "bytes"
|
||||||
version = "1.1.0"
|
version = "1.2.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
|
checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cache-padded"
|
name = "cache-padded"
|
||||||
@@ -80,26 +80,24 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "clap"
|
name = "clap"
|
||||||
version = "3.2.8"
|
version = "4.0.11"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "190814073e85d238f31ff738fcb0bf6910cedeb73376c87cd69291028966fd83"
|
checksum = "4ed45cc2c62a3eff523e718d8576ba762c83a3146151093283ac62ae11933a73"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"atty",
|
"atty",
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"clap_derive",
|
"clap_derive",
|
||||||
"clap_lex",
|
"clap_lex",
|
||||||
"indexmap",
|
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"strsim",
|
"strsim",
|
||||||
"termcolor",
|
"termcolor",
|
||||||
"textwrap",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "clap_derive"
|
name = "clap_derive"
|
||||||
version = "3.2.7"
|
version = "4.0.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "759bf187376e1afa7b85b959e6a664a3e7a95203415dba952ad19139e798f902"
|
checksum = "db342ce9fda24fb191e2ed4e102055a4d381c1086a06630174cd8da8d5d917ce"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"heck",
|
"heck",
|
||||||
"proc-macro-error",
|
"proc-macro-error",
|
||||||
@@ -110,18 +108,18 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "clap_lex"
|
name = "clap_lex"
|
||||||
version = "0.2.4"
|
version = "0.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
|
checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"os_str_bytes",
|
"os_str_bytes",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "comfy-table"
|
name = "comfy-table"
|
||||||
version = "6.0.0"
|
version = "6.1.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "121d8a5b0346092c18a4b2fd6f620d7a06f0eb7ac0a45860939a0884bc579c56"
|
checksum = "85914173c2f558d61613bfbbf1911f14e630895087a7ed2fafc0f5319e1536e7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"crossterm",
|
"crossterm",
|
||||||
"strum",
|
"strum",
|
||||||
@@ -131,23 +129,22 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "concurrent-queue"
|
name = "concurrent-queue"
|
||||||
version = "1.2.2"
|
version = "1.2.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3"
|
checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cache-padded",
|
"cache-padded",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "console"
|
name = "console"
|
||||||
version = "0.15.0"
|
version = "0.15.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a28b32d32ca44b70c3e4acd7db1babf555fa026e385fb95f18028f88848b3c31"
|
checksum = "c050367d967ced717c04b65d8c619d863ef9292ce0c5760028655a2fb298718c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"encode_unicode",
|
"encode_unicode",
|
||||||
|
"lazy_static",
|
||||||
"libc",
|
"libc",
|
||||||
"once_cell",
|
|
||||||
"regex",
|
|
||||||
"terminal_size",
|
"terminal_size",
|
||||||
"unicode-width",
|
"unicode-width",
|
||||||
"winapi",
|
"winapi",
|
||||||
@@ -155,19 +152,18 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crossbeam-utils"
|
name = "crossbeam-utils"
|
||||||
version = "0.8.10"
|
version = "0.8.12"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83"
|
checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"once_cell",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crossterm"
|
name = "crossterm"
|
||||||
version = "0.23.2"
|
version = "0.25.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a2102ea4f781910f8a5b98dd061f4c2023f479ce7bb1236330099ceb5a93cf17"
|
checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"crossterm_winapi",
|
"crossterm_winapi",
|
||||||
@@ -190,9 +186,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "curl"
|
name = "curl"
|
||||||
version = "0.4.43"
|
version = "0.4.44"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "37d855aeef205b43f65a5001e0997d81f8efca7badad4fad7d897aa7f0d0651f"
|
checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"curl-sys",
|
"curl-sys",
|
||||||
"libc",
|
"libc",
|
||||||
@@ -205,9 +201,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "curl-sys"
|
name = "curl-sys"
|
||||||
version = "0.4.55+curl-7.83.1"
|
version = "0.4.56+curl-7.83.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "23734ec77368ec583c2e61dd3f0b0e5c98b93abe6d2a004ca06b91dd7e3e2762"
|
checksum = "6093e169dd4de29e468fa649fbae11cdcd5551c81fe5bf1b0677adad7ef3d26f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cc",
|
"cc",
|
||||||
"libc",
|
"libc",
|
||||||
@@ -220,20 +216,19 @@ dependencies = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "dirs-next"
|
name = "dirs"
|
||||||
version = "2.0.0"
|
version = "4.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
|
checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"dirs-sys",
|
||||||
"dirs-sys-next",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "dirs-sys-next"
|
name = "dirs-sys"
|
||||||
version = "0.1.2"
|
version = "0.3.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
|
checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
"redox_users",
|
"redox_users",
|
||||||
@@ -257,15 +252,15 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "event-listener"
|
name = "event-listener"
|
||||||
version = "2.5.2"
|
version = "2.5.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71"
|
checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fastrand"
|
name = "fastrand"
|
||||||
version = "1.7.0"
|
version = "1.8.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"
|
checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"instant",
|
"instant",
|
||||||
]
|
]
|
||||||
@@ -278,11 +273,10 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "form_urlencoded"
|
name = "form_urlencoded"
|
||||||
version = "1.0.1"
|
version = "1.1.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
|
checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"matches",
|
|
||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -294,15 +288,15 @@ checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "futures-core"
|
name = "futures-core"
|
||||||
version = "0.3.21"
|
version = "0.3.24"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
|
checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "futures-io"
|
name = "futures-io"
|
||||||
version = "0.3.21"
|
version = "0.3.24"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b"
|
checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "futures-lite"
|
name = "futures-lite"
|
||||||
@@ -332,7 +326,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "git-repo-manager"
|
name = "git-repo-manager"
|
||||||
version = "0.7.5"
|
version = "0.7.11"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap",
|
"clap",
|
||||||
"comfy-table",
|
"comfy-table",
|
||||||
@@ -352,9 +346,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "git2"
|
name = "git2"
|
||||||
version = "0.14.4"
|
version = "0.15.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d0155506aab710a86160ddb504a480d2964d7ab5b9e62419be69e0032bc5931c"
|
checksum = "2994bee4a3a6a51eb90c218523be382fd7ea09b16380b9312e9dbe955ff7c7d1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"libc",
|
"libc",
|
||||||
@@ -367,9 +361,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hashbrown"
|
name = "hashbrown"
|
||||||
version = "0.12.1"
|
version = "0.12.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3"
|
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "heck"
|
name = "heck"
|
||||||
@@ -399,11 +393,10 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "idna"
|
name = "idna"
|
||||||
version = "0.2.3"
|
version = "0.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
|
checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"matches",
|
|
||||||
"unicode-bidi",
|
"unicode-bidi",
|
||||||
"unicode-normalization",
|
"unicode-normalization",
|
||||||
]
|
]
|
||||||
@@ -458,15 +451,15 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "itoa"
|
name = "itoa"
|
||||||
version = "1.0.2"
|
version = "1.0.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
|
checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jobserver"
|
name = "jobserver"
|
||||||
version = "0.1.24"
|
version = "0.1.25"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa"
|
checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
@@ -479,15 +472,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libc"
|
name = "libc"
|
||||||
version = "0.2.126"
|
version = "0.2.135"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
|
checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libgit2-sys"
|
name = "libgit2-sys"
|
||||||
version = "0.13.4+1.4.2"
|
version = "0.14.0+1.5.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d0fa6563431ede25f5cc7f6d803c6afbc1c5d3ad3d4925d12c882bf2b526f5d1"
|
checksum = "47a00859c70c8a4f7218e6d1cc32875c4b55f6799445b842b0d8ed5e4c3d959b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cc",
|
"cc",
|
||||||
"libc",
|
"libc",
|
||||||
@@ -533,17 +526,11 @@ dependencies = [
|
|||||||
"vcpkg",
|
"vcpkg",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "linked-hash-map"
|
|
||||||
version = "0.5.6"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lock_api"
|
name = "lock_api"
|
||||||
version = "0.4.7"
|
version = "0.4.9"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53"
|
checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"autocfg",
|
"autocfg",
|
||||||
"scopeguard",
|
"scopeguard",
|
||||||
@@ -558,12 +545,6 @@ dependencies = [
|
|||||||
"cfg-if",
|
"cfg-if",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "matches"
|
|
||||||
version = "0.1.9"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "memchr"
|
name = "memchr"
|
||||||
version = "2.5.0"
|
version = "2.5.0"
|
||||||
@@ -590,9 +571,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "once_cell"
|
name = "once_cell"
|
||||||
version = "1.12.0"
|
version = "1.15.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225"
|
checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "openssl-probe"
|
name = "openssl-probe"
|
||||||
@@ -602,18 +583,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "openssl-src"
|
name = "openssl-src"
|
||||||
version = "111.21.0+1.1.1p"
|
version = "111.22.0+1.1.1q"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6d0a8313729211913936f1b95ca47a5fc7f2e04cd658c115388287f8a8361008"
|
checksum = "8f31f0d509d1c1ae9cada2f9539ff8f37933831fd5098879e482aa687d659853"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cc",
|
"cc",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "openssl-sys"
|
name = "openssl-sys"
|
||||||
version = "0.9.74"
|
version = "0.9.76"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "835363342df5fba8354c5b453325b110ffd54044e588c539cf2f20a8014e4cb1"
|
checksum = "5230151e44c0f05157effb743e8d517472843121cf9243e8b81393edb5acd9ce"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"autocfg",
|
"autocfg",
|
||||||
"cc",
|
"cc",
|
||||||
@@ -625,9 +606,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "os_str_bytes"
|
name = "os_str_bytes"
|
||||||
version = "6.1.0"
|
version = "6.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "21326818e99cfe6ce1e524c2a805c189a99b5ae555a35d19f9a284b427d86afa"
|
checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "parking"
|
name = "parking"
|
||||||
@@ -671,24 +652,24 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "percent-encoding"
|
name = "percent-encoding"
|
||||||
version = "2.1.0"
|
version = "2.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
|
checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pin-project"
|
name = "pin-project"
|
||||||
version = "1.0.10"
|
version = "1.0.12"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e"
|
checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"pin-project-internal",
|
"pin-project-internal",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pin-project-internal"
|
name = "pin-project-internal"
|
||||||
version = "1.0.10"
|
version = "1.0.12"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb"
|
checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@@ -709,10 +690,11 @@ checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "polling"
|
name = "polling"
|
||||||
version = "2.2.0"
|
version = "2.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259"
|
checksum = "899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"autocfg",
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"libc",
|
"libc",
|
||||||
"log",
|
"log",
|
||||||
@@ -746,18 +728,18 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "proc-macro2"
|
name = "proc-macro2"
|
||||||
version = "1.0.40"
|
version = "1.0.46"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
|
checksum = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"unicode-ident",
|
"unicode-ident",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "quote"
|
name = "quote"
|
||||||
version = "1.0.20"
|
version = "1.0.21"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
|
checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
]
|
]
|
||||||
@@ -801,9 +783,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "redox_syscall"
|
name = "redox_syscall"
|
||||||
version = "0.2.13"
|
version = "0.2.16"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
|
checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
]
|
]
|
||||||
@@ -821,9 +803,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "regex"
|
name = "regex"
|
||||||
version = "1.5.6"
|
version = "1.6.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1"
|
checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aho-corasick",
|
"aho-corasick",
|
||||||
"memchr",
|
"memchr",
|
||||||
@@ -832,9 +814,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "regex-syntax"
|
name = "regex-syntax"
|
||||||
version = "0.6.26"
|
version = "0.6.27"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64"
|
checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "remove_dir_all"
|
name = "remove_dir_all"
|
||||||
@@ -847,15 +829,15 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustversion"
|
name = "rustversion"
|
||||||
version = "1.0.7"
|
version = "1.0.9"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a0a5f7c728f5d284929a1cccb5bc19884422bfe6ef4d6c409da2c41838983fcf"
|
checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ryu"
|
name = "ryu"
|
||||||
version = "1.0.10"
|
version = "1.0.11"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
|
checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "schannel"
|
name = "schannel"
|
||||||
@@ -875,18 +857,18 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde"
|
name = "serde"
|
||||||
version = "1.0.137"
|
version = "1.0.145"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1"
|
checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"serde_derive",
|
"serde_derive",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde_derive"
|
name = "serde_derive"
|
||||||
version = "1.0.137"
|
version = "1.0.145"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be"
|
checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@@ -895,9 +877,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde_json"
|
name = "serde_json"
|
||||||
version = "1.0.82"
|
version = "1.0.86"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7"
|
checksum = "41feea4228a6f1cd09ec7a3593a682276702cd67b5273544757dae23c096f074"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"itoa",
|
"itoa",
|
||||||
"ryu",
|
"ryu",
|
||||||
@@ -906,23 +888,24 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde_yaml"
|
name = "serde_yaml"
|
||||||
version = "0.8.24"
|
version = "0.9.13"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "707d15895415db6628332b737c838b88c598522e4dc70647e59b72312924aebc"
|
checksum = "8613d593412a0deb7bbd8de9d908efff5a0cb9ccd8f62c641e7b2ed2f57291d1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"indexmap",
|
"indexmap",
|
||||||
|
"itoa",
|
||||||
"ryu",
|
"ryu",
|
||||||
"serde",
|
"serde",
|
||||||
"yaml-rust",
|
"unsafe-libyaml",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "shellexpand"
|
name = "shellexpand"
|
||||||
version = "2.1.0"
|
version = "2.1.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "83bdb7831b2d85ddf4a7b148aa19d0587eddbe8671a436b7bd1182eaad0f2829"
|
checksum = "7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"dirs-next",
|
"dirs",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -957,9 +940,12 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "slab"
|
name = "slab"
|
||||||
version = "0.4.6"
|
version = "0.4.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32"
|
checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
|
||||||
|
dependencies = [
|
||||||
|
"autocfg",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "sluice"
|
name = "sluice"
|
||||||
@@ -974,15 +960,15 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "smallvec"
|
name = "smallvec"
|
||||||
version = "1.9.0"
|
version = "1.10.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1"
|
checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "socket2"
|
name = "socket2"
|
||||||
version = "0.4.4"
|
version = "0.4.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0"
|
checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
"winapi",
|
"winapi",
|
||||||
@@ -1002,9 +988,9 @@ checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "strum_macros"
|
name = "strum_macros"
|
||||||
version = "0.24.2"
|
version = "0.24.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4faebde00e8ff94316c01800f9054fd2ba77d30d9e922541913051d1d978918b"
|
checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"heck",
|
"heck",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
@@ -1015,9 +1001,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "syn"
|
name = "syn"
|
||||||
version = "1.0.98"
|
version = "1.0.102"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
|
checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@@ -1053,26 +1039,20 @@ dependencies = [
|
|||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "textwrap"
|
|
||||||
version = "0.15.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "thiserror"
|
name = "thiserror"
|
||||||
version = "1.0.31"
|
version = "1.0.37"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a"
|
checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"thiserror-impl",
|
"thiserror-impl",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "thiserror-impl"
|
name = "thiserror-impl"
|
||||||
version = "1.0.31"
|
version = "1.0.37"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a"
|
checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@@ -1105,9 +1085,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tracing"
|
name = "tracing"
|
||||||
version = "0.1.35"
|
version = "0.1.37"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160"
|
checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"log",
|
"log",
|
||||||
@@ -1118,9 +1098,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tracing-attributes"
|
name = "tracing-attributes"
|
||||||
version = "0.1.21"
|
version = "0.1.23"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c"
|
checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@@ -1129,9 +1109,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tracing-core"
|
name = "tracing-core"
|
||||||
version = "0.1.28"
|
version = "0.1.30"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7"
|
checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"once_cell",
|
"once_cell",
|
||||||
]
|
]
|
||||||
@@ -1154,34 +1134,39 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unicode-ident"
|
name = "unicode-ident"
|
||||||
version = "1.0.1"
|
version = "1.0.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"
|
checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unicode-normalization"
|
name = "unicode-normalization"
|
||||||
version = "0.1.20"
|
version = "0.1.22"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "81dee68f85cab8cf68dec42158baf3a79a1cdc065a8b103025965d6ccb7f6cbd"
|
checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"tinyvec",
|
"tinyvec",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unicode-width"
|
name = "unicode-width"
|
||||||
version = "0.1.9"
|
version = "0.1.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
|
checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "unsafe-libyaml"
|
||||||
|
version = "0.2.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c1e5fa573d8ac5f1a856f8d7be41d390ee973daf97c806b2c1a465e4e1406e68"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "url"
|
name = "url"
|
||||||
version = "2.2.2"
|
version = "2.3.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
|
checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"form_urlencoded",
|
"form_urlencoded",
|
||||||
"idna",
|
"idna",
|
||||||
"matches",
|
|
||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -1300,12 +1285,3 @@ name = "windows_x86_64_msvc"
|
|||||||
version = "0.36.1"
|
version = "0.36.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
|
checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "yaml-rust"
|
|
||||||
version = "0.4.5"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
|
|
||||||
dependencies = [
|
|
||||||
"linked-hash-map",
|
|
||||||
]
|
|
||||||
|
|||||||
20
Cargo.toml
20
Cargo.toml
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "git-repo-manager"
|
name = "git-repo-manager"
|
||||||
version = "0.7.5"
|
version = "0.7.11"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
authors = [
|
authors = [
|
||||||
@@ -44,33 +44,33 @@ path = "src/grm/main.rs"
|
|||||||
version = "=0.5.9"
|
version = "=0.5.9"
|
||||||
|
|
||||||
[dependencies.serde]
|
[dependencies.serde]
|
||||||
version = "=1.0.137"
|
version = "=1.0.145"
|
||||||
features = ["derive"]
|
features = ["derive"]
|
||||||
|
|
||||||
[dependencies.git2]
|
[dependencies.git2]
|
||||||
version = "=0.14.4"
|
version = "=0.15.0"
|
||||||
|
|
||||||
[dependencies.shellexpand]
|
[dependencies.shellexpand]
|
||||||
version = "=2.1.0"
|
version = "=2.1.2"
|
||||||
|
|
||||||
[dependencies.clap]
|
[dependencies.clap]
|
||||||
version = "=3.2.8"
|
version = "=4.0.11"
|
||||||
features = ["derive", "cargo"]
|
features = ["derive", "cargo"]
|
||||||
|
|
||||||
[dependencies.console]
|
[dependencies.console]
|
||||||
version = "=0.15.0"
|
version = "=0.15.2"
|
||||||
|
|
||||||
[dependencies.regex]
|
[dependencies.regex]
|
||||||
version = "=1.5.6"
|
version = "=1.6.0"
|
||||||
|
|
||||||
[dependencies.comfy-table]
|
[dependencies.comfy-table]
|
||||||
version = "=6.0.0"
|
version = "=6.1.0"
|
||||||
|
|
||||||
[dependencies.serde_yaml]
|
[dependencies.serde_yaml]
|
||||||
version = "=0.8.24"
|
version = "=0.9.13"
|
||||||
|
|
||||||
[dependencies.serde_json]
|
[dependencies.serde_json]
|
||||||
version = "=1.0.82"
|
version = "=1.0.86"
|
||||||
|
|
||||||
[dependencies.isahc]
|
[dependencies.isahc]
|
||||||
version = "=1.7.2"
|
version = "=1.7.2"
|
||||||
|
|||||||
9
Justfile
9
Justfile
@@ -1,5 +1,7 @@
|
|||||||
set positional-arguments
|
set positional-arguments
|
||||||
|
|
||||||
|
set shell := ["/bin/bash", "-c"]
|
||||||
|
|
||||||
static_target := "x86_64-unknown-linux-musl"
|
static_target := "x86_64-unknown-linux-musl"
|
||||||
|
|
||||||
check: fmt-check lint test
|
check: fmt-check lint test
|
||||||
@@ -32,6 +34,13 @@ build-release:
|
|||||||
build-release-static:
|
build-release-static:
|
||||||
cargo build --release --target {{static_target}} --features=static-build
|
cargo build --release --target {{static_target}} --features=static-build
|
||||||
|
|
||||||
|
pushall:
|
||||||
|
for r in $(git remote) ; do \
|
||||||
|
for branch in develop master ; do \
|
||||||
|
git push $r $branch ; \
|
||||||
|
done ; \
|
||||||
|
done
|
||||||
|
|
||||||
release-patch:
|
release-patch:
|
||||||
./release.sh patch
|
./release.sh patch
|
||||||
|
|
||||||
|
|||||||
36
README.md
36
README.md
@@ -1,7 +1,10 @@
|
|||||||
# GRM — Git Repository Manager
|
# GRM — Git Repository Manager
|
||||||
|
|
||||||
GRM helps you manage git repositories in a declarative way. Configure your
|
GRM helps you manage git repositories in a declarative way. Configure your
|
||||||
repositories in a [TOML](https://toml.io/) file, GRM does the rest.
|
repositories in a [TOML](https://toml.io/) or YAML file, GRM does the rest.
|
||||||
|
|
||||||
|
Also, GRM can be used to work with git worktrees in an opinionated,
|
||||||
|
straightforward fashion.
|
||||||
|
|
||||||
**Take a look at the [official documentation](https://hakoerber.github.io/git-repo-manager/)
|
**Take a look at the [official documentation](https://hakoerber.github.io/git-repo-manager/)
|
||||||
for installation & quickstart.**
|
for installation & quickstart.**
|
||||||
@@ -34,23 +37,26 @@ like Terraform for your local git repositories. Write a config, run the tool, an
|
|||||||
your repos are ready. The only thing that is tracked by git it the list of
|
your repos are ready. The only thing that is tracked by git it the list of
|
||||||
repositories itself.
|
repositories itself.
|
||||||
|
|
||||||
# Future & Ideas
|
|
||||||
|
|
||||||
* Operations over all repos (e.g. pull)
|
|
||||||
* Show status of managed repositories (dirty, compare to remotes, ...)
|
|
||||||
|
|
||||||
# Optional Features
|
|
||||||
|
|
||||||
* Support multiple file formats (YAML, JSON).
|
|
||||||
* Add systemd timer unit to run regular syncs
|
|
||||||
|
|
||||||
# Crates
|
# Crates
|
||||||
|
|
||||||
* [`toml`](https://docs.rs/toml/) for the configuration file
|
* [`toml`](https://docs.rs/toml/) for the configuration file.
|
||||||
* [`serde`](https://docs.rs/serde/) because we're using Rust, after all
|
* [`serde`](https://docs.rs/serde/), together with
|
||||||
* [`git2`](https://docs.rs/git2/), a safe wrapper around `libgit2`, for all git operations
|
[`serde_yaml`](https://docs.rs/serde_yaml/) and
|
||||||
* [`clap`](https://docs.rs/clap/), [`console`](https://docs.rs/console/) and [`shellexpand`](https://docs.rs/shellexpand) for good UX
|
[`serde_json`](https://docs.rs/serde_json/). Because we're using Rust, after
|
||||||
|
all.
|
||||||
|
* [`git2`](https://docs.rs/git2/), a safe wrapper around `libgit2`, for all git operations.
|
||||||
|
* [`clap`](https://docs.rs/clap/), [`console`](https://docs.rs/console/), [`comfy_table`](https://docs.rs/comfy-table/) and [`shellexpand`](https://docs.rs/shellexpand) for good UX.
|
||||||
|
* [`isahc`](https://docs.rs/isahc/) as the HTTP client for forge integrations.
|
||||||
|
|
||||||
# Links
|
# Links
|
||||||
|
|
||||||
* [crates.io](https://crates.io/crates/git-repo-manager)
|
* [crates.io](https://crates.io/crates/git-repo-manager)
|
||||||
|
|
||||||
|
# Mirrors
|
||||||
|
|
||||||
|
This repository can be found on multiple forges:
|
||||||
|
|
||||||
|
* https://github.com/hakoerber/git-repo-manager
|
||||||
|
* https://code.hkoerber.de/hannes/git-repo-manager/
|
||||||
|
* https://codeberg.org/hakoerber/git-repo-manager
|
||||||
|
* https://git.sr.ht/~hkoerber/git-repo-manager
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
- [Git Worktrees](./worktrees.md)
|
- [Git Worktrees](./worktrees.md)
|
||||||
- [Working with Worktrees](./worktree_working.md)
|
- [Working with Worktrees](./worktree_working.md)
|
||||||
- [Worktrees and Remotes](./worktree_remotes.md)
|
- [Worktrees and Remotes](./worktree_remotes.md)
|
||||||
- [Behaviour Details](./worktree_behaviour.md)
|
- [Behavior Details](./worktree_behavior.md)
|
||||||
- [FAQ](./faq.md)
|
- [FAQ](./faq.md)
|
||||||
- [Developer Documentation](./developing.md)
|
- [Developer Documentation](./developing.md)
|
||||||
- [Testing](./testing.md)
|
- [Testing](./testing.md)
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ functions (like validation of certain input).
|
|||||||
## E2E tests
|
## E2E tests
|
||||||
|
|
||||||
The main focus of the testing setup lays on the e2e tests. Each user-facing
|
The main focus of the testing setup lays on the e2e tests. Each user-facing
|
||||||
behaviour *should* have a corresponding e2e test. These are the most important
|
behavior *should* have a corresponding e2e test. These are the most important
|
||||||
tests, as they test functionality the user will use in the end.
|
tests, as they test functionality the user will use in the end.
|
||||||
|
|
||||||
The test suite is written in python and uses
|
The test suite is written in python and uses
|
||||||
@@ -28,7 +28,7 @@ Effectively, each tests works like this:
|
|||||||
* Set up some prerequisites (e.g. different git repositories or configuration
|
* Set up some prerequisites (e.g. different git repositories or configuration
|
||||||
files)
|
files)
|
||||||
* Run `grm`
|
* Run `grm`
|
||||||
* Check that everything is according to expected behaviour (e.g. that `grm` had
|
* Check that everything is according to expected behavior (e.g. that `grm` had
|
||||||
certain output and exit code, that the target repositories have certain
|
certain output and exit code, that the target repositories have certain
|
||||||
branches, heads and remotes, ...)
|
branches, heads and remotes, ...)
|
||||||
|
|
||||||
@@ -39,8 +39,8 @@ configuration exists, what a config value is set to, how the repository looks
|
|||||||
like, ...)
|
like, ...)
|
||||||
|
|
||||||
Whenever you write a new test, think about the different circumstances that can
|
Whenever you write a new test, think about the different circumstances that can
|
||||||
happen. What are the failure modes? What affects the behaviour? Parametrize each
|
happen. What are the failure modes? What affects the behavior? Parametrize each
|
||||||
of these behaviours.
|
of these behaviors.
|
||||||
|
|
||||||
### Optimization
|
### Optimization
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ def get_temporary_directory(dir=None):
|
|||||||
def grm(args, cwd=None, is_invalid=False):
|
def grm(args, cwd=None, is_invalid=False):
|
||||||
cmd = subprocess.run([binary] + args, cwd=cwd, capture_output=True, text=True)
|
cmd = subprocess.run([binary] + args, cwd=cwd, capture_output=True, text=True)
|
||||||
if not is_invalid:
|
if not is_invalid:
|
||||||
assert "USAGE" not in cmd.stderr
|
assert "usage" not in cmd.stderr.lower()
|
||||||
print(f"grmcmd: {args}")
|
print(f"grmcmd: {args}")
|
||||||
print(f"stdout:\n{cmd.stdout}")
|
print(f"stdout:\n{cmd.stdout}")
|
||||||
print(f"stderr:\n{cmd.stderr}")
|
print(f"stderr:\n{cmd.stderr}")
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ from helpers import *
|
|||||||
|
|
||||||
def test_invalid_command():
|
def test_invalid_command():
|
||||||
cmd = grm(["whatever"], is_invalid=True)
|
cmd = grm(["whatever"], is_invalid=True)
|
||||||
assert "USAGE" in cmd.stderr
|
assert "usage" in cmd.stderr.lower()
|
||||||
|
|
||||||
|
|
||||||
def test_help():
|
def test_help():
|
||||||
cmd = grm(["--help"])
|
cmd = grm(["--help"])
|
||||||
assert "USAGE" in cmd.stdout
|
assert "usage" in cmd.stdout.lower()
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ def test_worktree_add(
|
|||||||
explicit_track_branch_name = f"{default_remote}/{worktree_name}"
|
explicit_track_branch_name = f"{default_remote}/{worktree_name}"
|
||||||
|
|
||||||
timestamp = datetime.datetime.now().replace(microsecond=0).isoformat()
|
timestamp = datetime.datetime.now().replace(microsecond=0).isoformat()
|
||||||
# GitPython has some weird behaviour here. It is not possible to use kwargs
|
# GitPython has some weird behavior here. It is not possible to use kwargs
|
||||||
# to set the commit and author date.
|
# to set the commit and author date.
|
||||||
#
|
#
|
||||||
# `committer_date=x` (which is documented) does not work, as `git commit`
|
# `committer_date=x` (which is documented) does not work, as `git commit`
|
||||||
@@ -79,7 +79,7 @@ def test_worktree_add(
|
|||||||
# `author_date=x` does not work, as it's now called --date in `git commit`
|
# `author_date=x` does not work, as it's now called --date in `git commit`
|
||||||
#
|
#
|
||||||
# `date=x` should work, but is refused by GitPython, as it does not know
|
# `date=x` should work, but is refused by GitPython, as it does not know
|
||||||
# about the new behaviour in `git commit`
|
# about the new behavior in `git commit`
|
||||||
#
|
#
|
||||||
# Fortunately, there are env variables that control those timestamps.
|
# Fortunately, there are env variables that control those timestamps.
|
||||||
os.environ["GIT_COMMITTER_DATE"] = str(timestamp)
|
os.environ["GIT_COMMITTER_DATE"] = str(timestamp)
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ fi
|
|||||||
|
|
||||||
for remote in $(git remote); do
|
for remote in $(git remote); do
|
||||||
if git ls-remote --tags "${remote}" | grep -q "refs/tags/v${new_version}$"; then
|
if git ls-remote --tags "${remote}" | grep -q "refs/tags/v${new_version}$"; then
|
||||||
printf 'Tag %s already exists on %s' "v${new_version}" "${remote}" >&2
|
printf 'Tag %s already exists on %s\n' "v${new_version}" "${remote}" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -52,7 +52,6 @@ pub struct ConfigProvider {
|
|||||||
pub api_url: Option<String>,
|
pub api_url: Option<String>,
|
||||||
|
|
||||||
pub worktree: Option<bool>,
|
pub worktree: Option<bool>,
|
||||||
pub init_worktree: Option<bool>,
|
|
||||||
|
|
||||||
pub remote_name: Option<String>,
|
pub remote_name: Option<String>,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
use clap::{AppSettings, Parser};
|
use clap::Parser;
|
||||||
|
|
||||||
#[derive(Parser)]
|
#[derive(Parser)]
|
||||||
#[clap(
|
#[clap(
|
||||||
@@ -7,7 +7,6 @@ use clap::{AppSettings, Parser};
|
|||||||
author = clap::crate_authors!("\n"),
|
author = clap::crate_authors!("\n"),
|
||||||
about = clap::crate_description!(),
|
about = clap::crate_description!(),
|
||||||
long_version = clap::crate_version!(),
|
long_version = clap::crate_version!(),
|
||||||
global_setting(AppSettings::DeriveDisplayOrder),
|
|
||||||
propagate_version = true,
|
propagate_version = true,
|
||||||
)]
|
)]
|
||||||
pub struct Opts {
|
pub struct Opts {
|
||||||
@@ -65,7 +64,7 @@ pub struct FindLocalArgs {
|
|||||||
pub path: String,
|
pub path: String,
|
||||||
|
|
||||||
#[clap(
|
#[clap(
|
||||||
arg_enum,
|
value_enum,
|
||||||
short,
|
short,
|
||||||
long,
|
long,
|
||||||
help = "Format to produce",
|
help = "Format to produce",
|
||||||
@@ -85,7 +84,7 @@ pub struct FindConfigArgs {
|
|||||||
pub config: String,
|
pub config: String,
|
||||||
|
|
||||||
#[clap(
|
#[clap(
|
||||||
arg_enum,
|
value_enum,
|
||||||
short,
|
short,
|
||||||
long,
|
long,
|
||||||
help = "Format to produce",
|
help = "Format to produce",
|
||||||
@@ -100,14 +99,14 @@ pub struct FindRemoteArgs {
|
|||||||
#[clap(short, long, help = "Path to the configuration file")]
|
#[clap(short, long, help = "Path to the configuration file")]
|
||||||
pub config: Option<String>,
|
pub config: Option<String>,
|
||||||
|
|
||||||
#[clap(arg_enum, short, long, help = "Remote provider to use")]
|
#[clap(value_enum, short, long, help = "Remote provider to use")]
|
||||||
pub provider: RemoteProvider,
|
pub provider: RemoteProvider,
|
||||||
|
|
||||||
#[clap(short, long, help = "Name of the remote to use")]
|
#[clap(short, long, help = "Name of the remote to use")]
|
||||||
pub remote_name: Option<String>,
|
pub remote_name: Option<String>,
|
||||||
|
|
||||||
#[clap(
|
#[clap(
|
||||||
multiple_occurrences = true,
|
action = clap::ArgAction::Append,
|
||||||
name = "user",
|
name = "user",
|
||||||
long,
|
long,
|
||||||
help = "Users to get repositories from"
|
help = "Users to get repositories from"
|
||||||
@@ -115,7 +114,7 @@ pub struct FindRemoteArgs {
|
|||||||
pub users: Vec<String>,
|
pub users: Vec<String>,
|
||||||
|
|
||||||
#[clap(
|
#[clap(
|
||||||
multiple_occurrences = true,
|
action = clap::ArgAction::Append,
|
||||||
name = "group",
|
name = "group",
|
||||||
long,
|
long,
|
||||||
help = "Groups to get repositories from"
|
help = "Groups to get repositories from"
|
||||||
@@ -138,7 +137,7 @@ pub struct FindRemoteArgs {
|
|||||||
pub root: String,
|
pub root: String,
|
||||||
|
|
||||||
#[clap(
|
#[clap(
|
||||||
arg_enum,
|
value_enum,
|
||||||
short,
|
short,
|
||||||
long,
|
long,
|
||||||
help = "Format to produce",
|
help = "Format to produce",
|
||||||
@@ -149,11 +148,10 @@ pub struct FindRemoteArgs {
|
|||||||
#[clap(
|
#[clap(
|
||||||
long,
|
long,
|
||||||
help = "Use worktree setup for repositories",
|
help = "Use worktree setup for repositories",
|
||||||
possible_values = &["true", "false"],
|
value_parser = ["true", "false"],
|
||||||
default_value = "false",
|
default_value = "false",
|
||||||
default_missing_value = "true",
|
default_missing_value = "true",
|
||||||
min_values = 0,
|
num_args = 0..=1,
|
||||||
max_values = 1,
|
|
||||||
)]
|
)]
|
||||||
pub worktree: String,
|
pub worktree: String,
|
||||||
|
|
||||||
@@ -174,12 +172,11 @@ pub struct Config {
|
|||||||
|
|
||||||
#[clap(
|
#[clap(
|
||||||
long,
|
long,
|
||||||
|
value_parser = ["true", "false"],
|
||||||
help = "Check out the default worktree after clone",
|
help = "Check out the default worktree after clone",
|
||||||
possible_values = &["true", "false"],
|
|
||||||
default_value = "true",
|
default_value = "true",
|
||||||
default_missing_value = "true",
|
default_missing_value = "true",
|
||||||
min_values = 0,
|
num_args = 0..=1,
|
||||||
max_values = 1,
|
|
||||||
)]
|
)]
|
||||||
pub init_worktree: String,
|
pub init_worktree: String,
|
||||||
}
|
}
|
||||||
@@ -189,14 +186,14 @@ pub type RemoteProvider = super::provider::RemoteProvider;
|
|||||||
#[derive(Parser)]
|
#[derive(Parser)]
|
||||||
#[clap()]
|
#[clap()]
|
||||||
pub struct SyncRemoteArgs {
|
pub struct SyncRemoteArgs {
|
||||||
#[clap(arg_enum, short, long, help = "Remote provider to use")]
|
#[clap(value_enum, short, long, help = "Remote provider to use")]
|
||||||
pub provider: RemoteProvider,
|
pub provider: RemoteProvider,
|
||||||
|
|
||||||
#[clap(short, long, help = "Name of the remote to use")]
|
#[clap(short, long, help = "Name of the remote to use")]
|
||||||
pub remote_name: Option<String>,
|
pub remote_name: Option<String>,
|
||||||
|
|
||||||
#[clap(
|
#[clap(
|
||||||
multiple_occurrences = true,
|
action = clap::ArgAction::Append,
|
||||||
name = "user",
|
name = "user",
|
||||||
long,
|
long,
|
||||||
help = "Users to get repositories from"
|
help = "Users to get repositories from"
|
||||||
@@ -204,7 +201,7 @@ pub struct SyncRemoteArgs {
|
|||||||
pub users: Vec<String>,
|
pub users: Vec<String>,
|
||||||
|
|
||||||
#[clap(
|
#[clap(
|
||||||
multiple_occurrences = true,
|
action = clap::ArgAction::Append,
|
||||||
name = "group",
|
name = "group",
|
||||||
long,
|
long,
|
||||||
help = "Groups to get repositories from"
|
help = "Groups to get repositories from"
|
||||||
@@ -229,11 +226,10 @@ pub struct SyncRemoteArgs {
|
|||||||
#[clap(
|
#[clap(
|
||||||
long,
|
long,
|
||||||
help = "Use worktree setup for repositories",
|
help = "Use worktree setup for repositories",
|
||||||
possible_values = &["true", "false"],
|
value_parser = ["true", "false"],
|
||||||
default_value = "false",
|
default_value = "false",
|
||||||
default_missing_value = "true",
|
default_missing_value = "true",
|
||||||
min_values = 0,
|
num_args = 0..=1,
|
||||||
max_values = 1,
|
|
||||||
)]
|
)]
|
||||||
pub worktree: String,
|
pub worktree: String,
|
||||||
|
|
||||||
@@ -243,11 +239,10 @@ pub struct SyncRemoteArgs {
|
|||||||
#[clap(
|
#[clap(
|
||||||
long,
|
long,
|
||||||
help = "Check out the default worktree after clone",
|
help = "Check out the default worktree after clone",
|
||||||
possible_values = &["true", "false"],
|
value_parser = ["true", "false"],
|
||||||
default_value = "true",
|
default_value = "true",
|
||||||
default_missing_value = "true",
|
default_missing_value = "true",
|
||||||
min_values = 0,
|
num_args = 0..=1,
|
||||||
max_values = 1,
|
|
||||||
)]
|
)]
|
||||||
pub init_worktree: String,
|
pub init_worktree: String,
|
||||||
}
|
}
|
||||||
@@ -259,7 +254,7 @@ pub struct OptionalConfig {
|
|||||||
pub config: Option<String>,
|
pub config: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(clap::ArgEnum, Clone)]
|
#[derive(clap::ValueEnum, Clone)]
|
||||||
pub enum ConfigFormat {
|
pub enum ConfigFormat {
|
||||||
Yaml,
|
Yaml,
|
||||||
Toml,
|
Toml,
|
||||||
@@ -299,7 +294,7 @@ pub struct WorktreeAddArgs {
|
|||||||
#[clap(short = 't', long = "track", help = "Remote branch to track")]
|
#[clap(short = 't', long = "track", help = "Remote branch to track")]
|
||||||
pub track: Option<String>,
|
pub track: Option<String>,
|
||||||
|
|
||||||
#[clap(long = "--no-track", help = "Disable tracking")]
|
#[clap(long = "no-track", help = "Disable tracking")]
|
||||||
pub no_track: bool,
|
pub no_track: bool,
|
||||||
}
|
}
|
||||||
#[derive(Parser)]
|
#[derive(Parser)]
|
||||||
@@ -328,22 +323,19 @@ pub struct WorktreeFetchArgs {}
|
|||||||
|
|
||||||
#[derive(Parser)]
|
#[derive(Parser)]
|
||||||
pub struct WorktreePullArgs {
|
pub struct WorktreePullArgs {
|
||||||
#[clap(long = "--rebase", help = "Perform a rebase instead of a fast-forward")]
|
#[clap(long = "rebase", help = "Perform a rebase instead of a fast-forward")]
|
||||||
pub rebase: bool,
|
pub rebase: bool,
|
||||||
#[clap(long = "--stash", help = "Stash & unstash changes before & after pull")]
|
#[clap(long = "stash", help = "Stash & unstash changes before & after pull")]
|
||||||
pub stash: bool,
|
pub stash: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Parser)]
|
#[derive(Parser)]
|
||||||
pub struct WorktreeRebaseArgs {
|
pub struct WorktreeRebaseArgs {
|
||||||
#[clap(long = "--pull", help = "Perform a pull before rebasing")]
|
#[clap(long = "pull", help = "Perform a pull before rebasing")]
|
||||||
pub pull: bool,
|
pub pull: bool,
|
||||||
#[clap(long = "--rebase", help = "Perform a rebase when doing a pull")]
|
#[clap(long = "rebase", help = "Perform a rebase when doing a pull")]
|
||||||
pub rebase: bool,
|
pub rebase: bool,
|
||||||
#[clap(
|
#[clap(long = "stash", help = "Stash & unstash changes before & after rebase")]
|
||||||
long = "--stash",
|
|
||||||
help = "Stash & unstash changes before & after rebase"
|
|
||||||
)]
|
|
||||||
pub stash: bool,
|
pub stash: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ use std::collections::HashMap;
|
|||||||
|
|
||||||
const DEFAULT_REMOTE_NAME: &str = "origin";
|
const DEFAULT_REMOTE_NAME: &str = "origin";
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize, clap::ArgEnum, Clone)]
|
#[derive(Debug, Deserialize, Serialize, clap::ValueEnum, Clone)]
|
||||||
pub enum RemoteProvider {
|
pub enum RemoteProvider {
|
||||||
#[serde(alias = "github", alias = "GitHub")]
|
#[serde(alias = "github", alias = "GitHub")]
|
||||||
Github,
|
Github,
|
||||||
|
|||||||
@@ -233,7 +233,7 @@ impl Worktree {
|
|||||||
let operation = operation.map_err(convert_libgit2_error)?;
|
let operation = operation.map_err(convert_libgit2_error)?;
|
||||||
|
|
||||||
// This is required to preserve the commiter of the rebased
|
// This is required to preserve the commiter of the rebased
|
||||||
// commits, which is the expected behaviour.
|
// commits, which is the expected behavior.
|
||||||
let rebased_commit = repo
|
let rebased_commit = repo
|
||||||
.0
|
.0
|
||||||
.find_commit(operation.id())
|
.find_commit(operation.id())
|
||||||
@@ -357,7 +357,7 @@ impl Worktree {
|
|||||||
let operation = operation.map_err(convert_libgit2_error)?;
|
let operation = operation.map_err(convert_libgit2_error)?;
|
||||||
|
|
||||||
// This is required to preserve the commiter of the rebased
|
// This is required to preserve the commiter of the rebased
|
||||||
// commits, which is the expected behaviour.
|
// commits, which is the expected behavior.
|
||||||
let rebased_commit = repo
|
let rebased_commit = repo
|
||||||
.0
|
.0
|
||||||
.find_commit(operation.id())
|
.find_commit(operation.id())
|
||||||
|
|||||||
@@ -185,7 +185,11 @@ pub fn get_status_table(config: config::Config) -> Result<(Vec<Table>, Vec<Strin
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
add_repo_status(&mut table, &repo.name, &repo_handle, repo.worktree_setup)?;
|
if let Err(err) =
|
||||||
|
add_repo_status(&mut table, &repo.name, &repo_handle, repo.worktree_setup)
|
||||||
|
{
|
||||||
|
errors.push(format!("{}: Couldn't add repo status: {}", &repo.name, err));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tables.push(table);
|
tables.push(table);
|
||||||
|
|||||||
@@ -81,9 +81,9 @@
|
|||||||
//! * Instead of just picking `origin/prefix/foobar`, grm will complain because
|
//! * Instead of just picking `origin/prefix/foobar`, grm will complain because
|
||||||
//! it also selected `remote2/foobar`.
|
//! it also selected `remote2/foobar`.
|
||||||
//!
|
//!
|
||||||
//! This is just emergent behaviour of the logic above. Fixing it would require
|
//! This is just emergent behavior of the logic above. Fixing it would require
|
||||||
//! additional logic for that edge case. I assume that it's just so rare to get
|
//! additional logic for that edge case. I assume that it's just so rare to get
|
||||||
//! that behaviour that it's acceptable for now.
|
//! that behavior that it's acceptable for now.
|
||||||
//!
|
//!
|
||||||
//! Now we either have a commit, we aborted, or we do not have commit. In the
|
//! Now we either have a commit, we aborted, or we do not have commit. In the
|
||||||
//! last case, as stated above, we check out the "default" branch.
|
//! last case, as stated above, we check out the "default" branch.
|
||||||
@@ -137,7 +137,7 @@
|
|||||||
//! `foobar`. As both `remote1/foobar` and `remote2/foobar` as the same, the new
|
//! `foobar`. As both `remote1/foobar` and `remote2/foobar` as the same, the new
|
||||||
//! worktree will use that as the state of the new branch. But as `grm` cannot
|
//! worktree will use that as the state of the new branch. But as `grm` cannot
|
||||||
//! tell which remote branch to track, it will not set up remote tracking. This
|
//! tell which remote branch to track, it will not set up remote tracking. This
|
||||||
//! behaviour may be a bit confusing, but first, there is no good way to resolve
|
//! behavior may be a bit confusing, but first, there is no good way to resolve
|
||||||
//! this, and second, the situation should be really rare (when having multiple
|
//! this, and second, the situation should be really rare (when having multiple
|
||||||
//! remotes, you would generally have a `default_remote` configured).
|
//! remotes, you would generally have a `default_remote` configured).
|
||||||
//!
|
//!
|
||||||
@@ -372,7 +372,7 @@ impl<'a> Worktree<'a, WithRemoteTrackingBranch<'a>> {
|
|||||||
// TECHDEBT
|
// TECHDEBT
|
||||||
// We must not call this with `Some()` without a valid target.
|
// We must not call this with `Some()` without a valid target.
|
||||||
// I'm sure this can be improved, just not sure how.
|
// I'm sure this can be improved, just not sure how.
|
||||||
&*self.extra.target_commit.unwrap(),
|
&self.extra.target_commit.unwrap(),
|
||||||
)?
|
)?
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -463,7 +463,7 @@ impl<'a> Worktree<'a, WithRemoteTrackingBranch<'a>> {
|
|||||||
//
|
//
|
||||||
// > failed to make directory '/{repo}/.git-main-working-tree/worktrees/dir/test
|
// > failed to make directory '/{repo}/.git-main-working-tree/worktrees/dir/test
|
||||||
//
|
//
|
||||||
// This is a discrepancy between the behaviour of libgit2 and the
|
// This is a discrepancy between the behavior of libgit2 and the
|
||||||
// git CLI when creating worktrees with slashes:
|
// git CLI when creating worktrees with slashes:
|
||||||
//
|
//
|
||||||
// The git CLI will create the worktree's configuration directory
|
// The git CLI will create the worktree's configuration directory
|
||||||
|
|||||||
Reference in New Issue
Block a user