diff options
author | Jeff King <peff@peff.net> | 2017-08-02 18:25:27 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-08-02 15:45:20 -0700 |
commit | 7ba826290aa448bb9d0d45c3bb4b34905b741013 (patch) | |
tree | e705e66e885f12b2a5adba9c01cfb03b3f8673dc | |
parent | 0c5dc7431a01d325e815ce722d80ad549a41e632 (diff) | |
download | git-7ba826290aa448bb9d0d45c3bb4b34905b741013.tar.gz |
revision: add rev_input_given flag
Normally a caller that invokes setup_revisions() has to
check rev.pending to see if anything was actually queued for
the traversal. But they can't tell the difference between
two cases:
1. The user gave us no tip from which to start a
traversal.
2. The user tried to give us tips via --glob, --all, etc,
but their patterns ended up being empty.
Let's set a flag in the rev_info struct that callers can use
to tell the difference. We can set this from the
init_all_refs_cb() function. That's a little funny because
it's not exactly about initializing the "cb" struct itself.
But that function is the common setup place for doing
pattern traversals that is used by --glob, --all, etc.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | revision.c | 1 | ||||
-rw-r--r-- | revision.h | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/revision.c b/revision.c index 6603af9444..08d5806b8a 100644 --- a/revision.c +++ b/revision.c @@ -1168,6 +1168,7 @@ static void init_all_refs_cb(struct all_refs_cb *cb, struct rev_info *revs, { cb->all_revs = revs; cb->all_flags = flags; + revs->rev_input_given = 1; } void clear_ref_exclusion(struct string_list **ref_excludes_p) diff --git a/revision.h b/revision.h index f96e7f7f49..bc18487d6f 100644 --- a/revision.h +++ b/revision.h @@ -71,6 +71,13 @@ struct rev_info { const char *def; struct pathspec prune_data; + /* + * Whether the arguments parsed by setup_revisions() included any + * "input" revisions that might still have yielded an empty pending + * list (e.g., patterns like "--all" or "--glob"). + */ + int rev_input_given; + /* topo-sort */ enum rev_sort_order sort_order; |