[RFC/PATCH] show tracking branches with their associated branch names

Subsystems: the rest

5 messages, 3 authors, 2016-06-15 · open the first message on its own page

[RFC/PATCH] show tracking branches with their associated branch names

From: Santhosh Kumar Mani <hidden>
Date: 2016-06-15 22:52:36

The "git branch" command, by default, displays the local branches. There
is no visual distinction made between the tracking branches and normal
local branches. This patch enables the "git branch" to display
tracking info for tracking branches:

Before this patch:
  $ git branch
  * master
    local

After this patch:
  $ git branch
  * master [origin/master]
    local

Signed-off-by: Santhosh Kumar Mani <redacted>
---
 builtin/branch.c |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/builtin/branch.c b/builtin/branch.c
index e1e486e..4841416 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -373,6 +373,19 @@ static int ref_cmp(const void *r1, const void *r2)
 	return strcmp(c1->name, c2->name);
 }
 
+static int get_tracking_branch_name(struct strbuf *name, const char
*branch_name)
+{
+	struct branch *branch = branch_get(branch_name);
+
+	if (branch && branch->merge && branch->merge[0]->dst) {
+		strbuf_addf(name, " [%s]",
+				shorten_unambiguous_ref(branch->merge[0]->dst, 0));
+		return 1;
+	}
+
+	return 0;
+}
+
 static void fill_tracking_info(struct strbuf *stat, const char
*branch_name,
 		int show_upstream_ref)
 {
@@ -475,6 +488,9 @@ static void print_ref_item(struct ref_item *item,
int maxwidth, int verbose,
 	else if (verbose)
 		/* " f7c0c00 [ahead 58, behind 197] vcs-svn: drop obj_pool.h" */
 		add_verbose_info(&out, item, verbose, abbrev);
+	else if (get_tracking_branch_name(&out, item->name))
+		;
+
 	printf("%s\n", out.buf);
 	strbuf_release(&name);
 	strbuf_release(&out);
-- 
1.7.0.4

Re: [RFC/PATCH] show tracking branches with their associated branch names

From: Vincent van Ravesteijn <hidden>
Date: 2016-06-15 22:52:36

Op 10-12-2011 8:40, Santhosh Kumar Mani schreef:
The "git branch" command, by default, displays the local branches. There
is no visual distinction made between the tracking branches and normal
local branches. This patch enables the "git branch" to display
tracking info for tracking branches:

Before this patch:
   $ git branch
   * master
     local

After this patch:
   $ git branch
   * master [origin/master]
     local
Did you try "git branch -vv" ?

Vincent

Re: [RFC/PATCH] show tracking branches with their associated branch names

From: Santhosh Kumar Mani <hidden>
Date: 2016-06-15 22:52:36

On Sat, 2011-12-10 at 10:53 +0100, Vincent van Ravesteijn wrote:
Op 10-12-2011 8:40, Santhosh Kumar Mani schreef:
quoted
The "git branch" command, by default, displays the local branches. There
is no visual distinction made between the tracking branches and normal
local branches. This patch enables the "git branch" to display
tracking info for tracking branches:

Before this patch:
   $ git branch
   * master
     local

After this patch:
   $ git branch
   * master [origin/master]
     local
Did you try "git branch -vv" ?
Yes. I did. It is too verbose as it meant to be.

This patch distinguishes between the tracking and non-tracking local
branches.

I use a lot of tracking branches and they track different branches. I
tend find this feature useful to know which branch tracks what.

Of course, I could get this information in different ways. But it makes
sense to have this information displayed by default.
Vincent
Regards,
Santhosh.

Re: [RFC/PATCH] show tracking branches with their associated branch names

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:52:37

Santhosh Kumar Mani [off-list ref] writes:
Of course, I could get this information in different ways. But it makes
sense to have this information displayed by default.
It makes sense to make the various information available, but it does not
mean it makes sense to add it by default for everybody at all. Given that
against all common sense, many newbie web-tips and third-party documents
suggest "git branch | sed -ne 's/^\* //p'" as a way to find the current
branch in scripts, I am sure such a change will cause trouble to many
while only helping a few.

I wouldn't mind a new option --verbose-format=... that takes various
formatting letters similar to how --pretty=format:... does, though.

Re: [RFC/PATCH] show tracking branches with their associated branch names

From: Santhosh <hidden>
Date: 2016-06-15 22:52:37

On Mon, Dec 12, 2011 at 12:44 PM, Junio C Hamano [off-list ref] wrote:
It makes sense to make the various information available, but it does not
mean it makes sense to add it by default for everybody at all. Given that
against all common sense, many newbie web-tips and third-party documents
suggest "git branch | sed -ne 's/^\* //p'" as a way to find the current
branch in scripts, I am sure such a change will cause trouble to many
while only helping a few.
You certainly have a point.
I wouldn't mind a new option --verbose-format=... that takes various
formatting letters similar to how --pretty=format:... does, though.
I will explore this option and see if it is worth the trouble.
Probably I can accomplish this locally with an alias.

~Santhosh.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help