Thread (1 message) 1 message, 1 author, 2019-09-04

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help