diff options
author | Jacob Keller <jacob.keller@gmail.com> | 2015-07-22 14:05:33 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-07-27 09:21:31 -0700 |
commit | cd377f45c9d06e8ab3e87d5a687ed22ab34e1c48 (patch) | |
tree | 6a159b29d6f32850e05efeaf5c8f07491cf83177 /t/t1402-check-ref-format.sh | |
parent | 53a8555ee4db43534990126a14f0840f92aff898 (diff) | |
download | git-cd377f45c9d06e8ab3e87d5a687ed22ab34e1c48.tar.gz git-cd377f45c9d06e8ab3e87d5a687ed22ab34e1c48.tar.xz |
refs: loosen restriction on wildcard "*" refspecs
Loosen restrictions on refspecs by allowing patterns that have a "*"
within a component instead of only as the whole component.
Remove the logic to accept a single "*" as a whole component from
check_refname_format(), and implement an extended form of that logic
in check_refname_component(). Pass the pointer to the flags argument
to the latter, as it has to clear REFNAME_REFSPEC_PATTERN bit when
it sees "*".
Teach check_refname_component() function to allow an asterisk "*"
only when REFNAME_REFSPEC_PATTERN is set in the flags, and drop the
bit after seeing a "*", to ensure that one side of a refspec
contains at most one asterisk.
This will allow us to accept refspecs such as `for/bar*:foo/baz*`.
Any refspec which functioned before shall continue functioning with
the new logic.
Signed-off-by: Jacob Keller <jacob.keller@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t1402-check-ref-format.sh')
-rwxr-xr-x | t/t1402-check-ref-format.sh | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/t/t1402-check-ref-format.sh b/t/t1402-check-ref-format.sh index e5dc62e9e..0790edf60 100755 --- a/t/t1402-check-ref-format.sh +++ b/t/t1402-check-ref-format.sh @@ -62,9 +62,11 @@ invalid_ref 'heads/foo\bar' invalid_ref "$(printf 'heads/foo\t')" invalid_ref "$(printf 'heads/foo\177')" valid_ref "$(printf 'heads/fu\303\237')" -invalid_ref 'heads/*foo/bar' --refspec-pattern -invalid_ref 'heads/foo*/bar' --refspec-pattern -invalid_ref 'heads/f*o/bar' --refspec-pattern +valid_ref 'heads/*foo/bar' --refspec-pattern +valid_ref 'heads/foo*/bar' --refspec-pattern +valid_ref 'heads/f*o/bar' --refspec-pattern +invalid_ref 'heads/f*o*/bar' --refspec-pattern +invalid_ref 'heads/foo*/bar*' --refspec-pattern ref='foo' invalid_ref "$ref" |