Daniel Shahaf wrote:
> Daniel Shahaf wrote on Thu, 20 Nov 2008 at 23:50 +0200:
>> Hyrum K. Wright wrote on Thu, 20 Nov 2008 at 15:28 -0600:
>>> lt-svnadmin: subversion/libsvn_subr/path.c:106: svn_path_join: Assertion
>>> `svn_path_is_canonical(component, pool)' failed.
>>> * adding path :
>>> tomcat/watchdog/trunk/src/clients/org/apache/jcheck/jsp/client/.: ...Aborted
>> ^^
>>
>> Note that the colon is literally part of the filename:
>>
>
> What happened: svn_path_is_canonical() called svn_uri_is_canonical(),
> which stopped on the colon as a scheme separator, and later considered
> the segment as '.' (rather than as '.:') and thus concluded the path was
> non-canonical.
>
> Try this patch:
>
> Index: subversion/libsvn_subr/dirent_uri.c
> ===================================================================
> --- subversion/libsvn_subr/dirent_uri.c (revision 34291)
> +++ subversion/libsvn_subr/dirent_uri.c (working copy)
> @@ -1083,6 +1083,7 @@ svn_uri_is_canonical(const char *uri)
> if (*uri == '\0')
> return TRUE;
>
> + /* Maybe parse hostname and scheme. */
> if (*ptr != '/')
> {
> while (*ptr && (*ptr != '/') && (*ptr != ':'))
> @@ -1121,6 +1122,12 @@ svn_uri_is_canonical(const char *uri)
> ptr++;
> }
> }
> + else
> + {
> + /* Didn't find a scheme; finish the segment. */
> + while (*ptr && *ptr != '/')
> + ptr++;
> + }
> }
>
> #if defined(WIN32) || defined(__CYGWIN__)
Daniel,
Thanks for looking into this, I'm testing the patch now. I'll let you know in a
few hours whether or not it works.
-Hyrum
Received on 2008-11-21 00:49:01 CET