Hi, I've hit the following assertion in svnmucc:
svnmucc: subversion/libsvn_subr/dirent_uri.c:1373: svn_uri_get_longest_ancestor: Assertion `svn_uri_is_canonical(uri1, ((void *)0))' failed. Aborted (core dumped) The assertion was triggered when svnmucc was supplied with a script file that had inconsistent URL specifications (it was cut-and-pasted from two different scripts, one of which referred to SVN server by IP and the other by its domain name). It can be easily reproduced with the following script, for example (no repository setup is needed, as this assertion is triggered even before svnmucc contacts the repository): mkdir svn://localhost/svn/branches/try cp 1234 svn://127.0.0.1/svn/trunk/foo svn://localhost/svn/branches/try/foo I am not sure if it is a valid use case, but at the very least, the error message should probably be me a bit more user-friendly than an assertion. Patch erring out gracefully attached. Regards, Alexey.
Index: subversion/svnmucc/svnmucc.c =================================================================== --- subversion/svnmucc/svnmucc.c (revision 1508998) +++ subversion/svnmucc/svnmucc.c (working copy) @@ -1433,7 +1433,14 @@ if (! anchor) anchor = url; else - anchor = svn_uri_get_longest_ancestor(anchor, url, pool); + { + anchor = svn_uri_get_longest_ancestor(anchor, url, pool); + if (!anchor[0]) + handle_error(svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL, + "URLs in the action list do not " + "share a common ancestor\n"), + pool); + } if ((++i == action_args->nelts) && (j + 1 < num_url_args)) insufficient(pool);