git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH try2 8/8] branch: display publish branch

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Oct 12, 2013, 07:06 UTC
Message-ID
<1381561561-20459-8-git-send-email-felipe.contreras@gmail.com>
In-Reply-To
<1381561561-20459-1-git-send-email-felipe.contreras@gmail.com>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 builtin/branch.c | 52 +++++++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 43 insertions(+), 9 deletions(-)
diff --git a/builtin/branch.c b/builtin/branch.c
index cf33e1c..9f15f7e 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;
 }
 
@@ -424,16 +428,35 @@ 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 (!branch)
+		return;
+
 	if (!show_tracking || !stat_tracking_info(branch, &ours, &theirs)) {
-		if (!branch || !branch->merge || !branch->merge[0]->dst)
+		if (branch->merge && branch->merge[0]->dst) {
+			ref = shorten_unambiguous_ref(branch->merge[0]->dst, 0);
+			if (want_color(branch_use_color))
+				strbuf_addf(&fancy, "%s%s%s",
+						branch_get_color(BRANCH_COLOR_UPSTREAM),
+						ref, branch_get_color(BRANCH_COLOR_RESET));
+			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 (!fancy.len)
 			return;
-		ref = shorten_unambiguous_ref(branch->merge[0]->dst, 0);
-		if (want_color(branch_use_color))
-			strbuf_addf(stat, "[%s%s%s] ",
-					branch_get_color(BRANCH_COLOR_UPSTREAM),
-					ref, branch_get_color(BRANCH_COLOR_RESET));
-		else
-			strbuf_addf(stat, "[%s] ", ref);
+		strbuf_addf(stat, _("[%s]"), fancy.buf);
+		strbuf_release(&fancy);
+		strbuf_addch(stat, ' ');
 		return;
 	}
 
@@ -444,6 +467,17 @@ static void fill_tracking_info(struct strbuf *stat, const char *branch_name,
 				ref, branch_get_color(BRANCH_COLOR_RESET));
 	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 (!ours) {
 		if (ref)
-- 
1.8.4-fc
Previous: Felipe ContrerasNext: Felipe Contreras
Message 10 of 11 in “Introduce publish tracking branch”
  1. 0/8 Introduce publish tracking branchFelipe Contreras, Oct 12, 2013
  2. 7/8 push: add --set-publish optionFelipe Contreras, Oct 12, 2013
  3. Eric SunshineOct 13, 2013
  4. Felipe ContrerasOct 13, 2013
  5. 6/8 t: branch add publish branch testsFelipe Contreras, Oct 12, 2013
  6. 4/8 Add concept of 'publish' branchFelipe Contreras, Oct 12, 2013
  7. 1/8 branch: trivial cleanupFelipe Contreras, Oct 12, 2013
  8. 2/8 branch: reorganize verbose optionsFelipe Contreras, Oct 12, 2013
  9. 3/8 push: trivial reorganizationFelipe Contreras, Oct 12, 2013
  10. 8/8 branch: display publish branchFelipe Contreras, Oct 12, 2013
  11. 5/8 branch: allow configuring the publish branchFelipe Contreras, Oct 12, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.