long path names on windows prefixed with \\?\ not handled by svn commands

2010-05-11 Thread Heinz Prantner

Hello,

running svn client commands other than svn checkout on windows fail,
if the path name (of the local working copy location) is prefixed  
with \\?\.

The prefix is required for path names longer than  255 or so.

It seems that svn commands like svn info or svn status behave different
than svn checkout command regarding the path name prefix.

example:

svn info \\?\c:\long\path\name
svn: '\' is not a working copy

Any thoughts?

(I am using svn client version 1.6.11 from CollabNet)

Thanks,
Heinz







Re: long path names on windows prefixed with \\?\ not handled by svn commands

2010-05-12 Thread Heinz Prantner

Hello Bert,

yes, confirmed, providing absolute paths without the prefix \\?\  
works. As you mention, we just have to know which function requires  
the prefix, or has it implicit or does not support it at all.
Thanks for your clarification.


Heinz

On 11.05.2010, at 21:57, Bert Huijben wrote:

Subversion uses the APR library which handles the escaping for  
specific API functions that allow this trick. The ‘\\?\’ style  
paths are not a different path, but just the original path escaped  
for a specific api.
(Some Windows APIs allow this trick, others just support long paths  
directly and then there are functions that support neither. By  
passing the long path yourself you assume that all filesystem  
functions have this long path support)


If you pass absolute paths to svn, it should support long paths  
directly. (Windows doesn’t support long relative paths). Subversion  
1.7 will probably work better with long relative paths, as it will  
use absolute paths internally for almost every operation.


Bert

From: Heinz Prantner [mailto:heinz.prant...@opensynergy.com]
Sent: dinsdag 11 mei 2010 14:21
To: users@subversion.apache.org
Subject: long path names on windows prefixed with \\?\ not handled  
by svn commands


Hello,

running svn client commands other than svn checkout on windows fail,
if the path name (of the local working copy location) is prefixed  
with \\?\.

The prefix is required for path names longer than  255 or so.

It seems that svn commands like svn info or svn status behave  
different

than svn checkout command regarding the path name prefix.

example:

svn info \\?\c:\long\path\name
svn: '\' is not a working copy

Any thoughts?

(I am using svn client version 1.6.11 from CollabNet)

Thanks,
Heinz







Heinz Prantner
Senior Software Design Engineer

OpenSynergy GmbH
Rotherstr. 9, 10245 Berlin

t: +49 (30) 20 1818 35-23
f: +49 (39) 20 1818 35-02
m: +49 (179) 23 63 588
e: heinz.prant...@opensynergy.com

w: www.opensynergy.com

Handelsregister: Amtsgericht Charlottenburg, HRB 108616B
Geschäftsführung: Frank-Peter Böhm, Stefaan Sonck Thiebaut, Rolf Morich