git-remote: list branches in vertical lists

Previously, branches were listed on a single line in each section. But
if there are many branches, then horizontal, line-wrapped lists are very
inconvenient to scan for a human. This makes the lists vertical, i.e one
branch per line is printed.

Since "git remote" is porcelain, we can easily make this
backwards-incompatible change.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Sixt 2008-10-22 09:39:47 +02:00 committed by Junio C Hamano
parent f55527f802
commit 20244ea2d0
3 changed files with 17 additions and 12 deletions

View File

@ -4356,7 +4356,9 @@ $ git remote show example # get details
* remote example * remote example
URL: git://example.com/project.git URL: git://example.com/project.git
Tracked remote branches Tracked remote branches
master next ... master
next
...
$ git fetch example # update branches from example $ git fetch example # update branches from example
$ git branch -r # list all remote branches $ git branch -r # list all remote branches
----------------------------------------------- -----------------------------------------------

View File

@ -412,10 +412,9 @@ static void show_list(const char *title, struct string_list *list,
return; return;
printf(title, list->nr > 1 ? "es" : "", extra_arg); 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);
printf("\n"); printf("\n");
for (i = 0; i < list->nr; i++)
printf(" %s\n", list->items[i].string);
} }
static int get_remote_ref_states(const char *name, static int get_remote_ref_states(const char *name,
@ -511,17 +510,17 @@ static int show(int argc, const char **argv)
show_list(" Tracked remote branch%s", &states.tracked, ""); show_list(" Tracked remote branch%s", &states.tracked, "");
if (states.remote->push_refspec_nr) { if (states.remote->push_refspec_nr) {
printf(" Local branch%s pushed with 'git push'\n ", printf(" Local branch%s pushed with 'git push'\n",
states.remote->push_refspec_nr > 1 ? states.remote->push_refspec_nr > 1 ?
"es" : ""); "es" : "");
for (i = 0; i < states.remote->push_refspec_nr; i++) { for (i = 0; i < states.remote->push_refspec_nr; i++) {
struct refspec *spec = states.remote->push + i; struct refspec *spec = states.remote->push + i;
printf(" %s%s%s%s", spec->force ? "+" : "", printf(" %s%s%s%s\n",
spec->force ? "+" : "",
abbrev_branch(spec->src), abbrev_branch(spec->src),
spec->dst ? ":" : "", spec->dst ? ":" : "",
spec->dst ? abbrev_branch(spec->dst) : ""); spec->dst ? abbrev_branch(spec->dst) : "");
} }
printf("\n");
} }
/* NEEDSWORK: free remote */ /* NEEDSWORK: free remote */

View File

@ -28,7 +28,7 @@ tokens_match () {
} }
check_remote_track () { check_remote_track () {
actual=$(git remote show "$1" | sed -n -e '$p') && actual=$(git remote show "$1" | sed -e '1,/Tracked/d') &&
shift && shift &&
tokens_match "$*" "$actual" tokens_match "$*" "$actual"
} }
@ -115,9 +115,11 @@ cat > test/expect << EOF
New remote branch (next fetch will store in remotes/origin) New remote branch (next fetch will store in remotes/origin)
master master
Tracked remote branches Tracked remote branches
side master side
master
Local branches pushed with 'git push' Local branches pushed with 'git push'
master:upstream +refs/tags/lastbackup master:upstream
+refs/tags/lastbackup
EOF EOF
test_expect_success 'show' ' test_expect_success 'show' '
@ -144,9 +146,11 @@ cat > test/expect << EOF
Remote branch merged with 'git pull' while on branch master Remote branch merged with 'git pull' while on branch master
master master
Tracked remote branches Tracked remote branches
master side master
side
Local branches pushed with 'git push' Local branches pushed with 'git push'
master:upstream +refs/tags/lastbackup master:upstream
+refs/tags/lastbackup
EOF EOF
test_expect_success 'show -n' ' test_expect_success 'show -n' '