this patch adds a header in the same style as the one provided by the --branch option when the user supplies both --show-stash and --short. My attempt at creating a new test is broken[1], and I assume my changes could (and, likely need to) be improved. Any assistance would be greatly appreciated; I just wanted to get started by hacking first and asking questions later! Thanks, Sonny 1. https://travis-ci.org/sonnym/git/builds/266428128 -- >From 9e9ffca5c4ed7dda34cad416c3eb68dc94a78b7e Mon Sep 17 00:00:00 2001 From: Sonny Michaud <michaud.sonny@xxxxxxxxx> Date: Sat, 19 Aug 2017 23:46:15 -0400 Subject: [PATCH 1/1] status: learn to show stash in short output This patch extends the functionality of the recently introduced --show-stash option to the status command, providing a header similar to the one displayed when using the --branch option. --- t/t7508-status.sh | 5 +++++ wt-status.c | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/t/t7508-status.sh b/t/t7508-status.sh index 43d19a9b2..734001bc6 100755 --- a/t/t7508-status.sh +++ b/t/t7508-status.sh @@ -1619,6 +1619,11 @@ test_expect_success 'show stash info with "--show-stash"' ' test_i18ngrep "^Your stash currently has 1 entry$" expected_with_stash ' +test_expect_success 'show stash info with "--show-stash" and "--short"' ' + git status --show-stash --short >expected_with_stash && + test_i18ngrep "Stash entries: 2" expected_with_stash +' + test_expect_success 'no stash info with "--show-stash --no-show-stash"' ' git status --show-stash --no-show-stash >expected_without_stash && test_cmp expected_default expected_without_stash diff --git a/wt-status.c b/wt-status.c index 77c27c511..651bb01f0 100644 --- a/wt-status.c +++ b/wt-status.c @@ -1827,6 +1827,15 @@ static void wt_shortstatus_print_tracking(struct wt_status *s) fputc(s->null_termination ? '\0' : '\n', s->fp); } +static void wt_shortstatus_print_stash_summary(struct wt_status *s) +{ + int stash_count = 0; + + for_each_reflog_ent("refs/stash", stash_count_refs, &stash_count); + if (stash_count > 0) + color_fprintf(s->fp, color(WT_STATUS_HEADER, s), "## Stash entries: %d", stash_count); +} + static void wt_shortstatus_print(struct wt_status *s) { struct string_list_item *it; @@ -1834,6 +1843,9 @@ static void wt_shortstatus_print(struct wt_status *s) if (s->show_branch) wt_shortstatus_print_tracking(s); + if (s->show_stash) + wt_shortstatus_print_stash_summary(s); + for_each_string_list_item(it, &s->change) { struct wt_status_change_data *d = it->util; -- 2.14.0