261aa2c70a
## Summary We currently rely on libgit2 for most git-related functionality. However, libgit2 has long-standing performance issues, as well as lags significantly behind git in terms of new features. For these reasons we now use the git CLI by default for fetching repositories (https://github.com/astral-sh/uv/pull/1781). This PR completely drops libgit2 in favor of the git CLI for all git-related functionality, which should allow us to use features such as partial clones and sparse checkouts in the future for performance. There is also a lot of technical debt in the current git code as it's mostly taken from Cargo. Switching to the git CLI *vastly* simplifies the `uv-git` codebase. Eventually we might want to look into switching to [`gitoxide`](https://github.com/Byron/gitoxide), but it's currently too immature for our use case.
26 lines
621 B
TOML
26 lines
621 B
TOML
[package]
|
|
name = "uv-git"
|
|
version = "0.0.1"
|
|
edition = { workspace = true }
|
|
rust-version = { workspace = true }
|
|
homepage = { workspace = true }
|
|
documentation = { workspace = true }
|
|
repository = { workspace = true }
|
|
authors = { workspace = true }
|
|
license = { workspace = true }
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
cache-key = { workspace = true }
|
|
uv-fs = { workspace = true }
|
|
|
|
anyhow = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
cargo-util = { workspace = true }
|
|
reqwest = { workspace = true, features = ["blocking"] }
|
|
tokio = { workspace = true }
|
|
tracing = { workspace = true }
|
|
url = { workspace = true }
|