I’m not sure if the \\?\ format is supported in the new rename api(as this is an option in certain publi apis and not a low level supported format), but it should certainly be used in the fallback codepath where the normal rename is tried, like hiw it is in apr.

But if the new api fails with the limit, it is quite likely that it supports the \\?\ format. Some more recent new in Windows 8+ apis just dropped the path length limit and therefore don’t support the \\?\ format… but that doesn’t apply here as this api was new in Vista.

I hope somebody looks at this earlier, but I’ll will look into this early next week.


Sent from Windows Mail

From: Ivan Zhakov
Sent: ‎Tuesday‎, ‎April‎ ‎28‎, ‎2015 ‎9‎:‎07‎ ‎AM
To: Benjamin Fritz, Bert Huijben
Cc: 'subversion'

On 27 April 2015 at 21:35, Benjamin Fritz <fritzophrenic@gmail.com> wrote:
> Apparently I'm not subscribed to get list emails; please CC me on future
> responses. I had to get this message from the archive :-)
> Branko Čibej wrote:
>> On 27.04.2015 18:06, Benjamin Fritz wrote:
>> > I get the following error when I try to check out a working copy from
>> > my repository at work (exact path names obfuscated but length
>> > unchanged, in case it matters
>> It probably does matter ... FWIW, I believe you did change the length of
>> the file name, the workqueue record says 234 chars but the name in the
>> record is 240; still, that shouldn't be an issue.
> Oops. You're right. My actual directory has only 3 characters where I
> replaced with "Prog" in the path string. Still, those 6 fewer
> characters are probably irrelevant.
>> > ), leaving a partially downloaded working copy:
>> >
>> > svn: E155009: Failed to run the WC DB work queue associated with
>> > 'C:\Project_Files\Proj_Dev\Prog_svn_1.9_cmdline', work item 2160
>> > (file-install 234
>> >
>> > Logical_Architecture/APP/App_PL_Verification/XXX/XXX_XXXs/XXX_7_APPDB_PROJ_PROG-0000-0021_BE/APPDB_PROJ_PROG-0000-0021.SUP/APPDB_PROJ_PROG-0000-0021/APPDB_PROJ_PROG-0000-0021/APPDB_PROJ_PROG-0000-0021.SUP/XXX_APPDB_PROJ_PROG-0000-002101.CRC
>> > 1 0 1 1)
>> > svn: E720123: The filename, directory name, or volume label syntax is
>> > incorrect.
>> The full path of the file would be 281 characters long, which is more
>> than Windows' limit of 260. But Subversion goes to a lot of trouble to
>> avoid the path limit ... I wonder what's going on here.

It seems Windows specific implementation of
svn_stream__install_stream() doesn't prepend path with "\\?\" for long
names. Replacing svn_utf__win32_utf8_to_utf16() call with
svn_io__utf8_to_unicode_longpath() should fix the problem, but I
didn't try yet.

Bert, is it intentional behavior or just small typo?

Ivan Zhakov