为什么 libgit2 的 core.longpath 位置限制为 260 个字符?

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

根据 libgit2 的文档,长路径适用于存储库,但仅适用于工作目录。存储库的根目录(.git 文件夹)的路径必须少于 260 个字符。

我可能遗漏了一些东西。如果计算机上启用了长路径,Windows API 可以访问长度超过 260 个字符的路径。让我觉得 libgit2 也可以找到路径长度超过 260 个字符的本地配置文件。

要求本地配置文件的路径少于 260 个字符有什么限制?

libgit2
1个回答
0
投票

是的,如果(且仅当)设置了

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
。无穷无尽。

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