Junio C Hamano <[email protected]> wrote:
> Victor Leschuk <[email protected]> writes:
> > +   branches = branches/release_*:refs/remotes/project-a/branches/release_*
> 
> Hmph, if you are going this route, I wonder if there is a reason to
> limit yourself only to "prefix".  Would allowing something like this:
> 
>       branches = branches/pre*post:refs/remotes/project-a/branches/*
> 
> i.e., loosening the rule to allow at most one asterisk anywhere on
> the left hand side of the colon, and require the same number of
> asterisks as the left hand side has on the right hand side of the
> colon, be too lax and hurt the users?

Seems doable.  Not sure about the consequences, yet...

I also think the $1 truthiness check was unnecessary and even
problematic if we need to encounter a "0" as a path component.
And using the path component will need to be quoted as we do below
with the brace case (showing with diff -U6)

Perhaps this? (untested)

diff --git a/perl/Git/SVN/GlobSpec.pm b/perl/Git/SVN/GlobSpec.pm
index a136090..7961a78 100644
--- a/perl/Git/SVN/GlobSpec.pm
+++ b/perl/Git/SVN/GlobSpec.pm
@@ -12,16 +12,17 @@ sub new {
                                "(e.g. '*' or '*/*/*') is supported: '$glob'\n";
        for my $part (split(m|/|, $glob)) {
                if ($pattern_ok && $part =~ /[{}]/ &&
                         $part !~ /^\{[^{}]+\}/) {
                        die "Invalid pattern in '$glob': $part\n";
                }
-               if ($part =~ /(\w*)\*/) {
+               if ($part =~ /(\w*)\*(\w*)/) {
+                       my ($l, $r) = ($1, $2);
                        die $die_msg if $state eq "right";
                        $state = "pattern";
-                       my $pat = $1 ? "${1}[^/]+" : "[^/]*";
+                       my $pat = quotemeta($l) . '[^/]*'. quotemeta($r);
                        push(@patterns, $pat);
                } elsif ($pattern_ok && $part =~ /^\{(.*)\}$/) {
                        die $die_msg if $state eq "right";
                        $state = "pattern";
                        my $p = quotemeta($1);
                        $p =~ s/\\,/|/g;
-- 
EW
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to