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