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

[PATCH] git status: display current branch name in color

From
Michael Wookey <michaelwookey@gmail.com>
Date
Jan 15, 2010, 02:23 UTC
Message-ID
<d2e97e801001141823i7519864dy264488d36fca465c@mail.gmail.com>

There is an existing highlight when the user is not on any branch. Enhance this functionality to always provide the name of the current branch in color.

Signed-off-by: Michael Wookey <michaelwookey@gmail.com>
---
 wt-status.c |   10 ++++++----
 wt-status.h |    3 ++-
 2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/wt-status.c b/wt-status.c
index 5d56988..bdaa98b 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -17,6 +17,7 @@ static char default_wt_status_colors[][COLOR_MAXLEN] = {
 	GIT_COLOR_RED,    /* WT_STATUS_UNTRACKED */
 	GIT_COLOR_RED,    /* WT_STATUS_NOBRANCH */
 	GIT_COLOR_RED,    /* WT_STATUS_UNMERGED */
+	GIT_COLOR_GREEN,  /* WT_STATUS_BRANCH */
 };

 static const char *color(int slot, struct wt_status *s)
@@ -553,7 +554,7 @@ static void wt_status_print_tracking(struct wt_status *s)

 void wt_status_print(struct wt_status *s)
 {
-	const char *branch_color = color(WT_STATUS_HEADER, s);
+	const char *branch_color = color(WT_STATUS_BRANCH, s);

 	if (s->branch) {
 		const char *on_what = "On branch ";
@@ -561,12 +562,13 @@ void wt_status_print(struct wt_status *s)
 		if (!prefixcmp(branch_name, "refs/heads/"))
 			branch_name += 11;
 		else if (!strcmp(branch_name, "HEAD")) {
-			branch_name = "";
+			branch_name = "Not currently on any branch.";
 			branch_color = color(WT_STATUS_NOBRANCH, s);
-			on_what = "Not currently on any branch.";
+			on_what = "";
 		}
 		color_fprintf(s->fp, color(WT_STATUS_HEADER, s), "# ");
-		color_fprintf_ln(s->fp, branch_color, "%s%s", on_what, branch_name);
+		color_fprintf(s->fp, color(WT_STATUS_HEADER, s), "%s", on_what);
+		color_fprintf_ln(s->fp, branch_color, "%s", branch_name);
 		if (!s->is_initial)
 			wt_status_print_tracking(s);
 	}
diff --git a/wt-status.h b/wt-status.h
index c60f40a..b0cf235 100644
--- a/wt-status.h
+++ b/wt-status.h
@@ -12,6 +12,7 @@ enum color_wt_status {
 	WT_STATUS_UNTRACKED,
 	WT_STATUS_NOBRANCH,
 	WT_STATUS_UNMERGED,
+	WT_STATUS_BRANCH,
 };

 enum untracked_status_type {
@@ -40,7 +41,7 @@ struct wt_status {
 	int relative_paths;
 	int submodule_summary;
 	enum untracked_status_type show_untracked_files;
-	char color_palette[WT_STATUS_UNMERGED+1][COLOR_MAXLEN];
+	char color_palette[WT_STATUS_BRANCH+1][COLOR_MAXLEN];

 	/* These are computed during processing of the individual sections */
 	int commitable;
-- 
1.6.6.197.gfd7f6
Next: Michael Wookey
Message 1 of 3 in “git status: display current branch name in color”
  1. git status: display current branch name in colorMichael Wookey, Jan 15, 2010
  2. Michael WookeyJan 17, 2010
  3. Jeff KingJan 18, 2010

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.