From: Eric Wong <normalperson@yhbt.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: Git Mailing List <git@vger.kernel.org>, Marcus Griep <marcus@griep.us>
Subject: [PATCH 1/3] Fix multi-glob assertion in git-svn
Date: Fri, 8 Aug 2008 01:56:55 -0700 [thread overview]
Message-ID: <20080808085655.GA9479@untitled> (raw)
In-Reply-To: <20080808084025.GA8718@untitled>
From: Marcus Griep <marcus@griep.us>
Date: Thu, 7 Aug 2008 11:34:01 -0400
Subject: [PATCH 1/3] 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>
---
Oops, resent as I forgot to change the From: header
git-svn.perl | 5 +++--
t/t9108-git-svn-glob.sh | 21 +++++++++++++++++++++
2 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/git-svn.perl b/git-svn.perl
index 06a82c8..503a7c9 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";
diff --git a/t/t9108-git-svn-glob.sh b/t/t9108-git-svn-glob.sh
index f6f71d0..a6f88bd 100755
--- a/t/t9108-git-svn-glob.sh
+++ b/t/t9108-git-svn-glob.sh
@@ -83,4 +83,25 @@ test_expect_success 'test left-hand-side only globbing' '
cmp expect.two output.two
'
+echo "Only one '*' wildcard expansion is supported (got 2): 'branches/*/*'" \
+ > expect.three
+echo "" >> expect.three
+
+test_expect_success 'test disallow multi-globs' '
+ git config --add svn-remote.three.url "$svnrepo" &&
+ git config --add svn-remote.three.fetch \
+ trunk:refs/remotes/three/trunk &&
+ git config --add svn-remote.three.branches \
+ "branches/*/*:refs/remotes/three/branches/*" &&
+ git config --add svn-remote.three.tags \
+ "tags/*/*:refs/remotes/three/tags/*" &&
+ cd tmp &&
+ echo "try try" >> tags/end/src/b/readme &&
+ poke tags/end/src/b/readme &&
+ svn commit -m "try to try"
+ cd .. &&
+ test_must_fail git-svn fetch three 2> stderr.three &&
+ cmp expect.three stderr.three
+ '
+
test_done
--
1.6.0.rc2.4.g0643f
next prev parent reply other threads:[~2008-08-08 8:57 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-06 19:58 [PATCH 2/2] git-svn: Allow deep branch names by supporting multi-globs Marcus Griep
2008-08-07 9:00 ` Eric Wong
2008-08-07 15:34 ` [PATCH v2 0/2] git-svn multi-glob fix and extension Marcus Griep
2008-08-07 15:34 ` [PATCH v2 1/2] Fix multi-glob assertion in git-svn Marcus Griep
2008-08-07 15:34 ` [PATCH v2 2/2] git-svn: Allow deep branch names by supporting multi-globs Marcus Griep
2008-08-08 8:40 ` [PATCH v2 0/2] git-svn multi-glob fix and extension Eric Wong
2008-08-08 8:41 ` [PATCH 1/3] Fix multi-glob assertion in git-svn Eric Wong
2008-08-08 9:41 ` Junio C Hamano
2008-08-09 7:28 ` Eric Wong
2008-08-09 7:48 ` Junio C Hamano
2008-08-08 8:41 ` [PATCH 2/3] git-svn: Allow deep branch names by supporting multi-globs Eric Wong
2008-08-08 8:41 ` [PATCH 3/3] git-svn: wrap long lines in a few places Eric Wong
2008-08-08 8:56 ` Eric Wong [this message]
2008-08-08 8:57 ` [PATCH 2/3] git-svn: Allow deep branch names by supporting multi-globs Eric Wong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080808085655.GA9479@untitled \
--to=normalperson@yhbt.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=marcus@griep.us \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.