-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Shell out to system git on fetch #5903
Comments
alexcrichton
added a commit
to alexcrichton/cargo
that referenced
this issue
Aug 20, 2018
Currently Cargo always uses `libgit2` to perform all fetches of git repositories, but sometimes this is not sufficient. The `libgit2` library doesn't support all authentication schemes that `git` does and it isn't always quite at feature parity with `git` itself, especially in terms of network configuration. This commit adds a configuration option to Cargo for fetching git repositories with the `git` CLI tool rather than the internal `libgit2`. While this exposes us to changes over time in the `git` CLI it's hopefully a very targeted use case that doesn't change much. The internal `libgit2` library should be sufficient for all other forms of git repository management. (and using `git` for only fetches shouldn't slow us down much) The new configuration option in `.cargo/config` is: [net] git-fetch-with-cli = true which can also be specified with `CARGO_NET_GIT_FETCH_WITH_CLI=true` via an environment variable. Closes rust-lang#5903
bors
added a commit
that referenced
this issue
Aug 20, 2018
Add a configuration option to fetch with git-the-CLI Currently Cargo always uses `libgit2` to perform all fetches of git repositories, but sometimes this is not sufficient. The `libgit2` library doesn't support all authentication schemes that `git` does and it isn't always quite at feature parity with `git` itself, especially in terms of network configuration. This commit adds a configuration option to Cargo for fetching git repositories with the `git` CLI tool rather than the internal `libgit2`. While this exposes us to changes over time in the `git` CLI it's hopefully a very targeted use case that doesn't change much. The internal `libgit2` library should be sufficient for all other forms of git repository management. (and using `git` for only fetches shouldn't slow us down much) The new configuration option in `.cargo/config` is: [net] git-fetch-with-cli = true which can also be specified with `CARGO_NET_GIT_FETCH_WITH_CLI=true` via an environment variable. Closes #5903
alexcrichton
added a commit
to alexcrichton/cargo
that referenced
this issue
Aug 21, 2018
Currently Cargo always uses `libgit2` to perform all fetches of git repositories, but sometimes this is not sufficient. The `libgit2` library doesn't support all authentication schemes that `git` does and it isn't always quite at feature parity with `git` itself, especially in terms of network configuration. This commit adds a configuration option to Cargo for fetching git repositories with the `git` CLI tool rather than the internal `libgit2`. While this exposes us to changes over time in the `git` CLI it's hopefully a very targeted use case that doesn't change much. The internal `libgit2` library should be sufficient for all other forms of git repository management. (and using `git` for only fetches shouldn't slow us down much) The new configuration option in `.cargo/config` is: [net] git-fetch-with-cli = true which can also be specified with `CARGO_NET_GIT_FETCH_WITH_CLI=true` via an environment variable. Closes rust-lang#5903
bors
added a commit
that referenced
this issue
Aug 21, 2018
Add a configuration option to fetch with git-the-CLI Currently Cargo always uses `libgit2` to perform all fetches of git repositories, but sometimes this is not sufficient. The `libgit2` library doesn't support all authentication schemes that `git` does and it isn't always quite at feature parity with `git` itself, especially in terms of network configuration. This commit adds a configuration option to Cargo for fetching git repositories with the `git` CLI tool rather than the internal `libgit2`. While this exposes us to changes over time in the `git` CLI it's hopefully a very targeted use case that doesn't change much. The internal `libgit2` library should be sufficient for all other forms of git repository management. (and using `git` for only fetches shouldn't slow us down much) The new configuration option in `.cargo/config` is: [net] git-fetch-with-cli = true which can also be specified with `CARGO_NET_GIT_FETCH_WITH_CLI=true` via an environment variable. Closes #5903
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
libgit2 does not support our usecase for fetching crates. In cases where cargo can understand the local git implementation, it should shell out and try that option first.
cc/ @alexcrichton
The text was updated successfully, but these errors were encountered: