Jeff King <peff@xxxxxxxx> writes: > Subject: [PATCH] revision: set rev_input_given in handle_revision_arg() > > Commit 7ba826290a (revision: add rev_input_given flag, 2017-08-02) added > a flag to rev_info to tell whether we got any revision arguments. As > explained there, this is necessary because some revision arguments may > not produce any pending traversal objects, but should still inhibit > default behaviors (e.g., a glob that matches nothing). Ah, that explains the symptom under discussion quite well; the topic that introduced the commit was to fix "git log --tag=no-such-tag" that used to default to HEAD. We should be able to reuse the same mechanism to prevent --stdin codepath from falling back to HEAD, of course. > However, it only set the flag in the globbing code, but not for > revisions we get on the command-line or via stdin. This leads to two > problems: > > - the command-line code keeps its own separate got_rev_arg flag; this > isn't wrong, but it's confusing and an extra maintenance burden > > - even specifically-named rev arguments might end up not adding any > pending objects: if --ignore-missing is set, then specifying a > missing object is a noop rather than an error. Yup, nicely described. > diff --git a/revision.c b/revision.c > index 96630e3186..08c2ad23af 100644 > --- a/revision.c > +++ b/revision.c The patch of course looks straightforward and good. Thanks.