Re: Short status ignores --show-stash option
From: Jeff King <hidden>
Date: 2021-02-16 20:24:24
On Tue, Feb 16, 2021 at 01:25:32PM -0500, Taylor Blau wrote:
quoted hunk ↗ jump to hunk
and that would cause 'git status' to do what you expect: $ git.compile status --short --branch --show-stash ## tb/empty-trailer-continuation M wt-status.c Your stash currently has 16 entries But it may not be the right thing to do, since that explicitly breaks the --porcelain format. We may want something like this in addition to the above:diff --git a/builtin/commit.c b/builtin/commit.c index 739110c5a7..ef855896a2 100644 --- a/builtin/commit.c +++ b/builtin/commit.c@@ -1414,6 +1414,12 @@ int cmd_status(int argc, const char **argv, const char *prefix) s.show_untracked_files == SHOW_NO_UNTRACKED_FILES) die(_("Unsupported combination of ignored and untracked-files arguments")); + if (status_format == STATUS_FORMAT_PORCELAIN || + status_format == STATUS_FORMAT_PORCELAIN_V2) { + if (s.show_stash) + die(_("--porcelain is incompatible with --show-stash")); + } +
I think ideally we'd define a porcelain format for it, since v2 has explicit support for extending with new headers. Something like: # stash.number 16 would probably work. I don't think it's _strictly_ necessary, in that the die() above does not paint us into a corner. We can always loosen it later. But it is easy enough that it probably makes sense to just define it while we are here. And in particular, I think we may want to mimic it for --short, rather than just showing the "long" output, which IMHO is kind of dissonant in terms of the formatting (though again, we reserve the right to change --short, so I don't think we've painted ourselves into a corner). -Peff