版本控制-如何在mercurial(或git)合并中查看所有冲突的差异



此问题询问如何查看合并中哪些文件存在冲突。我还希望能够快速看到所有冲突的diff列表(而不是干净通过的合并中的diff)

例如,这可以通过使用--tool :other--tool :local--tool :union解决冲突,而无需使用合并编辑器,从而快速消除一些只是"噪声"的冲突。

我认为git和mercurial的答案(我现在正在制定一个答案)将类似于一些小的差异,所以我会冒险让这个问题与vc无关。

在mercurial中,如果使用:merge3工具进行合并或解决,它将在文件中留下任何冲突的标记。文件集unresolved()仅包含有冲突的文件。使用perl只打印文件名和未解析的部分(忽略干净合并的部分):

hg merge --tool :merge3 <branchtomerge>
hg diff 'set:unresolved()' | perl -ne 'print if m|^+++ | or m|<<<+ local$| .. m|>>>+ other$|'

最新更新