Consider
svnadmin create repo
svnmucc -mm propset svn:externals 'foo://bar::/ X' ''
svn co file://`pwd`/repo wc
1.8 gives a warning on checkout:
svn: warning: W170000: Illegal repository URL 'foo://bar::'
but 1.9 gives a SEGV:
svn: ../src/subversion/libsvn_subr/dirent_uri.c:1529: uri_skip_ancestor:
Assertion `svn_uri_is_canonical(child_uri, NULL)' failed.
svn_uri_is_canonical() is complaining about the final "::" but this
string is the output of svn_uri_canonicalize(). I think Subversion code
should be able to rely on logic like this:
assert(svn_uri_is_canonical(svn_uri_canonicalize(str, pool)));
or perhaps that only applies when
if (svn_path_is_url(str))
assert(svn_uri_is_canonical(svn_uri_canonicalize(str, pool)));
Is that right?
These strings returned by svn_uri_canonicalize() fail
svn_uri_is_canonical():
foo://bar::
foo://bar:123x
foo://bar:-
How should strings like this be handled?
--
Philip