diff options
author | Jonathan Nieder <jrnieder@gmail.com> | 2011-04-21 05:48:24 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-04-21 10:56:39 -0700 |
commit | 0fc63ec4e7291361b59e12433e5c07117951cf19 (patch) | |
tree | 80f1dc27d40741210cf7799e125f8af3f824180a /revision.c | |
parent | f6aca0dc4d6b7ed9bf2bff399e3fcb47eafdce4b (diff) | |
download | git-0fc63ec4e7291361b59e12433e5c07117951cf19.tar.gz |
revisions: allow --glob and friends in parse_options-enabled commands
As v1.6.0-rc2~42 (2008-07-31) explains, even pseudo-options like --not
and --glob that need to be parsed in order with revisions should be
marked handled by handle_revision_opt to avoid an error when
parse_revision_opt callers like "git shortlog" encounter them.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'revision.c')
-rw-r--r-- | revision.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/revision.c b/revision.c index c9b1e32234..238976466d 100644 --- a/revision.c +++ b/revision.c @@ -1178,7 +1178,9 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg !strcmp(arg, "--tags") || !strcmp(arg, "--remotes") || !strcmp(arg, "--reflog") || !strcmp(arg, "--not") || !strcmp(arg, "--no-walk") || !strcmp(arg, "--do-walk") || - !strcmp(arg, "--bisect")) + !strcmp(arg, "--bisect") || !prefixcmp(arg, "--glob=") || + !prefixcmp(arg, "--branches=") || !prefixcmp(arg, "--tags=") || + !prefixcmp(arg, "--remotes=")) { unkv[(*unkc)++] = arg; return 1; @@ -1534,6 +1536,16 @@ static int handle_revision_pseudo_opt(const char *submodule, const char *optarg; int argcount; + /* + * NOTE! + * + * Commands like "git shortlog" will not accept the options below + * unless parse_revision_opt queues them (as opposed to erroring + * out). + * + * When implementing your new pseudo-option, remember to + * register it in the list at the top of handle_revision_opt. + */ if (!strcmp(arg, "--all")) { handle_refs(submodule, revs, *flags, for_each_ref_submodule); handle_refs(submodule, revs, *flags, head_ref_submodule); |