On Mon, 27 Sep 2004, Philip Martin wrote:
> SteveKing <steveking@gmx.ch> writes:
>
> > svn ls http://localhost/svn/test/testparent
> > returns
> > öäüÄÖÜ
> >
> > as expected. But an
> > svn ls http://localhost/svn/test/testparent/%f6%e4%fc%c4%d6%dc
> > returns
> > öäüÄÖÜ/
> > file1.txt
>
> There is an inconsistency with the alphabetic case used when URI
> encoding:
>
[...]
> strcmp will treat those URLs as different.
>
> Now Subversion's path.c:uri_escape() uses sprintf("%%%02X") so it should
> produce upper case, however the server sends lower case
>
[...]
> I'm not sure where that gets produced, but Apache's util.c:c2x() uses
> c2x_table[] = "0123456789abcdef" so it could be that.
>
> A quick fix might be to make Subversion use lower case, a less fragile
> fix would be to compare URLs using a function that handles escape
> sequences that differ in case.
>
I don't like comparing URLs using strcmp-like functions, since
URI-encoding differences can make this fail in many ways. Also, I don't
know WebDAV well enough to know if this proposal is acceptable. What about
counting the number of components in the returned URLs and skipping an URL
with as many components the input path? Does WebDAV guarantee that the
URLs of a collection have proper pathnames, i.e. collectionURL/name?
Any DAV-expert want to give an advice?
Regards,
//Peter
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Sep 29 22:37:37 2004