From: Michael G. Schwern <schw...@pobox.com>
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 <normalper...@yhbt.net>
Signed-off-by: Jonathan Nieder <jrnie...@gmail.com>
---
 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to