Skip to content

Commit 20e024d

Browse files
committed
Make Git::SVN use an accessor for URLs internally.
So later it can do automatic canonicalization. A later patch will make other things use the accessor. No functional change here.
1 parent 0acf33e commit 20e024d

File tree

1 file changed

+30
-14
lines changed

1 file changed

+30
-14
lines changed

perl/Git/SVN.pm

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ sub init_remote_config {
351351
"svn-remote.$self->{repo_id}.fetch",
352352
$self->path.":".$self->refname);
353353
}
354-
$self->{url} = $url;
354+
$self->url($url);
355355
}
356356

357357
sub find_by_url { # repos_root and, path are optional
@@ -453,9 +453,10 @@ sub new {
453453
$path =~ s{/\z}{};
454454
$self->path($path);
455455
}
456-
$self->{url} = command_oneline('config', '--get',
457-
"svn-remote.$repo_id.url") or
456+
my $url = command_oneline('config', '--get',
457+
"svn-remote.$repo_id.url") or
458458
die "Failed to read \"svn-remote.$repo_id.url\" in config\n";
459+
$self->url(http://github.com/%3Cspan%20class=%22pl-smi%22%3E$url%3C/span%3E);
459460
$self->{pushurl} = eval { command_oneline('config', '--get',
460461
"svn-remote.$repo_id.pushurl") };
461462
$self->rebuild;
@@ -577,17 +578,18 @@ sub _set_svm_vars {
577578
my $path = $self->path;
578579
my %tried;
579580
while (length $path) {
580-
unless ($tried{"$self->{url}/$path"}) {
581+
my $try = $self->url . "/$path";
582+
unless ($tried{$try}) {
581583
return $ra if $self->read_svm_props($ra, $path, $r);
582-
$tried{"$self->{url}/$path"} = 1;
584+
$tried{$try} = 1;
583585
}
584586
$path =~ s#/?[^/]+$##;
585587
}
586588
die "Path: '$path' should be ''\n" if $path ne '';
587589
return $ra if $self->read_svm_props($ra, $path, $r);
588-
$tried{"$self->{url}/$path"} = 1;
590+
$tried{$self->url."/$path"} = 1;
589591

590-
if ($ra->{repos_root} eq $self->{url}) {
592+
if ($ra->{repos_root} eq $self->url) {
591593
die @err, (map { " $_\n" } keys %tried), "\n";
592594
}
593595

@@ -610,7 +612,7 @@ sub _set_svm_vars {
610612
if (!$ok) {
611613
die @err, (map { " $_\n" } keys %tried), "\n";
612614
}
613-
Git::SVN::Ra->new($self->{url});
615+
Git::SVN::Ra->new($self->url);
614616
}
615617

616618
sub svnsync {
@@ -677,7 +679,7 @@ sub ra_uuid {
677679
if (!$@ && $uuid && $uuid =~ /^([a-f\d\-]{30,})$/i) {
678680
$self->{ra_uuid} = $uuid;
679681
} else {
680-
die "ra_uuid called without URL\n" unless $self->{url};
682+
die "ra_uuid called without URL\n" unless $self->url;
681683
$self->{ra_uuid} = $self->ra->get_uuid;
682684
tmp_config('--add', $key, $self->{ra_uuid});
683685
}
@@ -701,7 +703,7 @@ sub repos_root {
701703

702704
sub ra {
703705
my ($self) = shift;
704-
my $ra = Git::SVN::Ra->new($self->{url});
706+
my $ra = Git::SVN::Ra->new($self->url);
705707
$self->_set_repos_root($ra->{repos_root});
706708
if ($self->use_svm_props && !$self->{svm}) {
707709
if ($self->no_metadata) {
@@ -926,13 +928,13 @@ sub rewrite_uuid {
926928

927929
sub metadata_url {
928930
my ($self) = @_;
929-
($self->rewrite_root || $self->{url}) .
931+
($self->rewrite_root || $self->url) .
930932
(length $self->path ? '/' . $self->path : '');
931933
}
932934

933935
sub full_url {
934936
my ($self) = @_;
935-
$self->{url} . (length $self->path ? '/' . $self->path : '');
937+
$self->url . (length $self->path ? '/' . $self->path : '');
936938
}
937939

938940
sub full_pushurl {
@@ -1436,7 +1438,7 @@ sub find_extra_svk_parents {
14361438
for my $ticket ( @tickets ) {
14371439
my ($uuid, $path, $rev) = split /:/, $ticket;
14381440
if ( $uuid eq $self->ra_uuid ) {
1439-
my $url = $self->{url};
1441+
my $url = $self->url;
14401442
my $repos_root = $url;
14411443
my $branch_from = $path;
14421444
$branch_from =~ s{^/}{};
@@ -1682,7 +1684,7 @@ sub find_extra_svn_parents {
16821684
# are now marked as merge, we can add the tip as a parent.
16831685
my @merges = split "\n", $mergeinfo;
16841686
my @merge_tips;
1685-
my $url = $self->{url};
1687+
my $url = $self->url;
16861688
my $uuid = $self->ra_uuid;
16871689
my %ranges;
16881690
for my $merge ( @merges ) {
@@ -2307,6 +2309,20 @@ sub path {
23072309
return $self->{path};
23082310
}
23092311

2312+
2313+
sub url {
2314+
my $self = shift;
2315+
2316+
if( @_ ) {
2317+
my $url = shift;
2318+
$self->{url} = $url;
2319+
return;
2320+
}
2321+
2322+
return $self->{url};
2323+
}
2324+
2325+
23102326
# for read-only access of old .rev_db formats
23112327
sub unlink_rev_db_symlink {
23122328
my ($self) = @_;

0 commit comments

Comments
 (0)