diff options
author | Junio C Hamano <gitster@pobox.com> | 2020-09-10 10:01:57 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-09-10 13:07:24 -0700 |
commit | a361dd3f798968b3be4bd10d0f4133dc1f48e50b (patch) | |
tree | ba12173f387f29620b67174e649f65f67cec3397 | |
parent | quote_path: code clarification (diff) | |
download | tgif-a361dd3f798968b3be4bd10d0f4133dc1f48e50b.tar.xz |
wt-status: consistently quote paths in "status --short" output
Tracked paths with SP in them were cquoted in "git status --short"
output, but untracked, ignored, and unmerged paths weren't.
The test was stolen from a patch to fix output for the 'untracked'
paths by brian m. carlson, with similar tests added for 'ignored'
ones.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | t/t7508-status.sh | 27 | ||||
-rw-r--r-- | wt-status.c | 4 |
2 files changed, 29 insertions, 2 deletions
diff --git a/t/t7508-status.sh b/t/t7508-status.sh index e81759319f..2e9c6daf1a 100755 --- a/t/t7508-status.sh +++ b/t/t7508-status.sh @@ -814,6 +814,33 @@ test_expect_success 'status -s without relative paths' ' ' +cat >expect <<\EOF + M dir1/modified +A dir2/added +A "file with spaces" +?? dir1/untracked +?? dir2/modified +?? dir2/untracked +?? "file with spaces 2" +?? untracked +EOF + +test_expect_success 'status -s without relative paths' ' + test_when_finished "git rm --cached \"file with spaces\"; rm -f file*" && + >"file with spaces" && + >"file with spaces 2" && + >"expect with spaces" && + git add "file with spaces" && + + git status -s >output && + test_cmp expect output && + + git status -s --ignored >output && + grep "^!! \"expect with spaces\"$" output && + grep -v "^!! " output >output-wo-ignored && + test_cmp expect output-wo-ignored +' + test_expect_success 'dry-run of partial commit excluding new file in index' ' cat >expect <<EOF && On branch master diff --git a/wt-status.c b/wt-status.c index adbf6958bd..7139623025 100644 --- a/wt-status.c +++ b/wt-status.c @@ -1848,7 +1848,7 @@ static void wt_shortstatus_unmerged(struct string_list_item *it, } else { struct strbuf onebuf = STRBUF_INIT; const char *one; - one = quote_path(it->string, s->prefix, &onebuf, 0); + one = quote_path(it->string, s->prefix, &onebuf, QUOTE_PATH_QUOTE_SP); printf(" %s\n", one); strbuf_release(&onebuf); } @@ -1896,7 +1896,7 @@ static void wt_shortstatus_other(struct string_list_item *it, } else { struct strbuf onebuf = STRBUF_INIT; const char *one; - one = quote_path(it->string, s->prefix, &onebuf, 0); + one = quote_path(it->string, s->prefix, &onebuf, QUOTE_PATH_QUOTE_SP); color_fprintf(s->fp, color(WT_STATUS_UNTRACKED, s), "%s", sign); printf(" %s\n", one); strbuf_release(&onebuf); |