有没有办法在 macOS 中解决 git repo 中的长路径的“PATH_MAX”?
Posted
技术标签:
【中文标题】有没有办法在 macOS 中解决 git repo 中的长路径的“PATH_MAX”?【英文标题】:Is there any way to work around `PATH_MAX` in macOS for long paths in a git repo? 【发布时间】:2021-08-19 17:21:13 【问题描述】:在 macOS 中,路径不能超过 1024 字节:
command cc -dM -E -xc - <<< '#include <sys/syslimits.h>' | grep -i ' [NP]A.._MAX'
#define NAME_MAX 255
#define PATH_MAX 1024
如何克隆路径超过此限制的 git 存储库?
【问题讨论】:
这是,我认为,文件系统限制,而不是操作系统硬限制,因此请尝试创建具有更长路径的文件系统(例如在可移动驱动器上)。您也可以尝试在虚拟机或容器中运行的真实操作系统中进行克隆。 @phd APFS 的限制是否更好? "它看起来像一个 255 个字符且没有路径限制的文件名。" 发现于 en.wikipedia.org/wiki/Comparison_of_file_systems#Limits 发现于 sqa.stackexchange.com/questions/44763/… 发现于google.com/search?hl=en&pws=0&q=APFS+max+path+length 【参考方案1】:您可以克隆这样的存储库,但无法在 macOS 上查看它。 PATH_MAX(如果已定义)指定操作系统支持的最大路径长度。可能 APFS 本身没有最大路径长度,但 macOS 有。如果您能以某种方式将这个文件系统挂载到 Linux 上,您就可以利用它更长的 PATH_MAX。
您可以使用 Linux 虚拟机来处理此存储库,或者您可以使用 Git 管道命令或 libgit2 在裸存储库上操作,以避免需要在您的系统上检查它(如果这是您的用例的选项)。
【讨论】:
以上是关于有没有办法在 macOS 中解决 git repo 中的长路径的“PATH_MAX”?的主要内容,如果未能解决你的问题,请参考以下文章
使用hg convert将git repo转换为mercurial时出错
有没有办法检查远程 git repo 是不是有更改,而无需实际获取更改?