fetch: pass --no-write-fetch-head to subprocesses
It seems a user would expect this option would work regardless of whether it's fetching from a single remote, many remotes, or recursing into submodules. Signed-off-by: Eric Wong <e@80x24.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
725f57037d
commit
15184ae9da
@ -1880,6 +1880,8 @@ static void add_options_to_argv(struct strvec *argv)
|
||||
strvec_push(argv, "--ipv4");
|
||||
else if (family == TRANSPORT_FAMILY_IPV6)
|
||||
strvec_push(argv, "--ipv6");
|
||||
if (!write_fetch_head)
|
||||
strvec_push(argv, "--no-write-fetch-head");
|
||||
}
|
||||
|
||||
/* Fetch multiple remotes in parallel */
|
||||
|
@ -58,6 +58,13 @@ test_expect_success 'git fetch --all' '
|
||||
test_cmp expect output)
|
||||
'
|
||||
|
||||
test_expect_success 'git fetch --all --no-write-fetch-head' '
|
||||
(cd test &&
|
||||
rm -f .git/FETCH_HEAD &&
|
||||
git fetch --all --no-write-fetch-head &&
|
||||
test_path_is_missing .git/FETCH_HEAD)
|
||||
'
|
||||
|
||||
test_expect_success 'git fetch --all should continue if a remote has errors' '
|
||||
(git clone one test2 &&
|
||||
cd test2 &&
|
||||
|
@ -167,6 +167,19 @@ test_expect_success "fetch --recurse-submodules recurses into submodules" '
|
||||
verify_fetch_result actual.err
|
||||
'
|
||||
|
||||
test_expect_success "fetch --recurse-submodules honors --no-write-fetch-head" '
|
||||
(
|
||||
cd downstream &&
|
||||
git submodule foreach --recursive \
|
||||
sh -c "cd \"\$(git rev-parse --git-dir)\" && rm -f FETCH_HEAD" &&
|
||||
|
||||
git fetch --recurse-submodules --no-write-fetch-head &&
|
||||
|
||||
git submodule foreach --recursive \
|
||||
sh -c "cd \"\$(git rev-parse --git-dir)\" && ! test -f FETCH_HEAD"
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success "submodule.recurse option triggers recursive fetch" '
|
||||
add_submodule_commits &&
|
||||
(
|
||||
|
Loading…
Reference in New Issue
Block a user