git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 3/3] git remote update: Fallback to remote if group does not exist

From
Finn Arne Gangstad <finnag@pvv.org>
Date
Apr 6, 2009, 13:41 UTC
Message-ID
<1239025262-16960-4-git-send-email-finnag@pvv.org>
In-Reply-To
<1239025262-16960-1-git-send-email-finnag@pvv.org>

Previously, git remote update <remote> would fail unless there was a remote group configured with the same name as the remote. git remote update will now fall back to using the remote if no matching group can be found.

This enables "git remote update -p <remote>..." to fetch and prune one or more remotes, for example.

Signed-off-by: Finn Arne Gangstad <finnag@pvv.org>
---
 Documentation/git-remote.txt |    2 +-
 builtin-remote.c             |   10 ++++++++--
 2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/Documentation/git-remote.txt b/Documentation/git-remote.txt
index 0b6e67d..9e2b4ea 100644
--- a/Documentation/git-remote.txt
+++ b/Documentation/git-remote.txt
@@ -16,7 +16,7 @@ SYNOPSIS
 'git remote set-head' <name> [-a | -d | <branch>]
 'git remote show' [-n] <name>
 'git remote prune' [-n | --dry-run] <name>
-'git remote update' [-p | --prune] [group]
+'git remote update' [-p | --prune] [group | remote]...
 
 DESCRIPTION
 -----------
diff --git a/builtin-remote.c b/builtin-remote.c
index 51df99b..ca7c639 100644
--- a/builtin-remote.c
+++ b/builtin-remote.c
@@ -1232,8 +1232,14 @@ static int update(int argc, const char **argv)
 		int groups_found = 0;
 		remote_group.name = argv[i];
 		result = git_config(get_remote_group, &groups_found);
-		if (!groups_found && (i != 1 || strcmp(argv[1], "default")))
-			die("No such remote group: '%s'", argv[i]);
+		if (!groups_found && (i != 1 || strcmp(argv[1], "default"))) {
+			struct remote *remote;
+			if (!remote_is_configured(argv[i]))
+				die("No such remote or remote group: %s",
+				    argv[i]);
+			remote = remote_get(argv[i]);
+			string_list_append(remote->name, remote_group.list);
+		}
 	}
 
 	if (!result && !list.nr  && argc == 2 && !strcmp(argv[1], "default"))
-- 
1.6.2.1.471.gdfdaa
Previous: Finn Arne GangstadNext: Jeff King
Message 9 of 10 in “git remote update: Check args and fallback to remotes”
  1. 0/3 git remote update: Check args and fallback to remotesFinn Arne Gangstad, Apr 6, 2009
  2. 1/3 git remote update: Report error for non-existing groupsFinn Arne Gangstad, Apr 6, 2009
  3. Junio C HamanoApr 8, 2009
  4. Finn Arne GangstadApr 8, 2009
  5. Junio C HamanoApr 8, 2009
  6. Jeff KingApr 8, 2009
  7. Junio C HamanoApr 8, 2009
  8. 2/3 remote: New function remote_is_configured()Finn Arne Gangstad, Apr 6, 2009
  9. 3/3 git remote update: Fallback to remote if group does not existFinn Arne Gangstad, Apr 6, 2009
  10. Jeff KingApr 6, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.