Git 合并工具性能
Posted
技术标签:
【中文标题】Git 合并工具性能【英文标题】:Git mergetool performance 【发布时间】:2015-10-22 10:25:11 【问题描述】:git mergetool
命令的性能似乎很慢,尤其是与 hg merge
相比。这是一个记录在案的问题吗?有什么方法可以加快速度吗?
在运行命令时,我们花费大量时间等待每个文件差异出现。
【问题讨论】:
mergetool 是 shell,所以它不会很快。也就是说,mergetool 的执行时间可能与在您选择的合并工具中实际合并冲突所花费的时间相形见绌。你用的是哪个工具?你确定你支付的不是这个工具的启动成本吗? 您使用的是哪个合并工具?我的猜测是启动外部工具很慢,而不是 git 组装命令行。 我们正在使用 Beyond Compare 4/bcomp.exe。 类似地,使用 Beyond Compare difftool 也很慢。我们对 HG 使用相同的东西,而且速度要快得多。正如您所指出的,必须是 git 重复调用工具的方式。 【参考方案1】:这应该会在 Git 2.23(2019 年第三季度,五年后)得到改善,因为“git mergetool
”及其测试现在产生更少子进程。
见Johannes Sixt (j6t
)commit 7e6d6f7、commit 8b01465、commit e10dffd(2019 年 6 月 12 日)和commit b4a04c8(2019 年 6 月 10 日)。(由@987654327 中的Junio C Hamano -- gitster
-- 合并@,2019 年 7 月 9 日)
mergetool
:使用 shell 变量魔法而不是awk
git-mergetool
产生大量进程。因此,测试脚本
t7610
异常缓慢,尤其是在 窗户。 大多数进程都是git
的调用。还有一些可以用 shell 内置函数替换。 避免重复调用git ls-files
和awk
。
【讨论】:
以上是关于Git 合并工具性能的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2015 GIT 是不是使用 3 路合并?
性能优化: 资源合并与压缩 -- 文件合并(CSS与JavaScript 文件合并提升前端性能)