git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Fix "git remote update" with remotes.defalt set
@ 2009-12-31  9:43 Björn Gustavsson
  0 siblings, 0 replies; only message in thread
From: Björn Gustavsson @ 2009-12-31  9:43 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano

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>
---
 builtin-remote.c  |   10 ++++------
 t/t5505-remote.sh |   14 ++++++++++++++
 2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/builtin-remote.c b/builtin-remote.c
index a501939..c4945b8 100644
--- a/builtin-remote.c
+++ b/builtin-remote.c
@@ -1238,13 +1238,11 @@ static int update(int argc, const char **argv)
 		fetch_argv[fetch_argc++] = "--prune";
 	if (verbose)
 		fetch_argv[fetch_argc++] = "-v";
-	if (argc < 2) {
+	fetch_argv[fetch_argc++] = "--multiple";
+	if (argc < 2)
 		fetch_argv[fetch_argc++] = "default";
-	} else {
-		fetch_argv[fetch_argc++] = "--multiple";
-		for (i = 1; i < argc; i++)
-			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) {
 		git_config(get_remote_default, &default_defined);
diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh
index fd166d9..936fe0a 100755
--- a/t/t5505-remote.sh
+++ b/t/t5505-remote.sh
@@ -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' '
 
 	git clone one three &&
-- 
1.6.6.69.gc18d

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2009-12-31  9:43 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-31  9:43 [PATCH] Fix "git remote update" with remotes.defalt set Björn Gustavsson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).