Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
fetch: update `gix` dependencies to the latest version
Sebastian Thiel committed 2 years ago
commit 20a521179cb9ac8eedc31082196d534b1184ba16
parent 39f65e1b29059de75e0e789cd9e34109049c938e
4 files changed +108 -134
modified Cargo.lock
@@ -45,7 +45,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
dependencies = [
 "cfg-if",
-
 "getrandom 0.2.10",
 "once_cell",
 "version_check",
]
@@ -1014,16 +1013,16 @@ dependencies = [

[[package]]
name = "gix-actor"
-
version = "0.23.0"
+
version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1969b77b9ee4cc1755c841987ec6f7622aaca95e952bcafb76973ae59d1b8716"
+
checksum = "948a5f9e43559d16faf583694f1c742eb401ce24ce8e6f2238caedea7486433c"
dependencies = [
 "bstr",
 "btoi",
 "gix-date",
 "itoa",
-
 "nom",
 "thiserror",
+
 "winnow",
]

[[package]]
@@ -1037,22 +1036,22 @@ dependencies = [

[[package]]
name = "gix-command"
-
version = "0.2.9"
+
version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "0f28f654184b5f725c5737c7e4f466cbd8f0102ac352d5257eeab19647ee4256"
+
checksum = "3c576cfbf577f72c097b5f88aedea502cd62952bdc1fb3adcab4531d5525a4c7"
dependencies = [
 "bstr",
]

[[package]]
name = "gix-commitgraph"
-
version = "0.17.1"
+
version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ed42baa50075d41c1a0931074ce1a97c5797c7c6fe7591d9f1f2dcd448532c26"
+
checksum = "7e8bc78b1a6328fa6d8b3a53b6c73997af37fd6bfc1d6c49f149e63bda5cbb36"
dependencies = [
 "bstr",
 "gix-chunk",
-
 "gix-features 0.31.1",
+
 "gix-features",
 "gix-hash",
 "memmap2",
 "thiserror",
@@ -1060,9 +1059,9 @@ dependencies = [

[[package]]
name = "gix-config-value"
-
version = "0.12.5"
+
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "6e874f41437441c02991dcea76990b9058fadfc54b02ab4dd06ab2218af43897"
+
checksum = "ea7505b97f4d8e7933e29735a568ba2f86d8de466669d9f0e8321384f9972f47"
dependencies = [
 "bitflags 2.4.0",
 "bstr",
@@ -1073,9 +1072,9 @@ dependencies = [

[[package]]
name = "gix-credentials"
-
version = "0.16.1"
+
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "75a75565e0e6e7f80cfa4eb1b05cc448c6846ddd48dcf413a28875fbc11ee9af"
+
checksum = "1c5c5d74069b842a1861e581027ac6b7ad9ff66f5911c89b9f45484d7ebda6a4"
dependencies = [
 "bstr",
 "gix-command",
@@ -1089,9 +1088,9 @@ dependencies = [

[[package]]
name = "gix-date"
-
version = "0.7.4"
+
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "0a825babda995d788e30d306a49dacd1e93d5f5d33d53c7682d0347cef40333c"
+
checksum = "fc7df669639582dc7c02737642f76890b03b5544e141caba68a7d6b4eb551e0d"
dependencies = [
 "bstr",
 "itoa",
@@ -1101,21 +1100,20 @@ dependencies = [

[[package]]
name = "gix-diff"
-
version = "0.32.0"
+
version = "0.37.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "aaf5d9b9b521b284ebe53ee69eee33341835ec70edc314f36b2100ea81396121"
+
checksum = "931394f69fb8c9ed6afc0aae3487bd869e936339bcc13ed8884472af072e0554"
dependencies = [
 "gix-hash",
 "gix-object",
-
 "imara-diff",
 "thiserror",
]

[[package]]
name = "gix-features"
-
version = "0.31.1"
+
version = "0.36.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "06142d8cff5d17509399b04052b64d2f9b3a311d5cff0b1a32b220f62cd0d595"
+
checksum = "51f4365ba17c4f218d7fd9ec102b8d2d3cb0ca200a835e81151ace7778aec827"
dependencies = [
 "crc32fast",
 "flate2",
@@ -1129,40 +1127,29 @@ dependencies = [
]

[[package]]
-
name = "gix-features"
-
version = "0.32.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "882695cccf38da4c3cc7ee687bdb412cf25e37932d7f8f2c306112ea712449f1"
-
dependencies = [
-
 "gix-hash",
-
 "gix-trace",
-
 "libc",
-
]
-

-
[[package]]
name = "gix-fs"
-
version = "0.4.1"
+
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4d5b6e9d34a2c61ea4a02bbca94c409ab6dbbca1348cbb67298cd7fed8758761"
+
checksum = "8cd171c0cae97cd0dc57e7b4601cb1ebf596450e263ef3c02be9107272c877bd"
dependencies = [
-
 "gix-features 0.32.1",
+
 "gix-features",
]

[[package]]
name = "gix-hash"
-
version = "0.11.4"
+
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "4b422ff2ad9a0628baaad6da468cf05385bf3f5ab495ad5a33cce99b9f41092f"
+
checksum = "1884c7b41ea0875217c1be9ce91322f90bde433e91d374d0e1276073a51ccc60"
dependencies = [
-
 "hex",
+
 "faster-hex",
 "thiserror",
]

[[package]]
name = "gix-hashtable"
-
version = "0.2.4"
+
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "385f4ce6ecf3692d313ca3aa9bd3b3d8490de53368d6d94bedff3af8b6d9c58d"
+
checksum = "409268480841ad008e81c17ca5a293393fbf9f2b6c2f85b8ab9de1f0c5176a16"
dependencies = [
 "gix-hash",
 "hashbrown 0.14.0",
@@ -1171,33 +1158,32 @@ dependencies = [

[[package]]
name = "gix-object"
-
version = "0.32.0"
+
version = "0.38.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a953f3d7ffad16734aa3ab1d05807972c80e339d1bd9dde03e0198716b99e2a6"
+
checksum = "740f2a44267f58770a1cb3a3d01d14e67b089c7136c48d4bddbb3cfd2bf86a51"
dependencies = [
 "bstr",
 "btoi",
 "gix-actor",
 "gix-date",
-
 "gix-features 0.31.1",
+
 "gix-features",
 "gix-hash",
 "gix-validate",
-
 "hex",
 "itoa",
-
 "nom",
 "smallvec",
 "thiserror",
+
 "winnow",
]

[[package]]
name = "gix-odb"
-
version = "0.49.1"
+
version = "0.54.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "f6418cff00ecc2713b58c8e04bff30dda808fbba1a080e7248b299d069894a01"
+
checksum = "8630b56cb80d8fa684d383dad006a66401ee8314e12fbf0e566ddad8c115143b"
dependencies = [
 "arc-swap",
 "gix-date",
-
 "gix-features 0.31.1",
+
 "gix-features",
 "gix-hash",
 "gix-object",
 "gix-pack",
@@ -1210,13 +1196,13 @@ dependencies = [

[[package]]
name = "gix-pack"
-
version = "0.39.1"
+
version = "0.44.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "414935138d90043ea5898de7a93f02c2558e52652492719470e203ef26a8fd0a"
+
checksum = "1431ba2e30deff1405920693d54ab231c88d7c240dd6ccc936ee223d8f8697c3"
dependencies = [
 "gix-chunk",
 "gix-diff",
-
 "gix-features 0.31.1",
+
 "gix-features",
 "gix-hash",
 "gix-hashtable",
 "gix-object",
@@ -1231,9 +1217,9 @@ dependencies = [

[[package]]
name = "gix-packetline"
-
version = "0.16.5"
+
version = "0.16.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "2a374cb5eba089e3c123df4d996eb00da411bb90ec92cb35bffeeb2d22ee106a"
+
checksum = "8a8384b1e964151aff0d5632dd9b191059d07dff358b96bd940f1b452600d7ab"
dependencies = [
 "bstr",
 "faster-hex",
@@ -1242,9 +1228,9 @@ dependencies = [

[[package]]
name = "gix-path"
-
version = "0.8.4"
+
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "18609c8cbec8508ea97c64938c33cd305b75dfc04a78d0c3b78b8b3fd618a77c"
+
checksum = "6a1d370115171e3ae03c5c6d4f7d096f2981a40ddccb98dfd704c773530ba73b"
dependencies = [
 "bstr",
 "gix-trace",
@@ -1255,9 +1241,9 @@ dependencies = [

[[package]]
name = "gix-prompt"
-
version = "0.5.5"
+
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "2c22decaf4a063ccae2b2108820c8630c01bd6756656df3fe464b32b8958a5ea"
+
checksum = "5c9a913769516f5e9d937afac206fb76428e3d7238e538845842887fda584678"
dependencies = [
 "gix-command",
 "gix-config-value",
@@ -1268,20 +1254,20 @@ dependencies = [

[[package]]
name = "gix-protocol"
-
version = "0.35.0"
+
version = "0.41.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ed7069fac7eb23b043b4bd7890df1e244cb370c3fe8b2ff482203d36b4fd4099"
+
checksum = "391e3feabdfa5f90dad6673ce59e3291ac28901b2ff248d86c5a7fbde0391e0e"
dependencies = [
 "bstr",
 "btoi",
 "gix-credentials",
 "gix-date",
-
 "gix-features 0.31.1",
+
 "gix-features",
 "gix-hash",
 "gix-transport",
 "maybe-async",
-
 "nom",
 "thiserror",
+
 "winnow",
]

[[package]]
@@ -1297,9 +1283,9 @@ dependencies = [

[[package]]
name = "gix-revwalk"
-
version = "0.3.0"
+
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "028d50fcaf8326a8f79a359490d9ca9fb4e2b51ac9ac86503560d0bcc888d2eb"
+
checksum = "a16d8c892e4cd676d86f0265bf9d40cefd73d8d94f86b213b8b77d50e77efae0"
dependencies = [
 "gix-commitgraph",
 "gix-date",
@@ -1312,9 +1298,9 @@ dependencies = [

[[package]]
name = "gix-sec"
-
version = "0.8.4"
+
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "9615cbd6b456898aeb942cd75e5810c382fbfc48dbbff2fa23ebd2d33dcbe9c7"
+
checksum = "92b9542ac025a8c02ed5d17b3fc031a111a384e859d0be3532ec4d58c40a0f28"
dependencies = [
 "bitflags 2.4.0",
 "gix-path",
@@ -1324,9 +1310,9 @@ dependencies = [

[[package]]
name = "gix-tempfile"
-
version = "7.0.2"
+
version = "11.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "fa28d567848cec8fdd77d36ad4f5f78ecfaba7d78f647d4f63c8ae1a2cec7243"
+
checksum = "05cc2205cf10d99f70b96e04e16c55d4c7cf33efc151df1f793e29fd12a931f8"
dependencies = [
 "gix-fs",
 "libc",
@@ -1343,13 +1329,13 @@ checksum = "96b6d623a1152c3facb79067d6e2ecdae48130030cf27d6eb21109f13bd7b836"

[[package]]
name = "gix-transport"
-
version = "0.33.1"
+
version = "0.38.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "0929bb80a07c04033edd4585091c4db9ea458cb932e883bf22efb146ebfbdc89"
+
checksum = "2f209a93364e24f20319751bc11092272e2f3fe82bb72592b2822679cf5be752"
dependencies = [
 "bstr",
 "gix-command",
-
 "gix-features 0.31.1",
+
 "gix-features",
 "gix-packetline",
 "gix-quote",
 "gix-sec",
@@ -1359,9 +1345,9 @@ dependencies = [

[[package]]
name = "gix-traverse"
-
version = "0.29.0"
+
version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e3cdfd54598db4fae57d5ae6f52958422b2d13382d2745796bfe5c8015ffa86e"
+
checksum = "14d050ec7d4e1bb76abf0636cf4104fb915b70e54e3ced9a4427c999100ff38a"
dependencies = [
 "gix-commitgraph",
 "gix-date",
@@ -1375,12 +1361,12 @@ dependencies = [

[[package]]
name = "gix-url"
-
version = "0.20.1"
+
version = "0.25.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "beaede6dbc83f408b19adfd95bb52f1dbf01fb8862c3faf6c6243e2e67fcdfa1"
+
checksum = "b1b9ac8ed32ad45f9fc6c5f8c0be2ed911e544a5a19afd62d95d524ebaa95671"
dependencies = [
 "bstr",
-
 "gix-features 0.31.1",
+
 "gix-features",
 "gix-path",
 "home",
 "thiserror",
@@ -1389,9 +1375,9 @@ dependencies = [

[[package]]
name = "gix-validate"
-
version = "0.7.7"
+
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ba9b3737b2cef3dcd014633485f0034b0f1a931ee54aeb7d8f87f177f3c89040"
+
checksum = "e05cab2b03a45b866156e052aa38619f4ece4adcb2f79978bfc249bc3b21b8c5"
dependencies = [
 "bstr",
 "thiserror",
@@ -1475,12 +1461,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"

[[package]]
-
name = "hex"
-
version = "0.4.3"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
-

-
[[package]]
name = "hmac"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1596,16 +1576,6 @@ dependencies = [
]

[[package]]
-
name = "imara-diff"
-
version = "0.1.5"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e98c1d0ad70fc91b8b9654b1f33db55e59579d3b3de2bffdced0fdb810570cb8"
-
dependencies = [
-
 "ahash",
-
 "hashbrown 0.12.3",
-
]
-

-
[[package]]
name = "indexmap"
version = "1.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1863,12 +1833,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"

[[package]]
-
name = "minimal-lexical"
-
version = "0.2.1"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
-

-
[[package]]
name = "miniz_oxide"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1934,16 +1898,6 @@ dependencies = [
]

[[package]]
-
name = "nom"
-
version = "7.1.3"
-
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
-
dependencies = [
-
 "memchr",
-
 "minimal-lexical",
-
]
-

-
[[package]]
name = "nonempty"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2274,9 +2228,9 @@ dependencies = [

[[package]]
name = "prodash"
-
version = "25.0.2"
+
version = "26.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1d67eb4220992a4a052a4bb03cf776e493ecb1a3a36bab551804153d63486af7"
+
checksum = "794b5bf8e2d19b53dcdcec3e4bba628e20f5b6062503ba89281fa7037dd7bbcf"

[[package]]
name = "qcheck"
@@ -2463,7 +2417,7 @@ dependencies = [
 "bstr",
 "either",
 "gix-actor",
-
 "gix-features 0.31.1",
+
 "gix-features",
 "gix-hash",
 "gix-odb",
 "gix-pack",
@@ -3943,6 +3897,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"

[[package]]
+
name = "winnow"
+
version = "0.5.19"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b"
+
dependencies = [
+
 "memchr",
+
]
+

+
[[package]]
name = "xattr"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
modified radicle-fetch/Cargo.toml
@@ -8,13 +8,13 @@ edition = "2021"
[dependencies]
bstr = { version = "1.3" }
either = { version = "0" }
-
gix-actor = { version = "0.23.0" }
-
gix-features = { version = "0.31", features = ["progress"] }
-
gix-hash = { version = "0.11" }
-
gix-odb = { version = "0.49" }
-
gix-pack = { version = "0.39" }
-
gix-protocol = { version = "0.35", features = ["blocking-client"] }
-
gix-transport = { version = "0.33", features = ["blocking-client"] }
+
gix-actor = { version = "0.28.0" }
+
gix-features = { version = "0.36", features = ["progress"] }
+
gix-hash = { version = "0.13.1" }
+
gix-odb = { version = "0.54" }
+
gix-pack = { version = "0.44" }
+
gix-protocol = { version = "0.41.1", features = ["blocking-client"] }
+
gix-transport = { version = "0.38", features = ["blocking-client"] }
log = { version = "0.4.17", features = ["std"] }
nonempty = { version = "0.8.1" }
radicle-git-ext = { version = "0.6.0", features = ["bstr"] }
modified radicle-fetch/src/transport/fetch.rs
@@ -5,7 +5,7 @@ use std::{
    sync::{atomic::AtomicBool, Arc},
};

-
use gix_features::progress::Progress;
+
use gix_features::progress::NestedProgress;
use gix_pack as pack;
use gix_protocol::{
    fetch::{self, Delegate, DelegateBlocking},
@@ -45,11 +45,15 @@ pub struct PackWriter {
impl PackWriter {
    /// Write the packfile read from `pack` to the `objects/pack`
    /// directory.
-
    pub fn write_pack(
+
    pub fn write_pack<P>(
        &self,
-
        pack: impl BufRead,
-
        progress: impl Progress,
-
    ) -> Result<pack::bundle::write::Outcome, error::PackWriter> {
+
        mut pack: impl BufRead,
+
        mut progress: P,
+
    ) -> Result<pack::bundle::write::Outcome, error::PackWriter>
+
    where
+
        P: NestedProgress,
+
        P::SubProgress: 'static,
+
    {
        use gix_odb::FindExt as _;

        let options = pack::bundle::write::Options {
@@ -68,16 +72,16 @@ impl PackWriter {
        };
        let thickener = Arc::new(gix_odb::Store::at_opts(
            self.git_dir.join("objects"),
-
            [],
+
            &mut [].into_iter(),
            odb_opts,
        )?);
        let thickener = thickener.to_handle_arc();
        Ok(pack::Bundle::write_to_directory(
-
            pack,
-
            Some(self.git_dir.join("objects").join("pack")),
-
            progress,
+
            &mut pack,
+
            Some(&self.git_dir.join("objects").join("pack")),
+
            &mut progress,
            &self.interrupt,
-
            Some(Box::new(move |oid, buf| thickener.find(oid, buf).ok())),
+
            Some(Box::new(move |oid, buf| thickener.find(&oid, buf).ok())),
            options,
        )?)
    }
@@ -104,7 +108,7 @@ impl<'a> Delegate for &'a mut Fetch {
    fn receive_pack(
        &mut self,
        input: impl io::BufRead,
-
        progress: impl Progress,
+
        progress: impl NestedProgress + 'static,
        _refs: &[handshake::Ref],
        previous_response: &fetch::Response,
    ) -> io::Result<()> {
@@ -184,7 +188,7 @@ pub(crate) fn run<P, R, W>(
    progress: &mut P,
) -> Result<FetchOut, Error>
where
-
    P: Progress,
+
    P: NestedProgress,
    P::SubProgress: 'static,
    R: io::Read,
    W: io::Write,
@@ -241,11 +245,18 @@ where
        let response = fetch::Response::from_line_reader(*protocol, &mut reader, true)?;
        previous_response = if response.has_pack() {
            progress.step();
-
            progress.set_name("receiving pack");
            if !sideband_all {
                setup_remote_progress(progress, &mut reader);
            }
-
            (&mut delegate).receive_pack(reader, progress, &[], &response)?;
+
            // TODO: remove delegate in favor of functional style to fix progress-hack,
+
            //       needed as it needs `'static`. As the top-level seems to pass `Discard`,
+
            //       there should be no repercussions right now.
+
            (&mut delegate).receive_pack(
+
                reader,
+
                progress.add_child("receiving pack"),
+
                &[],
+
                &response,
+
            )?;
            break 'negotiation;
        } else {
            match action {
@@ -295,7 +306,7 @@ fn setup_remote_progress<P>(
    progress: &mut P,
    reader: &mut Box<dyn gix_transport::client::ExtendedBufRead + Unpin + '_>,
) where
-
    P: Progress,
+
    P: NestedProgress,
    P::SubProgress: 'static,
{
    reader.set_progress_handler(Some(Box::new({
modified radicle-fetch/src/transport/ls_refs.rs
@@ -153,7 +153,7 @@ where
            features.push(("agent", Some(Cow::Owned(agent))));

            progress.step();
-
            progress.set_name("list refs");
+
            progress.set_name("list refs".into());
            let mut remote_refs = conn.invoke(
                ls.as_str(),
                features.clone().into_iter(),