git mingw32和windows下的长path/文件名

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

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

有没有办法克服这个限制? 我不想在我确定要移动到git之前开始更改文件名/path。

谢谢。

这是一个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将驱动器号分配给克隆和使用该驱动器的路径。

我在Windows XP上,并有同样的问题。 我遵循上面的解决方案使用子,它的工作,如下所示:

首先,在命令提示符下:subst z:c:\ my \ rather \ long \ path \ to \ local \ repo \

然后在git:git clone https://github.com/my/repo z:/ repo_name

以前太长的存储库已经克隆到我的电脑。

上述解决方案工作。 除此之外,旧的回购路径可能仍然显示在其完整的lenth窗口路径tortorogit brocken,但如果你去Windows资源管理器,并采取新的驱动器字母,这将导致subst命令后,你可以看到正确的回购和tortoicegit将在那里完美的工作。