Skip to content

Commit

Permalink
status: update short status to respect --no-ahead-behind
Browse files Browse the repository at this point in the history
Teach "git status --short --branch" to respect "--no-ahead-behind"
parameter to skip computing ahead/behind counts for the branch and
its upstream and just report '[different]'.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
jeffhostetler authored and gitster committed Jan 24, 2018
1 parent fd9b544 commit 3ca1897
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
13 changes: 13 additions & 0 deletions t/t6040-tracking-info.sh
Expand Up @@ -146,6 +146,19 @@ test_expect_success 'status -s -b (diverged from upstream)' '
test_i18ncmp expect actual
'

cat >expect <<\EOF
## b1...origin/master [different]
EOF

test_expect_success 'status -s -b --no-ahead-behind (diverged from upstream)' '
(
cd test &&
git checkout b1 >/dev/null &&
git status -s -b --no-ahead-behind | head -1
) >actual &&
test_i18ncmp expect actual
'

cat >expect <<\EOF
## b5...brokenbase [gone]
EOF
Expand Down
11 changes: 7 additions & 4 deletions wt-status.c
Expand Up @@ -1771,7 +1771,7 @@ static void wt_shortstatus_print_tracking(struct wt_status *s)
const char *base;
char *short_base;
const char *branch_name;
int num_ours, num_theirs;
int num_ours, num_theirs, sti;
int upstream_is_gone = 0;

color_fprintf(s->fp, color(WT_STATUS_HEADER, s), "## ");
Expand All @@ -1797,8 +1797,9 @@ static void wt_shortstatus_print_tracking(struct wt_status *s)

color_fprintf(s->fp, branch_color_local, "%s", branch_name);

if (stat_tracking_info(branch, &num_ours, &num_theirs, &base,
AHEAD_BEHIND_FULL) < 0) {
sti = stat_tracking_info(branch, &num_ours, &num_theirs, &base,
s->ahead_behind_flags);
if (sti < 0) {
if (!base)
goto conclude;

Expand All @@ -1810,12 +1811,14 @@ static void wt_shortstatus_print_tracking(struct wt_status *s)
color_fprintf(s->fp, branch_color_remote, "%s", short_base);
free(short_base);

if (!upstream_is_gone && !num_ours && !num_theirs)
if (!upstream_is_gone && !sti)
goto conclude;

color_fprintf(s->fp, header_color, " [");
if (upstream_is_gone) {
color_fprintf(s->fp, header_color, LABEL(N_("gone")));
} else if (s->ahead_behind_flags == AHEAD_BEHIND_QUICK) {
color_fprintf(s->fp, header_color, LABEL(N_("different")));
} else if (!num_ours) {
color_fprintf(s->fp, header_color, LABEL(N_("behind ")));
color_fprintf(s->fp, branch_color_remote, "%d", num_theirs);
Expand Down

0 comments on commit 3ca1897

Please sign in to comment.