Fix "git remote update" with remotes.defalt set
Starting from commit 8db35596
, "git remote update" (with no
group name given) will fail with the following message if
remotes.default has been set in the config file:
fatal: 'default' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
The problem is that the --multiple option is not passed to
"git fetch" if no remote or group name is given on the command
line. Fix the problem by always passing the --multiple
option to "git fetch" (which actually simplifies the code).
Reported-by: YONETANI Tomokazu
Signed-off-by: Björn Gustavsson <bgustavsson@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
8db355964d
commit
4f2e842dd0
@ -1206,13 +1206,11 @@ static int update(int argc, const char **argv)
|
|||||||
fetch_argv[fetch_argc++] = "--prune";
|
fetch_argv[fetch_argc++] = "--prune";
|
||||||
if (verbose)
|
if (verbose)
|
||||||
fetch_argv[fetch_argc++] = "-v";
|
fetch_argv[fetch_argc++] = "-v";
|
||||||
if (argc < 2) {
|
fetch_argv[fetch_argc++] = "--multiple";
|
||||||
|
if (argc < 2)
|
||||||
fetch_argv[fetch_argc++] = "default";
|
fetch_argv[fetch_argc++] = "default";
|
||||||
} else {
|
for (i = 1; i < argc; i++)
|
||||||
fetch_argv[fetch_argc++] = "--multiple";
|
fetch_argv[fetch_argc++] = argv[i];
|
||||||
for (i = 1; i < argc; i++)
|
|
||||||
fetch_argv[fetch_argc++] = argv[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (strcmp(fetch_argv[fetch_argc-1], "default") == 0) {
|
if (strcmp(fetch_argv[fetch_argc-1], "default") == 0) {
|
||||||
git_config(get_remote_default, &default_defined);
|
git_config(get_remote_default, &default_defined);
|
||||||
|
@ -419,6 +419,20 @@ test_expect_success 'update default (overridden, with funny whitespace)' '
|
|||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'update (with remotes.default defined)' '
|
||||||
|
|
||||||
|
(cd one &&
|
||||||
|
for b in $(git branch -r)
|
||||||
|
do
|
||||||
|
git branch -r -d $b || break
|
||||||
|
done &&
|
||||||
|
git config remotes.default "drosophila" &&
|
||||||
|
git remote update &&
|
||||||
|
git branch -r > output &&
|
||||||
|
test_cmp expect output)
|
||||||
|
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success '"remote show" does not show symbolic refs' '
|
test_expect_success '"remote show" does not show symbolic refs' '
|
||||||
|
|
||||||
git clone one three &&
|
git clone one three &&
|
||||||
|
Reference in New Issue
Block a user