Re: [PATCH 6/7] Switch path canonicalization to use the SVN API.
From: Jonathan Nieder <hidden>
Date: 2016-06-15 22:54:22
Michael G. Schwern wrote:
quoted hunk ↗ jump to hunk
--- a/perl/Git/SVN/Utils.pm +++ b/perl/Git/SVN/Utils.pm@@ -86,6 +86,27 @@ sub _collapse_dotdot { sub canonicalize_path { + my $path = shift; + + # The 1.7 way to do it + if ( defined &SVN::_Core::svn_dirent_canonicalize ) { + $path = _collapse_dotdot($path); + return SVN::_Core::svn_dirent_canonicalize($path); + } + # The 1.6 way to do it + elsif ( defined &SVN::_Core::svn_path_canonicalize ) { + $path = _collapse_dotdot($path); + return SVN::_Core::svn_path_canonicalize($path); + } + # No SVN API canonicalization is available, do it ourselves + else {
When would this "else" case trip? Would it be safe to make it
return an error message, or even to do something like the following?
sub canonicalize_path {
my $path = shift;
$path = _collapse_dotdot($path);
# Subversion 1.7 split svn_path_canonicalize() into
# svn_dirent_canonicalize() and svn_uri_canonicalize().
if (!defined &SVN::_Core::svn_dirent_canonicalize) {
return SVN::_Core::svn_path_canonicalize($path);
}
return SVN::_Core::svn_dirent_canonicalize($path);
}
Thanks,
Jonathan