It does it along the upstream branch, if any.

* publish ... [master, gh/publish: ahead 1] ...
  master  ... [master, gh/master] ...

Signed-off-by: Felipe Contreras <felipe.contre...@gmail.com>
---
 builtin/branch.c         | 17 ++++++++++++++++-
 t/t6040-tracking-info.sh |  5 +++--
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/builtin/branch.c b/builtin/branch.c
index 17773d7..e0a8d0a 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -42,6 +42,7 @@ static char branch_colors[][COLOR_MAXLEN] = {
        GIT_COLOR_NORMAL,       /* LOCAL */
        GIT_COLOR_GREEN,        /* CURRENT */
        GIT_COLOR_BLUE,         /* UPSTREAM */
+       GIT_COLOR_YELLOW,       /* PUBLISH */
 };
 enum color_branch {
        BRANCH_COLOR_RESET = 0,
@@ -49,7 +50,8 @@ enum color_branch {
        BRANCH_COLOR_REMOTE = 2,
        BRANCH_COLOR_LOCAL = 3,
        BRANCH_COLOR_CURRENT = 4,
-       BRANCH_COLOR_UPSTREAM = 5
+       BRANCH_COLOR_UPSTREAM = 5,
+       BRANCH_COLOR_PUBLISH = 6
 };
 
 static enum merge_filter {
@@ -76,6 +78,8 @@ static int parse_branch_color_slot(const char *var, int ofs)
                return BRANCH_COLOR_CURRENT;
        if (!strcasecmp(var+ofs, "upstream"))
                return BRANCH_COLOR_UPSTREAM;
+       if (!strcasecmp(var+ofs, "publish"))
+               return BRANCH_COLOR_PUBLISH;
        return -1;
 }
 
@@ -448,6 +452,17 @@ static void fill_tracking_info(struct strbuf *stat, const 
char *branch_name,
                else
                        strbuf_addstr(&fancy, ref);
        }
+       if (branch->push.dst) {
+               ref = shorten_unambiguous_ref(branch->push.dst, 0);
+               if (fancy.len)
+                       strbuf_addstr(&fancy, ", ");
+               if (want_color(branch_use_color))
+                       strbuf_addf(&fancy, "%s%s%s",
+                                       branch_get_color(BRANCH_COLOR_PUBLISH),
+                                       ref, 
branch_get_color(BRANCH_COLOR_RESET));
+               else
+                       strbuf_addstr(&fancy, ref);
+       }
 
        if (upstream_is_gone) {
                if (show_upstream_ref)
diff --git a/t/t6040-tracking-info.sh b/t/t6040-tracking-info.sh
index 7ac8fd0..8b9ef63 100755
--- a/t/t6040-tracking-info.sh
+++ b/t/t6040-tracking-info.sh
@@ -33,7 +33,8 @@ test_expect_success setup '
                git checkout -b b5 --track brokenbase &&
                advance g &&
                git branch -d brokenbase &&
-               git checkout -b b6 origin
+               git checkout -b b6 origin &&
+               git branch --set-publish origin/master b6
        ) &&
        git checkout -b follower --track master &&
        advance h
@@ -64,7 +65,7 @@ b2 [origin/master: ahead 1, behind 1] d
 b3 [origin/master: behind 1] b
 b4 [origin/master: ahead 2] f
 b5 [brokenbase: gone] g
-b6 [origin/master] c
+b6 [origin/master, origin/master] c
 EOF
 
 test_expect_success 'branch -vv' '
-- 
1.9.1+fc1

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to