summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2018-11-13 13:37:23 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-11-13 13:37:23 (GMT)
commit20d04b4419559825160c267fb05cc5c683fbece8 (patch)
tree32e151a0e21610511ebca414dc781b641cea5f2f
parent67cf2fa3d5e2a81c535db22045eb06ba878c5f9f (diff)
parent5221048092b7a2359579b56bde4134c420e5555d (diff)
downloadgit-20d04b4419559825160c267fb05cc5c683fbece8.zip
git-20d04b4419559825160c267fb05cc5c683fbece8.tar.gz
git-20d04b4419559825160c267fb05cc5c683fbece8.tar.bz2
Merge branch 'ag/rev-parse-all-exclude-fix'
"git rev-parse --exclude=* --branches --branches" (i.e. first saying "add only things that do not match '*' out of all branches" and then adding all branches, without any exclusion this time") worked as expected, but "--exclude=* --all --all" did not work the same way, which has been fixed. * ag/rev-parse-all-exclude-fix: rev-parse: clear --exclude list after 'git rev-parse --all'
-rw-r--r--builtin/rev-parse.c1
-rwxr-xr-xt/t6018-rev-list-glob.sh12
2 files changed, 13 insertions, 0 deletions
diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c
index 455f622..10d4dab 100644
--- a/builtin/rev-parse.c
+++ b/builtin/rev-parse.c
@@ -765,6 +765,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
}
if (!strcmp(arg, "--all")) {
for_each_ref(show_reference, NULL);
+ clear_ref_exclusion(&ref_excludes);
continue;
}
if (skip_prefix(arg, "--disambiguate=", &arg)) {
diff --git a/t/t6018-rev-list-glob.sh b/t/t6018-rev-list-glob.sh
index db8a783..270e579 100755
--- a/t/t6018-rev-list-glob.sh
+++ b/t/t6018-rev-list-glob.sh
@@ -141,6 +141,18 @@ test_expect_success 'rev-parse accumulates multiple --exclude' '
compare rev-parse "--exclude=refs/remotes/* --exclude=refs/tags/* --all" --branches
'
+test_expect_success 'rev-parse --branches clears --exclude' '
+ compare rev-parse "--exclude=* --branches --branches" "--branches"
+'
+
+test_expect_success 'rev-parse --tags clears --exclude' '
+ compare rev-parse "--exclude=* --tags --tags" "--tags"
+'
+
+test_expect_success 'rev-parse --all clears --exclude' '
+ compare rev-parse "--exclude=* --all --all" "--all"
+'
+
test_expect_success 'rev-list --glob=refs/heads/subspace/*' '
compare rev-list "subspace/one subspace/two" "--glob=refs/heads/subspace/*"