[Resending to dev@, as it is probably more appropriate audience for the patch]
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 a bit more user-friendly than an assertion. Patch making svnmucc err out gracefully attached. [[[ * subversion/svnmucc/svnmucc.c (main): Check for URLs not having a common ancestor and emit an error message instead of failing an assertion later. ]]] 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);