Skip to content

Commit

Permalink
status: show branchname with a configurable color
Browse files Browse the repository at this point in the history
You can tell "git status" to paint the name of the current branch in its
output (the line that says "On branch ...") by setting the configuration
variable color.status.branch; it is by default turned off.

Signed-off-by: Aleksi Aalto <aga@iki.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Aga303 authored and gitster committed Nov 30, 2010
1 parent 7d43de9 commit 1d28232
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 8 deletions.
3 changes: 2 additions & 1 deletion Documentation/config.txt
Expand Up @@ -774,7 +774,8 @@ color.status.<slot>::
one of `header` (the header text of the status message),
`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), or
`untracked` (files which are not tracked by git),
`branch` (the current branch), or
`nobranch` (the color the 'no branch' warning is shown in, defaulting
to red). The values of these variables may be specified as in
color.branch.<slot>.
Expand Down
2 changes: 2 additions & 0 deletions builtin/commit.c
Expand Up @@ -984,6 +984,8 @@ static int parse_status_slot(const char *var, int offset)
{
if (!strcasecmp(var+offset, "header"))
return WT_STATUS_HEADER;
if (!strcasecmp(var+offset, "branch"))
return WT_STATUS_ONBRANCH;
if (!strcasecmp(var+offset, "updated")
|| !strcasecmp(var+offset, "added"))
return WT_STATUS_UPDATED;
Expand Down
5 changes: 3 additions & 2 deletions t/t7508-status.sh
Expand Up @@ -381,12 +381,13 @@ test_expect_success 'status --porcelain ignores relative paths setting' '

test_expect_success 'setup unique colors' '
git config status.color.untracked blue
git config status.color.untracked blue &&
git config status.color.branch green
'

cat >expect <<\EOF
# On branch master
# On branch <GREEN>master<RESET>
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
Expand Down
9 changes: 6 additions & 3 deletions wt-status.c
Expand Up @@ -21,6 +21,7 @@ static char default_wt_status_colors[][COLOR_MAXLEN] = {
GIT_COLOR_RED, /* WT_STATUS_UNMERGED */
GIT_COLOR_GREEN, /* WT_STATUS_LOCAL_BRANCH */
GIT_COLOR_RED, /* WT_STATUS_REMOTE_BRANCH */
GIT_COLOR_NORMAL, /* WT_STATUS_ONBRANCH */
};

static const char *color(int slot, struct wt_status *s)
Expand Down Expand Up @@ -625,7 +626,8 @@ 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_ONBRANCH, s);
const char *branch_status_color = color(WT_STATUS_HEADER, s);

if (s->branch) {
const char *on_what = "On branch ";
Expand All @@ -634,11 +636,12 @@ void wt_status_print(struct wt_status *s)
branch_name += 11;
else if (!strcmp(branch_name, "HEAD")) {
branch_name = "";
branch_color = color(WT_STATUS_NOBRANCH, s);
branch_status_color = color(WT_STATUS_NOBRANCH, s);
on_what = "Not currently on any branch.";
}
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, branch_status_color, "%s", on_what);
color_fprintf_ln(s->fp, branch_color, "%s", branch_name);
if (!s->is_initial)
wt_status_print_tracking(s);
}
Expand Down
6 changes: 4 additions & 2 deletions wt-status.h
Expand Up @@ -13,7 +13,9 @@ enum color_wt_status {
WT_STATUS_NOBRANCH,
WT_STATUS_UNMERGED,
WT_STATUS_LOCAL_BRANCH,
WT_STATUS_REMOTE_BRANCH
WT_STATUS_REMOTE_BRANCH,
WT_STATUS_ONBRANCH,
WT_STATUS_MAXSLOT
};

enum untracked_status_type {
Expand Down Expand Up @@ -46,7 +48,7 @@ struct wt_status {
int show_ignored_files;
enum untracked_status_type show_untracked_files;
const char *ignore_submodule_arg;
char color_palette[WT_STATUS_REMOTE_BRANCH+1][COLOR_MAXLEN];
char color_palette[WT_STATUS_MAXSLOT][COLOR_MAXLEN];

/* These are computed during processing of the individual sections */
int commitable;
Expand Down

0 comments on commit 1d28232

Please sign in to comment.