Quoting "D.J. Heap" <djheap@gmail.com>:
> I've run into a rather nasty issue with a repository using trunk code.
>
> I've attached a test repository that works fine in 1.4.x or earlier
> but croaks when loading with trunk code built on Windows.
>
> The core issue seems to be that the dump/verify/load code uses
> svn_path_join on url's and svn_path_join now seems to be assuming that
> it is working with filesystem paths, not urls.
That's a result of the windows path changes I made last year. I based
myself on the available unit tests at that time, and there were none for url's.
> This means that in Win32 builds, 'svnadmin dump/load/verify' asserts
> and aborts for repositories that have urls such as '/c:hi' (it can't
> be checked out on Windows, of course, but that is a client/filesystem
> issue). It is probably not as much of an issue on Unix-type OS'
> because their filesystem paths look a lot like urls.
Hm, are you talking about paths relative to the repository root? Or actual urls?
> Should 'svnadmin dump/verify/load' not be using svn_path_join or
> should svn_path_join work with urls?
I checked out the comments of svn_path_join, and they say:
* Note that the contents of @a base are not examined, so it is possible to
* use this function for constructing URLs, or for relative URLs or
* repository paths.
*
* This function is NOT appropriate for native (local) file
* paths. Only for "internal" canonicalized paths, since it uses '/'
* for the separator. Further, an absolute path (for @a component) is
* based on a leading '/' character. Thus, an "absolute URI" for the
* @a component won't be detected.
The problem is that svn_path_join *is* used for local paths despite the warning
in the comments, so that's why it has to work with Windows paths too. We miss a
clear separation between functions for internal paths and functions for native
paths at the moment.
Based on your report I'm worried a bit that there are more situations like this,
were path functions for internal paths were modified to work for Windows paths.
I'll see what I can find, tonight.
Lieven
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Mar 13 14:31:33 2007