Re: [PATCH 1/1] reset: support the --stdin option
From: Junio C Hamano <hidden>
Date: 2019-09-04 23:23:07
Eric Sunshine [off-list ref] writes:
On Wed, Sep 4, 2019 at 5:38 PM Johannes Schindelin via GitGitGadget [off-list ref] wrote:quoted
Just like with other Git commands, this option makes it read the paths from the standard input. It comes in handy when resetting many, many paths at once and wildcards are not an option (e.g. when the paths are generated by a tool). [...] Signed-off-by: Johannes Schindelin <redacted> ---diff --git a/builtin/reset.c b/builtin/reset.c@@ -316,6 +325,38 @@ int cmd_reset(int argc, const char **argv, const char *prefix) + if (read_from_stdin) { + [...] + while (getline_fn(&buf, stdin) != EOF) { + if (!nul_term_line && buf.buf[0] == '"') { + strbuf_reset(&unquoted); + if (unquote_c_style(&unquoted, buf.buf, NULL)) + die(_("line is badly quoted"));Perhaps include the offending line in the error message to make it easier for the user to understand what went wrong: die(_("line is badly quoted: %s"), buf.buf);
I think the patch is solving the right problem by adding a feature that is useful to work around the command line limit, but I doubt the wisdom of limiting the input to "paths" by default. It would be perfect if the command gets taught to take pathspec, with "git --[no-]literal-pathspec reset --stdin" as an escape hatch.