diff --git a/doc/book/src/reference/config.md b/doc/book/src/reference/config.md index 3be7f99c738..f47ed268f93 100644 --- a/doc/book/src/reference/config.md +++ b/doc/book/src/reference/config.md @@ -944,7 +944,7 @@ Number of times to retry possibly spurious network errors. #### `net.git-fetch-with-cli` * Type: boolean -* Default: false +* Default: true if `git` is present, `false` otherwise * Environment: `CARGO_NET_GIT_FETCH_WITH_CLI` If this is `true`, then Cargo will use the `git` executable to fetch registry diff --git a/src/sources/git/utils.rs b/src/sources/git/utils.rs index 2197fef36ea..e4b5dfdec5a 100644 --- a/src/sources/git/utils.rs +++ b/src/sources/git/utils.rs @@ -1102,7 +1102,11 @@ pub fn fetch( } debug!("doing a fetch for {remote_url}"); - let result = if let Some(true) = gctx.net_config()?.git_fetch_with_cli { + let result = if gctx + .net_config()? + .git_fetch_with_cli + .unwrap_or_else(|| git_version().is_some()) + { fetch_with_cli(repo, remote_url, &refspecs, tags, shallow, gctx) } else if gctx.cli_unstable().gitoxide.map_or(false, |git| git.fetch) { fetch_with_gitoxide(repo, remote_url, refspecs, tags, shallow, gctx) diff --git a/tests/testsuite/bad_config.rs b/tests/testsuite/bad_config.rs index 069b7562088..fc358317d0c 100644 --- a/tests/testsuite/bad_config.rs +++ b/tests/testsuite/bad_config.rs @@ -440,6 +440,9 @@ fn bad_git_dependency() { .with_status(101) .with_stderr_data(str![[r#" [UPDATING] git repository `file:///` +[RUNNING] `git [..] fetch [..]` +fatal: [..] does not appear to be a git repository +... [ERROR] failed to get `foo` as a dependency of package `foo v0.0.0 ([ROOT]/foo)` Caused by: @@ -452,7 +455,10 @@ Caused by: failed to clone into: [ROOT]/home/.cargo/git/db/_empty-[HASH] Caused by: - 'file:///' is not a valid local file URI; class=Config (7) + `git fetch` failed for file:/// + + [HELP] re-try with `net.git-fetch-with-cli = false` to see if it resolves the problem + https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli "#]]) .run(); diff --git a/tests/testsuite/build.rs b/tests/testsuite/build.rs index 7ac4e9dd93a..661f260c008 100644 --- a/tests/testsuite/build.rs +++ b/tests/testsuite/build.rs @@ -4657,6 +4657,9 @@ fn rustc_wrapper_relative() { .env("RUSTC_WRAPPER", &relative_path) .with_stderr_data(str![[r#" [UPDATING] `dummy-registry` index +[RUNNING] `git [..] fetch [..]` +From [ROOTURL]/registry + * [new ref] HEAD -> origin/HEAD [LOCKING] 1 package to highest compatible version [DOWNLOADING] crates ... [DOWNLOADED] bar v1.0.0 (registry `dummy-registry`) diff --git a/tests/testsuite/build_script.rs b/tests/testsuite/build_script.rs index d0028b2d4a0..9b474784285 100644 --- a/tests/testsuite/build_script.rs +++ b/tests/testsuite/build_script.rs @@ -5223,6 +5223,9 @@ fn warnings_hidden_for_upstream() { p.cargo("check -v") .with_stderr_data(str![[r#" [UPDATING] `dummy-registry` index +[RUNNING] `git [..] fetch [..]` +From [ROOTURL]/registry + * [new ref] HEAD -> origin/HEAD [LOCKING] 1 package to highest compatible version [DOWNLOADING] crates ... [DOWNLOADED] bar v0.1.0 (registry `dummy-registry`) @@ -5290,6 +5293,9 @@ fn warnings_printed_on_vv() { p.cargo("check -vv") .with_stderr_data(str![[r#" [UPDATING] `dummy-registry` index +[RUNNING] `git [..] fetch [..]` +From [ROOTURL]/registry + * [new ref] HEAD -> origin/HEAD [LOCKING] 1 package to highest compatible version [DOWNLOADING] crates ... [DOWNLOADED] bar v0.1.0 (registry `dummy-registry`) diff --git a/tests/testsuite/build_script_extra_link_arg.rs b/tests/testsuite/build_script_extra_link_arg.rs index 2896b7c4871..04997e56a5d 100644 --- a/tests/testsuite/build_script_extra_link_arg.rs +++ b/tests/testsuite/build_script_extra_link_arg.rs @@ -277,6 +277,9 @@ fn link_arg_transitive_not_allowed() { p.cargo("build -v") .with_stderr_data(str![[r#" [UPDATING] `dummy-registry` index +[RUNNING] `git [..] fetch [..]` +From [ROOTURL]/registry + * [new ref] HEAD -> origin/HEAD [LOCKING] 1 package to highest compatible version [DOWNLOADING] crates ... [DOWNLOADED] bar v1.0.0 (registry `dummy-registry`) diff --git a/tests/testsuite/cache_messages.rs b/tests/testsuite/cache_messages.rs index 963f9d0fd24..c2eb832622d 100644 --- a/tests/testsuite/cache_messages.rs +++ b/tests/testsuite/cache_messages.rs @@ -241,6 +241,9 @@ fn very_verbose() { p.cargo("check -vv") .with_stderr_data(str![[r#" [UPDATING] `dummy-registry` index +[RUNNING] `git [..] fetch [..]` +From [ROOTURL]/registry + * [new ref] HEAD -> origin/HEAD [LOCKING] 1 package to highest compatible version [DOWNLOADING] crates ... [DOWNLOADED] bar v1.0.0 (registry `dummy-registry`) diff --git a/tests/testsuite/cargo_info/features_activated_over_limit_verbose/stderr.term.svg b/tests/testsuite/cargo_info/features_activated_over_limit_verbose/stderr.term.svg index 4d08ec2714e..834bb33fbec 100644 --- a/tests/testsuite/cargo_info/features_activated_over_limit_verbose/stderr.term.svg +++ b/tests/testsuite/cargo_info/features_activated_over_limit_verbose/stderr.term.svg @@ -1,7 +1,7 @@ - +