aboutsummaryrefslogtreecommitdiff
path: root/git-svn.perl
diff options
context:
space:
mode:
authorMarcus Griep <marcus@griep.us>2008-08-08 01:41:56 -0700
committerJunio C Hamano <gitster@pobox.com>2008-08-08 16:23:32 -0700
commitb47ddefe02945f8746c642219450245cf83ed130 (patch)
tree35180e7b69e1d4de256f9c66e48efb9b6261b420 /git-svn.perl
parent261044e85ddac3de48dc74dd9c416c95147022ad (diff)
downloadgit-b47ddefe02945f8746c642219450245cf83ed130.tar.gz
git-b47ddefe02945f8746c642219450245cf83ed130.tar.xz
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-xgit-svn.perl5
1 files changed, 3 insertions, 2 deletions
diff --git a/git-svn.perl b/git-svn.perl
index 06a82c80c..503a7c900 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";