Re: [PATCH] revision: set rev_input_given in handle_revision_arg()
From: Junio C Hamano <hidden>
Date: 2020-08-26 20:20:18
Jeff King [off-list ref] 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.
quoted hunk
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.