Merge branch 'fg/remote-prune'
authorJunio C Hamano <gitster@pobox.com>
Sun, 12 Apr 2009 23:46:41 +0000 (16:46 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sun, 12 Apr 2009 23:46:41 +0000 (16:46 -0700)
* 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.

1  2 
remote.c
diff --combined remote.c
index d12140e0fef5331188295da1f3190873ddc5bed8,b36fd70978fdb1683ae3b2401822ef0130cd6ead..a06761ace8a2566746a5ebeedf6b3075f625c47b
+++ 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' "