根据 libgit2 的文档,长路径适用于存储库,但仅适用于工作目录。存储库的根目录(.git 文件夹)的路径必须少于 260 个字符。
我可能遗漏了一些东西。如果计算机上启用了长路径,Windows API 可以访问长度超过 260 个字符的路径。让我觉得 libgit2 也可以找到路径长度超过 260 个字符的本地配置文件。
要求本地配置文件的路径少于 260 个字符有什么限制?
是的,如果(且仅当)设置了
core.longpaths = true
,那么 git 客户端(包括 libgit2)将拒绝打开长度超过 260 个字符的路径。 core.longpaths
默认为 false
。
假设您有一些类似
C:\<LONG_PATH>\my_project
的路径,其中该路径的长度超过 260 个字符。现在想象一下您cd
进入该目录并运行libgit2 status
。应该发生什么?
好吧,libgit2 应该查看
C:\<LONG_PATH>\my_project\.git\config
中的本地存储库git配置以获取core.longpaths
。但如果它想读取该文件,则必须设置 core.longpaths = true
。但除非我们打开该文件,否则我们无法知道 core.longpaths
的值。但我们不能,因为如果我们想读取该文件,则必须设置 core.longpaths = true
。无穷无尽。