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>
This commit is contained in:
parent
91e6e0c56c
commit
82009f3048
@ -3,6 +3,8 @@ package Git::SVN::Utils;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use SVN::Core;
|
||||
|
||||
use base qw(Exporter);
|
||||
|
||||
our @EXPORT_OK = qw(
|
||||
@ -100,6 +102,20 @@ API as a URL.
|
||||
=cut
|
||||
|
||||
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) = @_;
|
||||
$url =~ s#^([^:]+://[^/]*/)(.*)$#$1 . canonicalize_path($2)#e;
|
||||
return $url;
|
||||
|
Loading…
Reference in New Issue
Block a user