tl;dr: 跑步git status --ignored
在我的项目的根永远不会完成。git status
工作正常。
我开始从我的 IDE - PhpStorm 中看到此问题的症状(尽管此问题适用于所有 IntelliJ IDE)。没有与 git 相关的操作(提交、推送、获取)工作,所有这些操作都会无休止地挂起。查看正在运行的进程,结果发现有一个git
进程占用 100% CPU。
终止 git 进程使 IDE 再次平稳运行几分钟。似乎它会定期生成同步更改的过程。后来尝试了一下,发现这不是 PhpStorm 的问题,而是git
. git status --ignored
即使从命令行执行也永远不会完成。
就我而言,罪魁祸首是项目路径中的深层目录结构。它一定是由某物在我们的工具堆栈中,我没有注意到,因为它有超过 100 个目录深,并且那里没有实际文件。
cp
拒绝复制这个目录,说name too long (not copied)
。我正在猜测git
不知怎的,在这样的目录上出错了。
删除深层嵌套的目录层次结构为我解决了这个问题git status --ignored
现在按预期工作。
编辑:这已被确认是一个错误git
。邮件列表摘录:
没有这样的目录深度限制,但是'git status的运行时
--ignored' 随着未跟踪目录的深度而快速增长。
运行这个 shell 循环会产生以下数字:
10: 0.01
11: 0.03
12: 0.05
13: 0.11
14: 0.23
15: 0.47
16: 0.97
17: 1.97
18: 3.88
19: 7.85
20: 16.29
21: 32.92
22: 76.24
漂亮的二次方,不是吗? :)
除非我搞乱了我的数字,目录深度为 120 个
需要超过 6*10^23 年才能完成...所以是的,它确实符合条件
一样无限期。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)