0

所以我有以下回购: n1 -> n2 -> n3 -> master 和 n2 -> n4

我想使用 git 将 n4 合并回 master,所以 AFIAK:

BASE = n2,LOCAL = n3,REMOTE = n4,MERGED = master

我正在使用 p4merge 来可视化合并,但现在问题....

n2 和 n4 已经注释掉了 master 中慢慢被取消注释的代码部分......但是视觉合并完全搞砸了......似乎任何注释行都可以匹配任何其他注释行......导致各种注释函数与其他代码中间匹配的不匹配。例如

当地的:

def foo
  impl foo
end

def bar
  impl bar
end

基地/远程:

# def foo
#   impl foo
# end 
#
# def bar
# end

合并:

def foo
  impl foo
  # def bar
  # end
end

不用说,我不希望这样合并代码。

我已经阅读了 git 中的自定义合并驱动程序,但我不确定如何设置它们......我的想法是,如果 diff 工具可以以某种方式暂时忽略注释字符(同时 diff ) 然后正确排列。我试图在 p4merge 中找到一个设置来做到这一点,但没有运气。kdiff3 中可能也有一种方法,但我想我会先尝试找出一种方法来使用合并驱动程序。

任何有关设置或解决此问题的其他方法的建议将不胜感激!谢谢!

4

1 回答 1

1

可能有帮助的一件事是合并策略选项patience。它在不混淆代码方面做得更好,并且报告的合并冲突越来越少。它与“git merge --strategy-option=patience”一起使用。

git diff在这里讨论上下文中的选项的另一个问题是, 'git diff --patience' 是为了什么?.

当然,该选项在合并手册页 git merge 手册页中进行了描述。

于 2013-01-08T22:55:11.857 回答