Re: [PATCH] branch: add show-tracking option
From: Michael J Gruber <hidden>
Date: 2016-06-15 22:57:16
Felipe Contreras venit, vidit, dixit 16.05.2013 09:48:
Showing the tracking information for all the branches takes significant amount of time. The user might not want that. The --no-show-tracking option allows that.
I really like the idea of allowing that - not just because I've suggested so myself in the past ;) I feel, though, that we're really exploding our option and config realm. For "git branch" in list mode, we are already able to stack "-v", i.e. "-v" and "-vv" do different things. How about maybe adding "-vvv" and arranging things so that the verbosity and the run time increases with the number of v's? -v list with sha1 + subject of last commit -vv add upstream branch name -vvv add ahead/behind info (the only costly mode) -vvvv same with "--cherry" (ahead/behind/same) Or maybe combine the middle two cases into "-vv", which means it would be the same as "-vv", with only "-v" changing what it does now. Yes, this changes current behavior (at least fpr -v), which sucks anyways because of the costly lookup. And those scripting around "branch -v" should get what they deserve. (I may sound annoyed by our compatibility brakes, but here's a case where breaking it should be OK.)
quoted hunk ↗ jump to hunk
Signed-off-by: Felipe Contreras <redacted> --- Documentation/git-branch.txt | 5 ++++- builtin/branch.c | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-)diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt index b7cb625..1db04cd 100644 --- a/Documentation/git-branch.txt +++ b/Documentation/git-branch.txt@@ -9,7 +9,7 @@ SYNOPSIS -------- [verse] 'git branch' [--color[=<when>] | --no-color] [-r | -a] - [--list] [-v [--abbrev=<length> | --no-abbrev]] + [--list] [-v [--abbrev=<length> | --no-abbrev] --show-tracking] [--column[=<options>] | --no-column] [(--merged | --no-merged | --contains) [<commit>]] [<pattern>...] 'git branch' [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]@@ -154,6 +154,9 @@ This option is only applicable in non-verbose mode. --no-abbrev:: Display the full sha1s in the output listing rather than abbreviating them. +--show-tracking:: + Display the tracking information when using --verbose, or not. + -t:: --track:: When creating a new branch, set up configuration to mark thediff --git a/builtin/branch.c b/builtin/branch.c index 0836890..2b586ea 100644 --- a/builtin/branch.c +++ b/builtin/branch.c@@ -33,6 +33,7 @@ static const char * const builtin_branch_usage[] = { static const char *head; static unsigned char head_sha1[20]; +static int show_tracking = 1; static int branch_use_color = -1; static char branch_colors[][COLOR_MAXLEN] = {@@ -424,7 +425,7 @@ static void fill_tracking_info(struct strbuf *stat, const char *branch_name, struct branch *branch = branch_get(branch_name); struct strbuf fancy = STRBUF_INIT; - if (!stat_tracking_info(branch, &ours, &theirs)) { + if (!(show_tracking && stat_tracking_info(branch, &ours, &theirs))) { if (branch && branch->merge && branch->merge[0]->dst && show_upstream_ref) { ref = shorten_unambiguous_ref(branch->merge[0]->dst, 0);@@ -840,6 +841,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix) opt_parse_merge_filter, (intptr_t) "HEAD", }, OPT_COLUMN(0, "column", &colopts, N_("list branches in columns")), + OPT_BOOL(0, "show-tracking", &show_tracking, N_("show tracking information")), OPT_END(), };