Hi, running cargo upgrade gets stuck when using the sparse registry protocol. (It may be cloning the entire registry, but I'd rather not wait to find out)
The issue is caused here: https://github.com/killercup/cargo-edit/blob/master/src/fetch.rs#L322
cargo-edit uses 0.x of crates-index, which only supports the git registry protocol.
To fix this, all that's needed is to upgrade crates-index to the latest version (2.x) and then detect the registry protocol and use the corresponding Index struct in crates-index.
Some of crates-index's features will need to be enabled: https://docs.rs/crates-index/latest/crates_index/index.html#feature-flags
To determine the struct to use, we need to get the value of this config option: https://doc.rust-lang.org/cargo/reference/config.html#registriescrates-ioprotocol
If the protocol is sparse, this struct should be used: https://docs.rs/crates-index/latest/crates_index/struct.SparseIndex.html
If the protocol is git, this struct should be used: https://docs.rs/crates-index/latest/crates_index/struct.GitIndex.html
Hi, running
cargo upgradegets stuck when using the sparse registry protocol. (It may be cloning the entire registry, but I'd rather not wait to find out)The issue is caused here: https://github.com/killercup/cargo-edit/blob/master/src/fetch.rs#L322
cargo-edit uses 0.x of crates-index, which only supports the git registry protocol.
To fix this, all that's needed is to upgrade crates-index to the latest version (2.x) and then detect the registry protocol and use the corresponding
Indexstruct in crates-index.Some of crates-index's features will need to be enabled: https://docs.rs/crates-index/latest/crates_index/index.html#feature-flags
To determine the struct to use, we need to get the value of this config option: https://doc.rust-lang.org/cargo/reference/config.html#registriescrates-ioprotocol
If the protocol is sparse, this struct should be used: https://docs.rs/crates-index/latest/crates_index/struct.SparseIndex.html
If the protocol is git, this struct should be used: https://docs.rs/crates-index/latest/crates_index/struct.GitIndex.html