Skip to content

Commit

Permalink
git remote update: Report error for non-existing groups
Browse files Browse the repository at this point in the history
Previosly, git remote update <non-existing-group> would just silently fail
and do nothing. Now it will report an error saying that the group does
not exist.

Signed-off-by: Finn Arne Gangstad <finnag@pvv.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Finn Arne Gangstad authored and Junio C Hamano committed Apr 8, 2009
1 parent efa5480 commit bed5d42
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions builtin-remote.c
Original file line number Diff line number Diff line change
Expand Up @@ -1188,16 +1188,18 @@ struct remote_group {
struct string_list *list;
} remote_group;

static int get_remote_group(const char *key, const char *value, void *cb)
static int get_remote_group(const char *key, const char *value, void *num_hits)
{
if (!prefixcmp(key, "remotes.") &&
!strcmp(key + 8, remote_group.name)) {
/* split list by white space */
int space = strcspn(value, " \t\n");
while (*value) {
if (space > 1)
if (space > 1) {
string_list_append(xstrndup(value, space),
remote_group.list);
++*((int *)num_hits);
}
value += space + (value[space] != '\0');
space = strcspn(value, " \t\n");
}
Expand Down Expand Up @@ -1227,8 +1229,11 @@ static int update(int argc, const char **argv)

remote_group.list = &list;
for (i = 1; i < argc; i++) {
int groups_found = 0;
remote_group.name = argv[i];
result = git_config(get_remote_group, NULL);
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 (!result && !list.nr && argc == 2 && !strcmp(argv[1], "default"))
Expand Down

0 comments on commit bed5d42

Please sign in to comment.