4

我正在尝试为 git 构建一个自定义合并工具,它比 git 更了解特定文件。

该程序将分析在合并冲突期间弹出的文件,对于其中一些文件,在某些特定情况下,它将知道如何成功处理它们。

我像这样执行这个工具:

git mergetool --tool=auto

这成功运行了我的程序。

但是,如果程序无法合并文件,因此以非零退出代码退出,我会从 git 收到此提示:

Continue merging other unresolved paths [y/n]? n

有没有办法让我配置 git,或者返回一个特定的退出代码,告诉 git 在没有用户干预的情况下继续尝试其余文件?

IE。就像是:

git mergetool --tool=auto --continue-always

还是一些具有相同含义的魔术退出代码(或任何其他相同的方法)?

如果这很重要,我已经用“trustExitCode = true”配置了我的合并工具。

最终目标是,如果发生合并冲突,我将首先运行自动程序,然后使用普通的合并工具,如 KDiff3 或 Beyond Compare,手动合并其余文件。

4

1 回答 1

0

之类的东西git mergetool --tool=auto --continue-always,或一些具有相同含义的魔术退出代码(或任何其他相同的方式)?

不,除非您考虑git-mergetool.sh直接修改。

提示的唯一改进来自 Git 2.19(2018 年第三季度):之前,“ git mergetool”停止并在处理完最后一条路径后额外提示继续,这没有多大意义。

请参阅Nicholas Guriev ( ) 的commit d651a54(2018 年 8 月 13 日(由Junio C Hamano 合并——提交 03e904c中,2018 年 8 月 20 日)mymedia2gitster

mergetool:不建议在最后一个文件之后继续

在合并失败后消除不必要的继续提示,prompt_after_failed_merge当只剩下一个迭代时不调用该函数。

使用位置参数对列表中的文件进行计数,以便更轻松地查看循环内是否还有更多路径要处理。

于 2018-08-21T20:53:30.607 回答