diff options
author | Eric Wong <normalperson@yhbt.net> | 2008-03-14 11:01:23 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-03-14 17:54:28 -0700 |
commit | ed0b9d43097349f4d730472673c07f427480e14a (patch) | |
tree | f406a5524717b3a943ee59e5ddb42f161f91873f /git-svn.perl | |
parent | 1b56bc9a1545902db64b8bdce48a499900acfe0b (diff) | |
download | git-ed0b9d43097349f4d730472673c07f427480e14a.tar.gz git-ed0b9d43097349f4d730472673c07f427480e14a.tar.xz |
git-svn: don't blindly append '*' to branch/tags config
Previously, git-svn would blindly append '*' even if it was specified by
the user during initialization (for certain SVN setups, it is
necessary).
Now, the following command will work correctly:
git svn init -T trunk/docutils \
-t 'tags/*/docutils' \
-b 'branches/*/docutils' \
svn://svn.berlios.de/docutils
Thanks to martin f krafft for the bug report:
> My git-svn target configuration is
>
> [svn-remote "svn"]
> url = svn://svn.berlios.de/docutils
> fetch = trunk/docutils:refs/remotes/trunk
> branches = branches/*/docutils:refs/remotes/*
> tags = tags/*/docutils:refs/remotes/tags/*
>
> Unfortunately, when I run
>
> git-svn init -T trunk/docutils -t 'tags/*/docutils'
> -b 'branches/*/docutils'
>
> then I get (note the two asterisks on the left hand side):
>
> branches = branches/*/docutils/*:refs/remotes/*
> tags = tags/*/docutils/*:refs/remotes/tags/*
>
> I took a brief stab at the code but I can't even figure out where
> the /* is appended, so I defer to you.
>
> It should be trivial to keep git-svn from appending /* if the left
> side already contains an asterisk.
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Tested-by: martin f krafft <madduck@madduck.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-svn.perl')
-rwxr-xr-x | git-svn.perl | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/git-svn.perl b/git-svn.perl index 38e1d5944..e0434099c 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -955,9 +955,10 @@ sub complete_url_ls_init { "wanted to set to: $gs->{url}\n"; } command_oneline('config', $k, $gs->{url}) unless $orig_url; - my $remote_path = "$ra->{svn_path}/$repo_path/*"; + my $remote_path = "$ra->{svn_path}/$repo_path"; $remote_path =~ s#/+#/#g; $remote_path =~ s#^/##g; + $remote_path .= "/*" if $remote_path !~ /\*/; my ($n) = ($switch =~ /^--(\w+)/); if (length $pfx && $pfx !~ m#/$#) { die "--prefix='$pfx' must have a trailing slash '/'\n"; |