From: Michael G. Schwern <schwern@xxxxxxxxx> Date: Fri, 27 Jul 2012 13:00:48 -0700 This patch only touches cases where the path field is written to using $gs->{path}. Cases where the path is set directly in a hash literal will be addressed separately. [jn: split from a larger patch] Signed-off-by: Eric Wong <normalperson@xxxxxxxx> Signed-off-by: Jonathan Nieder <jrnieder@xxxxxxxxx> --- perl/Git/SVN.pm | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/perl/Git/SVN.pm b/perl/Git/SVN.pm index 02d5abc0..826a7fa6 100644 --- a/perl/Git/SVN.pm +++ b/perl/Git/SVN.pm @@ -315,11 +315,11 @@ sub init_remote_config { "$url => $min_url\n"; } my $old_path = $self->path; - $self->{path} = $url; - $self->{path} =~ s!^\Q$min_url\E(/|$)!!; + $url =~ s!^\Q$min_url\E(/|$)!!; if (length $old_path) { - $self->{path} .= "/$old_path"; + $url .= "/$old_path"; } + $self->path($url); $url = $min_url; } } @@ -343,8 +343,10 @@ sub init_remote_config { unless ($no_write) { command_noisy('config', "svn-remote.$self->{repo_id}.url", $url); - $self->{path} =~ s{^/}{}; - $self->{path} =~ s{%([0-9A-F]{2})}{chr hex($1)}ieg; + my $path = $self->path; + $path =~ s{^/}{}; + $path =~ s{%([0-9A-F]{2})}{chr hex($1)}ieg; + $self->path($path); command_noisy('config', '--add', "svn-remote.$self->{repo_id}.fetch", $self->path.":".$self->refname); @@ -435,17 +437,19 @@ sub new { } } my $self = _new($class, $repo_id, $ref_id, $path); - if (!defined $self->path || !length $self->path) { + $path = $self->path; + if (!defined $path || !length $path) { my $fetch = command_oneline('config', '--get', "svn-remote.$repo_id.fetch", ":$ref_id\$") or die "Failed to read \"svn-remote.$repo_id.fetch\" ", "\":$ref_id\$\" in config\n"; - ($self->{path}, undef) = split(/\s*:\s*/, $fetch); + ($path, undef) = split(/\s*:\s*/, $fetch); } - $self->{path} =~ s{/+}{/}g; - $self->{path} =~ s{\A/}{}; - $self->{path} =~ s{/\z}{}; + $path =~ s{/+}{/}g; + $path =~ s{\A/}{}; + $path =~ s{/\z}{}; + $self->path($path); $self->{url} = command_oneline('config', '--get', "svn-remote.$repo_id.url") or die "Failed to read \"svn-remote.$repo_id.url\" in config\n"; -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html