threads / patch / 35149

patchstatus: allow branch info color customization

Subject: [PATCH] status: allow branch info color customization

## tl;dr

2 messages between Oct 16, 2013 and Oct 16, 2013. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Alexander 'z33ky' Hirsch· Oct 16, 2013, 08:22 UTC · lore
From: Alexander Hirsch <1zeeky@gmail.com>

git status -bs (--branch --short) does not seem to allow customization of the colors for the local and remote branch. This patch adds these via the color.status.local and color.status.remote config variables.

Given the trivial nature of this patch I did not write a test for it. I did a small check that it's working so, to be on the safe side.

Signed-off-by: Alexander Hirsch <1zeeky@gmail.com>
---
 Documentation/config.txt | 7 +++++--
 builtin/commit.c         | 4 ++++
 2 files changed, 9 insertions(+), 2 deletions(-)
Show changes to 2 files +9 −2

Documentation/config.txt, builtin/commit.c

diff --git a/Documentation/config.txt b/Documentation/config.txt
index d4d93c9..261fc99 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -904,9 +904,12 @@ color.status.<slot>::
 	`added` or `updated` (files which are added but not committed),
 	`changed` (files which are changed but not added in the index),
 	`untracked` (files which are not tracked by Git),
-	`branch` (the current branch), or
+	`branch` (the current branch),
 	`nobranch` (the color the 'no branch' warning is shown in, defaulting
-	to red). The values of these variables may be specified as in
+	to red),
+	`local` (the local branch when showing branch info), or
+	`remote` (the remote-tracked branch when showing branch info).
+	The values of these variables may be specified as in
 	color.branch.<slot>.
 
 color.ui::
diff --git a/builtin/commit.c b/builtin/commit.c
index 6ab4605..43365b4 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -1165,6 +1165,10 @@ static int parse_status_slot(const char *var, int offset)
 		return WT_STATUS_HEADER;
 	if (!strcasecmp(var+offset, "branch"))
 		return WT_STATUS_ONBRANCH;
+	if (!strcasecmp(var+offset, "local"))
+		return WT_STATUS_LOCAL_BRANCH;
+	if (!strcasecmp(var+offset, "remote"))
+		return WT_STATUS_REMOTE_BRANCH;
 	if (!strcasecmp(var+offset, "updated")
 		|| !strcasecmp(var+offset, "added"))
 		return WT_STATUS_UPDATED;
-- 
1.8.4.1
Junio C Hamano· Oct 16, 2013, 21:39 UTC · re: Alexander 'z33ky' Hirsch · lore

Re: [PATCH] status: allow branch info color customization

Alexander 'z33ky' Hirsch <1zeeky@gmail.com> writes:
> From: Alexander Hirsch <1zeeky@gmail.com>
>
> git status -bs (--branch --short) does not seem to allow customization of the
> colors for the local and remote branch.
wt-status can use the following colors:
    WT_STATUS_CHANGED
    WT_STATUS_HEADER
  - WT_STATUS_LOCAL_BRANCH
    WT_STATUS_NOBRANCH
    WT_STATUS_ONBRANCH
  - WT_STATUS_REMOTE_BRANCH
    WT_STATUS_UNMERGED
    WT_STATUS_UNTRACKED
    WT_STATUS_UPDATED
but parse_status_slot() lets you set only these
    WT_STATUS_CHANGED
    WT_STATUS_HEADER
    WT_STATUS_NOBRANCH
    WT_STATUS_ONBRANCH
    WT_STATUS_UNMERGED
    WT_STATUS_UNTRACKED
    WT_STATUS_UPDATED

and this patch makes the configuration mechanism cover all of the slots by adding parsing code for the missing two.

While I think the intent of the patch makes sense, I have to wonder if "local" and "remote" without having the "branch" anywhere is painting us into an unpleasant corner we cannot later get out of. For example, we might want to show the remote-tracking branch information (that is where REMOTE_BRANCH color matters in the current code) in a more detailed way later, which may include where the source repository resides, either locally on the same host or remotely over the network, and WT_STATUS_{LOCAL,REMOTE}_REPOSITORY may be the natural names for the colors to paint the repository paths/URL in.

← back to recent threads