【发布时间】:2022-08-18 23:02:33
【问题描述】:
鉴于我克隆了一个存储库:
git clone --filter=blob:none --no-checkout <url>
现在下面的命令真的像预期的那样快:
git log --oneline -- \'**/somefile\'
然而,这个命令非常慢,尽管所有信息都应该在已经下载的树文件中:
git log --oneline --name-only -- \'**/somefile\'
检查后台活动,可见 git 获取更多对象。可以以某种方式避免这种情况吗?我需要在提交中获取文件的完整路径。
我能看到的唯一选择是自己做管道,例如使用 gitpython 之类的东西来运行原始树对象。但是,我宁愿使用纯 git 命令来归档任务(查找具有给定文件名/基本名称的所有提交)。
-
可能是您触发了复制/重命名阈值检测,请尝试添加
-C100% -M100%。 -
除了@jthill 的建议,值得注意的是部分克隆有很多边缘情况没有得到适当的收紧。这段代码可能会在未来一两年内发展(可能很多)。
-
@jthill 不幸的是,这不起作用似乎我必须解决。至少在没有
--name-only的情况下它运行得很快。
标签: git