shortlog: allow --exclude=<glob> to be passed

These two commands are supposed to be equivalent: $ git log --exclude=refs/notes/\* --all --no-merges --since=2.days | git shortlog $ git shortlog --exclude=refs/notes/\* --all --no-merges --since=2.days However, the latter does not understand the ref-exclusion command line option, even though other options understood by "log", such as "--all" and "--no-merges", are understood. This was because e7b432c5 (revision: introduce --exclude=<glob> to tame wildcards, 2013-08-30) did not wire the new option fully to the machinery. A new option understood by handle_revision_pseudo_opt() must be told to handle_revision_opt() as well. Signed-off-by: Junio C Hamano <gitster@pobox.com>

Junio C Hamano committed May 30, 2014 at 12:57 UTC eb077745a4f22183faec93e46e053ccddabcc88b
2 files changed +7
revision.c
+1
@@ -1612,6 +1612,7 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
1612 !strcmp(arg, "--reflog") || !strcmp(arg, "--not") ||
1613 !strcmp(arg, "--no-walk") || !strcmp(arg, "--do-walk") ||
1614 !strcmp(arg, "--bisect") || !prefixcmp(arg, "--glob=") ||
1615 + !prefixcmp(arg, "--exclude=") ||
1616 !prefixcmp(arg, "--branches=") || !prefixcmp(arg, "--tags=") ||
1617 !prefixcmp(arg, "--remotes=") || !prefixcmp(arg, "--no-walk="))
1618 {
t/t4201-shortlog.sh
+6
@@ -172,4 +172,10 @@ test_expect_success 'shortlog encoding' '
172 git shortlog HEAD~2.. > out &&
173 test_cmp expect out'
174
175 +test_expect_success 'shortlog with revision pseudo options' '
176 + git shortlog --all &&
177 + git shortlog --branches &&
178 + git shortlog --exclude=refs/heads/m* --all
179 +'
180 +
181 test_done