rev-parse: clear --exclude list after 'git rev-parse --all'
Commit [1] added the --exclude option to revision.c. The --all, --branches, --tags, --remotes, and --glob options clear the exclude list. Shortly therafter, commit [2] added the same to 'git rev-parse', but without clearing the exclude list for the --all option. [1] e7b432c52 ("revision: introduce --exclude=<glob> to tame wildcards", 2013-08-30) [2] 9dc01bf06 ("rev-parse: introduce --exclude=<glob> to tame wildcards", 2013-11-01) Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Andreas Gruenbacher committed
Oct 23, 2018 at 21:17 UTC
5221048092b7a2359579b56bde4134c420e5555d
2 files changed
+13
builtin/rev-parse.c
+1
@@ -760,6 +760,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
760
}
761
if (!strcmp(arg, "--all")) {
762
for_each_ref(show_reference, NULL);
763
+ clear_ref_exclusion(&ref_excludes);
764
continue;
765
}
766
if (skip_prefix(arg, "--disambiguate=", &arg)) {
t/t6018-rev-list-glob.sh
+12
@@ -141,6 +141,18 @@ test_expect_success 'rev-parse accumulates multiple --exclude' '
141
compare rev-parse "--exclude=refs/remotes/* --exclude=refs/tags/* --all" --branches
142
'
143
144
+test_expect_success 'rev-parse --branches clears --exclude' '
145
+ compare rev-parse "--exclude=* --branches --branches" "--branches"
146
+'
147
+
148
+test_expect_success 'rev-parse --tags clears --exclude' '
149
+ compare rev-parse "--exclude=* --tags --tags" "--tags"
150
+'
151
+
152
+test_expect_success 'rev-parse --all clears --exclude' '
153
+ compare rev-parse "--exclude=* --all --all" "--all"
154
+'
155
+
156
test_expect_success 'rev-list --glob=refs/heads/subspace/*' '
157
158
compare rev-list "subspace/one subspace/two" "--glob=refs/heads/subspace/*"