Browse Source

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'
maint
Junio C Hamano 6 years ago
parent
commit
20d04b4419
  1. 1
      builtin/rev-parse.c
  2. 12
      t/t6018-rev-list-glob.sh

1
builtin/rev-parse.c

@ -765,6 +765,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) @@ -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)) {

12
t/t6018-rev-list-glob.sh

@ -141,6 +141,18 @@ test_expect_success 'rev-parse accumulates multiple --exclude' ' @@ -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/*"

Loading…
Cancel
Save