合并工具应如何指示合并成功?

Posted

技术标签:

【中文标题】合并工具应如何指示合并成功?【英文标题】:How should a mergetool indicate success of a merge? 【发布时间】:2019-07-12 18:21:07 【问题描述】:

我正在编写一个能够合并自定义二进制文件的程序。我想让 Git 信任我的程序的退出代码,但似乎没有记录哪些退出代码确实表明成功。

git-mergetool 的文档指出:

如果自定义合并工具正确指示合并成功 分辨率及其退出代码,然后是配置变量 mergetool.<tool>.trustExitCode 可以设置为true。否则,git mergetool 会提示用户指示成功 自定义工具退出后的分辨率。

但这并没有告诉我在哪种情况下使用哪个退出代码。 有什么想法吗?

【问题讨论】:

可能通过退出代码 0 退出。退出代码含义的典型标准是 0 表示成功,其他任何内容都是错误,并且通常确切的非零退出代码表示不同类型的错误。所以如果成功,我会返回 0,如果不成功,我会返回 1。 通常退出代码0表示成功,其他表示错误 【参考方案1】:

Git 遵循 Unix/POSIX 标准约定:0 = 成功,非零通常意味着某种失败。

通常(但不在 Git 中)2 用于不当使用诊断和/或--help 输出;不过,--help 也同样经常导致成功退出,Git 就是这种情况。 (与此同时,git not-a-git-command 导致状态 1。也就是说,在 Git 中,failure-that-produces-some-help 会导致退出 1,而 for help 请求会产生退出 0。)

git bisect 命令还有一个特殊的退出代码,即 125,当从 git bisect run 调用的命令返回时,它会异常解释该退出代码;请参阅the documentation 了解为什么 125 意味着它在这里的作用。

【讨论】:

以上是关于合并工具应如何指示合并成功?的主要内容,如果未能解决你的问题,请参考以下文章

如何成功地将我的默认合并工具实用程序更改为 opendiff

UITableview 与 iPhone X 上的主页指示器合并

满足两个条件时将两个指示器警报合并为一个警报

在合并列函数中应用 *args 并指示字符串值

成功自动解决合并冲突后,使用 KDiff 审查合并操作

发生冲突时如何强制合并成功?