Julian Foad wrote:
> On Thu, 2008-08-07 at 19:01 +0200, Stefan Küng wrote:
>
>> Could some of you please have a look at my earlier reports?
>>
>> http://subversion.tigris.org/servlets/BrowseList?list=dev&by=thread&from=668908
>>
>
> This one's a crash when using WC paths in the root of a drive. Lieven is
> working on the windows_dirents branch for a proper fix. For a
> back-portable short-term fix or improvement, I would expect it to be
> easy to debug where it is failing and at least change it to fail
> gracefully.
>
> If anyone can reproduce this under a debugger and show me where it's
> failing, I can take a look at the code and propose something.
>
It goes wrong in:
> subversion/libsvn_subr/commit.c:1390
> subversion/libsvn_subr/target.c:81 svn_path_condense_targets :
for (i = 1; i < targets->nelts; ++i)
{
const char *rel = APR_ARRAY_IDX(targets, i, const char *);
const char *absolute;
SVN_ERR(svn_path_get_absolute(&absolute, rel, pool));
APR_ARRAY_PUSH(abs_targets, const char *) = absolute;
*pcommon = svn_path_get_longest_ancestor(*pcommon, absolute, pool);
}
where *pcommon = "X:/folder1" and absolute is "X:/folder2", the call to
svn_path_get_longest_ancestor will return "X:". This is a) not correct
and b) functions like svn_path_dirname will not correctly identify this
as a root path.
This is a very specific case and can easily be checked for, but in 1.5.x
there's nothing more you can do than abort the commit and return an
error message like "Committing multiple items on the root of a drive is
currently not supported, please commit items individually". Obviously
this is windows-only.
Lieven
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-08-11 22:54:14 CEST