From: Junio C Hamano Date: Sun, 12 Apr 2009 23:46:41 +0000 (-0700) Subject: Merge branch 'fg/remote-prune' X-Git-Tag: v1.6.3-rc0~5 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/c276857ee250ca1c3a36cba8358f50ba01e97917?ds=inline;hp=-c Merge branch 'fg/remote-prune' * fg/remote-prune: add tests for remote groups git remote update: Fallback to remote if group does not exist remote: New function remote_is_configured() git remote update: Report error for non-existing groups git remote update: New option --prune builtin-remote.c: Split out prune_remote as a separate function. --- c276857ee250ca1c3a36cba8358f50ba01e97917 diff --combined remote.c index d12140e0fe,b36fd70978..a06761ace8 --- a/remote.c +++ b/remote.c @@@ -667,6 -667,17 +667,17 @@@ struct remote *remote_get(const char *n return ret; } + int remote_is_configured(const char *name) + { + int i; + read_config(); + + for (i = 0; i < remotes_nr; i++) + if (!strcmp(name, remotes[i]->name)) + return 1; + return 0; + } + int for_each_remote(each_remote_fn fn, void *priv) { int i, result = 0; @@@ -1170,9 -1181,8 +1181,9 @@@ struct branch *branch_get(const char *n for (i = 0; i < ret->merge_nr; i++) { ret->merge[i] = xcalloc(1, sizeof(**ret->merge)); ret->merge[i]->src = xstrdup(ret->merge_name[i]); - remote_find_tracking(ret->remote, - ret->merge[i]); + if (remote_find_tracking(ret->remote, ret->merge[i]) + && !strcmp(ret->remote_name, ".")) + ret->merge[i]->dst = xstrdup(ret->merge_name[i]); } } } @@@ -1452,8 -1462,6 +1463,8 @@@ int format_tracking_info(struct branch base = branch->merge[0]->dst; if (!prefixcmp(base, "refs/remotes/")) { base += strlen("refs/remotes/"); + } else if (!prefixcmp(base, "refs/heads/")) { + base += strlen("refs/heads/"); } if (!num_theirs) strbuf_addf(sb, "Your branch is ahead of '%s' "