Bert Huijben wrote:
> I think SVN::Ra->new() should have escaped this argument for you by
> canonicalizing the argument before passing the value into the core library.
Makes sense. I tried the patch below and a variant that calls
svn_ra_open with a canonicalized url but leaves $self->{url} alone,
but neither seems to be close enough to the old semantics to get the
git-svn.perl test suite working well. The test suite ends up tripping
more assertions, like this one:
svn: E235000: In file
'/home/jrn/src/subversion/subversion/libsvn_wc/update_editor.c' line 1582:
assertion failed (action == svn_wc_conflict_action_edit || action ==
svn_wc_conflict_action_delete || action == svn_wc_conflict_action_replace)
Aborted (core dumped)
I'll experiment more. Thanks for explaining.
[[[
* subversion/bindings/swig/perl/native/Ra.pm
(new): Canonicalize url parameter if it is not already canonical.
]]]
Index: subversion/bindings/swig/perl/native/Ra.pm
===================================================================
--- subversion/bindings/swig/perl/native/Ra.pm (revision 1215430)
+++ subversion/bindings/swig/perl/native/Ra.pm (working copy)
@@ -526,6 +526,7 @@ sub new {
# instantiate callbacks
$callback = (delete $self->{callback}) || $callback->new(auth =>
$self->{auth});
+ $self->{url} = SVN::_Core::svn_uri_canonicalize($self->{url});
$self->{session} = SVN::_Ra::svn_ra_open($self->{url}, $callback,
$self->{config} || {}, $pool);
return $self;
}