Subject: [PATCH] branch: only print upstream relationship with -v -v

From: Nguyễn Thái Ngọc Duy <[email-masked]>
Date: Wed, 17 Mar 2010 22:05:44 +0700

"git branch -v" is unusable for me because it's too slow. After this
patch:

pclouds@do ~/w/git $ time ./git branch -v > /dev/null
real    0m0.016s
user    0m0.011s
sys     0m0.004s

pclouds@do ~/w/git $ time ./git branch -v -v > /dev/null
real    0m8.960s
user    0m8.854s
sys     0m0.029s

This is on a repository with ~30 branches, some are hundreds of
patches behind upstream.

Signed-off-by: Nguyễn Thái Ngọc Duy <[email-masked]>
---
 Maybe it's just me, with my old branches...

 Documentation/git-branch.txt |    6 +++---
 builtin/branch.c             |    4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt
index 903a690..4380846 100644
--- a/Documentation/git-branch.txt
+++ b/Documentation/git-branch.txt
@@ -101,9 +101,9 @@ OPTIONS
 
 -v::
 --verbose::
-	Show sha1 and commit subject line for each head, along with
-	relationship to upstream branch (if any). If given twice, print
-	the name of the upstream branch, as well.
+	Show sha1 and commit subject line for each head. If given twice,
+	also the relationship to upstream branch (if any). If given
+	three times, print the name of the upstream branch, as well.
 
 --abbrev=<length>::
 	Alter the sha1's minimum display length in the output listing.
diff --git a/builtin/branch.c b/builtin/branch.c
index 6cf7e72..eb407f0 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -439,8 +439,8 @@ static void print_ref_item(struct ref_item *item, int maxwidth, int verbose,
 			sub = subject.buf;
 		}
 
-		if (item->kind == REF_LOCAL_BRANCH)
-			fill_tracking_info(&stat, item->name, verbose > 1);
+		if (item->kind == REF_LOCAL_BRANCH && verbose > 1)
+			fill_tracking_info(&stat, item->name, verbose > 2);
 
 		strbuf_addf(&out, " %s %s%s",
 			find_unique_abbrev(item->commit->object.sha1, abbrev),
-- 
1.7.0.1.390.g67bca