Browse Source

git-svn: use SVN 1.7 to canonicalize when possible

No change on SVN 1.6.  The tests all pass with SVN 1.6 if
canonicalize_url() does nothing, so tests passing doesn't have
much meaning.

The tests are so messed up right now with SVN 1.7 it isn't really
useful to check.  They will be useful later.

[ew: commit title]

Signed-off-by: Eric Wong <normalperson@yhbt.net>
maint
Michael G. Schwern 13 years ago committed by Eric Wong
parent
commit
82009f3048
  1. 16
      perl/Git/SVN/Utils.pm

16
perl/Git/SVN/Utils.pm

@ -3,6 +3,8 @@ package Git::SVN::Utils;
use strict; use strict;
use warnings; use warnings;


use SVN::Core;

use base qw(Exporter); use base qw(Exporter);


our @EXPORT_OK = qw( our @EXPORT_OK = qw(
@ -100,6 +102,20 @@ API as a URL.
=cut =cut


sub canonicalize_url { sub canonicalize_url {
my $url = shift;

# The 1.7 way to do it
if ( defined &SVN::_Core::svn_uri_canonicalize ) {
return SVN::_Core::svn_uri_canonicalize($url);
}
# There wasn't a 1.6 way to do it, so we do it ourself.
else {
return _canonicalize_url_ourselves($url);
}
}


sub _canonicalize_url_ourselves {
my ($url) = @_; my ($url) = @_;
$url =~ s#^([^:]+://[^/]*/)(.*)$#$1 . canonicalize_path($2)#e; $url =~ s#^([^:]+://[^/]*/)(.*)$#$1 . canonicalize_path($2)#e;
return $url; return $url;

Loading…
Cancel
Save