Hi,

In the last few months we got two reports from Subversion users that
passing certain short paths to 'svn' failed for them.

E.g.
[[
> mkdir ALongName.impl
 > dir /x
...
27/03/2015  12:50    <DIR>          ALONGN~1.IMP ALongName.impl
]]
And then passing this 'ALONGN~1.IMP' path works just fine.

While
[[
> mkdir api.impl
 > dir /x
...
  27/03/2015  12:52    <DIR>          API~1.IMP    api.impl
...
]]
And then passing the 'API~1.IMP' path doesn't (uses api.implP)
(Samples copied from a mail from Stephen White to dev@subversion.a.o)

The problem here is that the short path is actually longer than the long
path. which triggers a bug in APR's truename code that we use. In this
specific case the length of the updated path is not properly updated, to
reflect the shorter total path length.


When trying to write a testcase for this issue I found that Windows
disables short path generation on user created NTFS filesystems these
days. Only on system partition the default setup enables short path
creation. (An admin can enable short paths via something like 'fsutil
8dot3name set R: 1', or a flag can be passed to format.exe)

The attached patch fixes the problem, which appears to be specific for the
last path component (saveslash = FALSE).


I would like to see this problem fixed in apr 1.5.

The attached patch applies directly to 1.5.x and trunk.

Thanks,
        Bert

Attachment: apr-Long-ShortName.patch
Description: Binary data

Reply via email to