[PATCH] git-svn: remove leading slashes from fetch lines in the generate config
From: Eric Wong <hidden>
Date: 2016-06-15 22:43:21
Subsystem:
the rest · Maintainer:
Linus Torvalds
We were previously sensitive to leading slashes in the fetch lines and incorrectly writing them to the config if the user used them (needlessly) in the command-line. This fixes the issue and allows us to play nicely with legacy configs that have leading slashes in fetch lines. Thanks to Bradford Smith for figuring this out for me:
This works: git-svn clone https://my.server.net/repos/path/ -Ttrunk/testing -ttags/testing -bbranches/testing testing This doesn't: git-svn clone https://my.server.net/repos/path -T/trunk/testing -t/tags/testing -b/branches/testing testing
Signed-off-by: Eric Wong <redacted> --- git-svn.perl | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/git-svn.perl b/git-svn.perl
index b3dffcc..299b40f 100755
--- a/git-svn.perl
+++ b/git-svn.perl@@ -1026,7 +1026,9 @@ sub read_all_remotes { my $r = {}; foreach (grep { s/^svn-remote\.// } command(qw/config -l/)) { if (m!^(.+)\.fetch=\s*(.*)\s*:\s*refs/remotes/(.+)\s*$!) { - $r->{$1}->{fetch}->{$2} = $3; + my ($remote, $local_ref, $remote_ref) = ($1, $2, $3); + $local_ref =~ s{^/}{}; + $r->{$remote}->{fetch}->{$local_ref} = $remote_ref; } elsif (m!^(.+)\.url=\s*(.*)\s*$!) { $r->{$1}->{url} = $2; } elsif (m!^(.+)\.(branches|tags)=
@@ -1146,6 +1148,7 @@ sub init_remote_config { unless ($no_write) { command_noisy('config', "svn-remote.$self->{repo_id}.url", $url); + $self->{path} =~ s{^/}{}; command_noisy('config', '--add', "svn-remote.$self->{repo_id}.fetch", "$self->{path}:".$self->refname);
--
Eric Wong