我有一个生产SVN存储库,我想用git克隆。当我尝试git svn clone
时,我得到的错误与一些具有路径文件名长组合的文件有关。
我认为这是由git用来运行的GNU shell mingw32引起的限制,因为windows或unix都没有这种限制。
有没有办法克服这个限制?在我确定要转移到git之前,我不想开始更改文件名/路径。
感谢。
答案 0 :(得分:5)
这是一个限制Windows,因为MAX_PATH
是260个字符,这个路径最多可以包含260个字符(所以一旦你考虑了驱动程序字母,冒号和初始{{1}和尾随的NUL,你的路径有256个字符。)
Windows有一个unicode路径,长度约为32,767。您可以通过在路径前添加\
详情请见此处:http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx
您还可以查看使用\\?\
替换带有驱动器名称的长路径并对其进行操作。
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/subst.mspx?mfr=true
以上是克服限制的方法,但当然在subst
期间可能不适用。确保从克隆开始的路径尽可能短。使用git svn clone
将驱动器号分配给要克隆的路径并使用该驱动器。
答案 1 :(得分:0)
我在Windows XP上遇到了同样的问题。我按照上面的解决方案使用了subst,它工作正常,如下:
首先,在命令提示符下:subst z:c:\ my \而\ long \ path \ to \ local \ repo \
然后在git中:git clone https://github.com/my/repo z:/ repo_name
以前太长的存储库现已克隆到我的电脑上。
答案 2 :(得分:0)
以上解决方案有效。除此之外,旧的回购路径可能仍然在tortoicegit中显示brocken与其完整的lenth窗口路径,但如果你去Windows资源管理器并采取将在subst命令后产生的新驱动器号,你可以看到正确的repo和tortoicegit将在那里完美地工作。