git mingw32和windows下的长路径/文件名

Mic*_*ael 2 linux svn windows git git-svn

我有一个生产SVN存储库,我想用git克隆.当我尝试git svn clone它时,我得到的错误与一些具有路径文件名长组合的文件有关.

我认为这是由git用来运行的GNU shell mingw32引起的限制,因为windows或unix都没有这种限制.

无论如何要克服这个限制吗?在我确定要转移到git之前,我不想开始更改文件名/路径.

谢谢.

man*_*lds 5

这是Windows的限制,因为它MAX_PATH是260个字符,即一个路径最多可以包含260个字符(所以一旦你考虑了驱动器号,冒号和初始\和尾随NUL,你的路径就有256个字符).

Windows有一个unicode路径,长度约为32,767.您可以通过为路径添加前缀来获得此类路径\\?\

详情请见:http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx

您还可以查看使用subst驱动器名称替换长路径并对其进行操作.

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/subst.mspx?mfr=true

以上是克服限制的方法,但当然可能不适用于git svn clone.确保从克隆开始的路径尽可能短.使用subst一个驱动器号分配给你在哪里克隆的路径,并使用该驱动器.