diff options
author | Marcus Griep <marcus@griep.us> | 2008-08-08 01:41:56 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-08-08 16:23:32 -0700 |
commit | b47ddefe02945f8746c642219450245cf83ed130 (patch) | |
tree | 35180e7b69e1d4de256f9c66e48efb9b6261b420 /git-svn.perl | |
parent | 261044e85ddac3de48dc74dd9c416c95147022ad (diff) | |
download | git-b47ddefe02945f8746c642219450245cf83ed130.tar.gz |
Fix multi-glob assertion in git-svn
Fixes bad regex match check for multiple globs (would always return
one glob regardless of actual number).
[ew: fixed a bashism in the test and some minor line-wrapping]
Signed-off-by: Marcus Griep <marcus@griep.us>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-svn.perl')
-rwxr-xr-x | git-svn.perl | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/git-svn.perl b/git-svn.perl index 06a82c80ce..503a7c900a 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -4915,14 +4915,15 @@ sub new { my ($class, $glob) = @_; my $re = $glob; $re =~ s!/+$!!g; # no need for trailing slashes - my $nr = ($re =~ s!^(.*)\*(.*)$!\(\[^/\]+\)!g); - my ($left, $right) = ($1, $2); + my $nr = $re =~ tr/*/*/; if ($nr > 1) { die "Only one '*' wildcard expansion ", "is supported (got $nr): '$glob'\n"; } elsif ($nr == 0) { die "One '*' is needed for glob: '$glob'\n"; } + $re =~ s!^(.*)\*(.*)$!\(\[^/\]+\)!g; + my ($left, $right) = ($1, $2); $re = quotemeta($left) . $re . quotemeta($right); if (length $left && !($left =~ s!/+$!!g)) { die "Missing trailing '/' on left side of: '$glob' ($left)\n"; |