[PATCH] Show branch information in short output of git status
From: Knittl <hidden>
Date: 2016-06-15 22:48:44
Subsystem:
the rest · Maintainer:
Linus Torvalds
From 6a82c5486163a058cf2bdbe5089527084a563b80 Mon Sep 17 00:00:00 2001
From: Daniel Knittl-Frank <redacted> Date: Tue, 20 Apr 2010 22:40:54 +0200 Subject: [PATCH] Show branch information in short output of git status This patch adds a first line in the output of `git status -s`, showing which branch the user is currently on, and in case of tracking branches the number of commits on each branch. Signed-off-by: Daniel Knittl-Frank <redacted> --- wt-status.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 45 insertions(+), 0 deletions(-)
diff --git a/wt-status.c b/wt-status.c
index 8ca59a2..2e6c56e 100644
--- a/wt-status.c
+++ b/wt-status.c@@ -9,6 +9,7 @@ #include "quote.h" #include "run-command.h" #include "remote.h" +#include "refs.h" static char default_wt_status_colors[][COLOR_MAXLEN] = { GIT_COLOR_NORMAL, /* WT_STATUS_HEADER */
@@ -721,9 +722,53 @@ static void wt_shortstatus_untracked(intnull_termination, struct string_list_it
}
}
+static void wt_shortstatus_print_tracking(struct wt_status *s)
+{
+ struct branch *branch;
+ const char *branch_color = color(WT_STATUS_HEADER, s);
+
+ const char *base;
+ const char *branch_name;
+ int num_ours, num_theirs;
+
+ color_fprintf(s->fp, color(WT_STATUS_HEADER, s), "## ");
+
+ if(!s->branch) return;
+ branch_name = s->branch;
+
+ if (!prefixcmp(branch_name, "refs/heads/"))
+ branch_name += 11;
+ else if (!strcmp(branch_name, "HEAD")) {
+ branch_color = color(WT_STATUS_NOBRANCH, s);
+ }
+
+ branch = branch_get(s->branch + 11);
+ if (!stat_tracking_info(branch, &num_ours, &num_theirs)) {
+
+ if(s->is_initial) {
+ color_fprintf(s->fp,
+ color(WT_STATUS_HEADER, s),
+ "Initial commit ... ");
+ }
+ color_fprintf_ln(s->fp, branch_color,
+ "%s", branch_name);
+ return;
+ }
+
+ base = branch->merge[0]->dst;
+ base = shorten_unambiguous_ref(base, 0);
+ color_fprintf_ln(s->fp, branch_color,
+ "%s (%d) ... %s (%d)",
+ branch_name, num_ours,
+ base, num_theirs);
+}
+
void wt_shortstatus_print(struct wt_status *s, int null_termination)
{
int i;
+
+ wt_shortstatus_print_tracking(s);
+
for (i = 0; i < s->change.nr; i++) {
struct wt_status_change_data *d;
struct string_list_item *it;
--
1.7.1.rc2.6.g1015.dirty
--
typed with http://neo-layout.org
myFtPhp -- visit http://myftphp.sf.net -- v. 0.4.7 released!