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

问题描述 投票:0回答:3

我有一个生产 SVN 存储库,我想用 git 克隆它。当我尝试

git svn clone
时,我收到错误,该错误与某些具有长路径文件名组合的文件有关。

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

有什么办法可以克服这个限制吗?在确定要转移到 git 之前,我不想开始更改文件名/路径。

谢谢。

windows linux git svn git-svn
3个回答
5
投票

这是 Windows 的一个限制,因为

MAX_PATH
是 260 个字符,即路径最多可以有 260 个字符(因此,一旦您考虑了驱动程序号、冒号、开头的
\
和结尾的 NUL,您的路径有 256 个字符)。

Windows 有一个 UNC 路径,长度约为 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
为您要克隆的路径分配驱动器号并使用该驱动器。


0
投票

我使用的是 Windows XP,也遇到了同样的问题。我使用 subst 按照上面的解决方案进行操作,它起作用了,如下所示:

首先,在命令提示符下: subst z: c:\my ather\long\路径 o\local EPO\

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

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


0
投票

上述解决方案有效。除此之外,旧的存储库路径可能仍然在 tortoicegit 中显示为损坏,并具有完整的 Windows 路径,但是如果您转到 Windows 资源管理器并获取在 subst 命令后生成的新驱动器号,您可以看到正确的存储库和 tortoicegit将在那里完美工作。

© www.soinside.com 2019 - 2024. All rights reserved.