status: update short status to respect --no-ahead-behind
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>
This commit is contained in:
parent
fd9b544a29
commit
3ca1897cc1
@ -146,6 +146,19 @@ test_expect_success 'status -s -b (diverged from upstream)' '
|
|||||||
test_i18ncmp expect actual
|
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
|
cat >expect <<\EOF
|
||||||
## b5...brokenbase [gone]
|
## b5...brokenbase [gone]
|
||||||
EOF
|
EOF
|
||||||
|
11
wt-status.c
11
wt-status.c
@ -1771,7 +1771,7 @@ static void wt_shortstatus_print_tracking(struct wt_status *s)
|
|||||||
const char *base;
|
const char *base;
|
||||||
char *short_base;
|
char *short_base;
|
||||||
const char *branch_name;
|
const char *branch_name;
|
||||||
int num_ours, num_theirs;
|
int num_ours, num_theirs, sti;
|
||||||
int upstream_is_gone = 0;
|
int upstream_is_gone = 0;
|
||||||
|
|
||||||
color_fprintf(s->fp, color(WT_STATUS_HEADER, s), "## ");
|
color_fprintf(s->fp, color(WT_STATUS_HEADER, s), "## ");
|
||||||
@ -1797,8 +1797,9 @@ static void wt_shortstatus_print_tracking(struct wt_status *s)
|
|||||||
|
|
||||||
color_fprintf(s->fp, branch_color_local, "%s", branch_name);
|
color_fprintf(s->fp, branch_color_local, "%s", branch_name);
|
||||||
|
|
||||||
if (stat_tracking_info(branch, &num_ours, &num_theirs, &base,
|
sti = stat_tracking_info(branch, &num_ours, &num_theirs, &base,
|
||||||
AHEAD_BEHIND_FULL) < 0) {
|
s->ahead_behind_flags);
|
||||||
|
if (sti < 0) {
|
||||||
if (!base)
|
if (!base)
|
||||||
goto conclude;
|
goto conclude;
|
||||||
|
|
||||||
@ -1810,12 +1811,14 @@ static void wt_shortstatus_print_tracking(struct wt_status *s)
|
|||||||
color_fprintf(s->fp, branch_color_remote, "%s", short_base);
|
color_fprintf(s->fp, branch_color_remote, "%s", short_base);
|
||||||
free(short_base);
|
free(short_base);
|
||||||
|
|
||||||
if (!upstream_is_gone && !num_ours && !num_theirs)
|
if (!upstream_is_gone && !sti)
|
||||||
goto conclude;
|
goto conclude;
|
||||||
|
|
||||||
color_fprintf(s->fp, header_color, " [");
|
color_fprintf(s->fp, header_color, " [");
|
||||||
if (upstream_is_gone) {
|
if (upstream_is_gone) {
|
||||||
color_fprintf(s->fp, header_color, LABEL(N_("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) {
|
} else if (!num_ours) {
|
||||||
color_fprintf(s->fp, header_color, LABEL(N_("behind ")));
|
color_fprintf(s->fp, header_color, LABEL(N_("behind ")));
|
||||||
color_fprintf(s->fp, branch_color_remote, "%d", num_theirs);
|
color_fprintf(s->fp, branch_color_remote, "%d", num_theirs);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user