From: Shawn O. Pearce Date: Mon, 29 Sep 2008 16:39:53 +0000 (-0700) Subject: Merge branch 'mg/maint-remote-fix' into maint X-Git-Tag: v1.6.0.3~53 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/e9a06f1eeb6ddd952ece71eaa87e613d715eade6?ds=inline;hp=-c Merge branch 'mg/maint-remote-fix' into maint * mg/maint-remote-fix: make "git remote" report multiple URLs --- e9a06f1eeb6ddd952ece71eaa87e613d715eade6 diff --combined builtin-remote.c index 4cb763f989,1e2edc2050..90a4e35828 --- a/builtin-remote.c +++ b/builtin-remote.c @@@ -407,15 -407,14 +407,15 @@@ static int rm(int argc, const char **ar return i; } -static void show_list(const char *title, struct string_list *list) +static void show_list(const char *title, struct string_list *list, + const char *extra_arg) { int i; if (!list->nr) return; - printf(title, list->nr > 1 ? "es" : ""); + printf(title, list->nr > 1 ? "es" : "", extra_arg); printf("\n "); for (i = 0; i < list->nr; i++) printf("%s%s", i ? " " : "", list->items[i].string); @@@ -478,6 -477,7 +478,6 @@@ static int show(int argc, const char ** memset(&states, 0, sizeof(states)); for (; argc; argc--, argv++) { - struct strbuf buf; int i; get_remote_ref_states(*argv, &states, !no_query); @@@ -503,16 -503,18 +503,16 @@@ } if (!no_query) { - strbuf_init(&buf, 0); - strbuf_addf(&buf, " New remote branch%%s (next fetch " - "will store in remotes/%s)", states.remote->name); - show_list(buf.buf, &states.new); - strbuf_release(&buf); + show_list(" New remote branch%s (next fetch " + "will store in remotes/%s)", + &states.new, states.remote->name); show_list(" Stale tracking branch%s (use 'git remote " - "prune')", &states.stale); + "prune')", &states.stale, ""); } if (no_query) for_each_ref(append_ref_to_tracked_list, &states); - show_list(" Tracked remote branch%s", &states.tracked); + show_list(" Tracked remote branch%s", &states.tracked, ""); if (states.remote->push_refspec_nr) { printf(" Local branch%s pushed with 'git push'\n ", @@@ -650,10 -652,13 +650,13 @@@ static int get_one_entry(struct remote { struct string_list *list = priv; - string_list_append(remote->name, list)->util = remote->url_nr ? - (void *)remote->url[0] : NULL; - if (remote->url_nr > 1) - warning("Remote %s has more than one URL", remote->name); + if (remote->url_nr > 0) { + int i; + + for (i = 0; i < remote->url_nr; i++) + string_list_append(remote->name, list)->util = (void *)remote->url[i]; + } else + string_list_append(remote->name, list)->util = NULL; return 0; } @@@ -669,10 -674,14 +672,14 @@@ static int show_all(void sort_string_list(&list); for (i = 0; i < list.nr; i++) { struct string_list_item *item = list.items + i; - printf("%s%s%s\n", item->string, - verbose ? "\t" : "", - verbose && item->util ? - (const char *)item->util : ""); + if (verbose) + printf("%s\t%s\n", item->string, + item->util ? (const char *)item->util : ""); + else { + if (i && !strcmp((item - 1)->string, item->string)) + continue; + printf("%s\n", item->string); + } } } return result;