Xml git Reerre如何找出两个冲突之间的相似之处?

Xml git Reerre如何找出两个冲突之间的相似之处?,xml,git,merge,conflict,git-rerere,Xml,Git,Merge,Conflict,Git Rerere,好的,我的问题是,“git Reere”会比较两个文件的散列值来计算分辨率吗?也就是说,假设我有一个包含以下标记的XML文件: <number>12</number> 12 当我遇到冲突时,这个数字通常会变为13、14等,所以我只能选择: <<<<<<< <number>12</number> ======= <number>13</number> >>>>

好的,我的问题是,“git Reere”会比较两个文件的散列值来计算分辨率吗?也就是说,假设我有一个包含以下标记的XML文件:

<number>12</number>
12
当我遇到冲突时,这个数字通常会变为13、14等,所以我只能选择:

<<<<<<<
<number>12</number>
=======
<number>13</number>
>>>>>>>
>
即使数字与上次不相同,REERE是否可以自动解决此冲突?我总是希望它以这样一种方式来解决它,即它采用更高的数字(在上面的示例中,13)。因此,如果它记录了数字12和13的分辨率,它会解决与不同数字的冲突吗?我怀疑不会,但不妨问问

即使数字与上次不相同,REERE是否可以自动解决此冲突?我总是希望它以这样一种方式来解决它,即它采用更高的数字(在上面的示例中,13)

不,
git-rere
不能这样做

当您使用git Reere时,您要求它记住两件事:

  • 一个特定的冲突(也就是说,处于冲突中的帅哥的文本和他们所处的文件);及
  • 应适用于该冲突的决议
因为这些是大块文字(例如“用13替换12”),而不是某种转换函数(例如“用N+1替换N”),git无法推断您想要用更高的数字替换每个数字

如果git后来遇到的冲突与其之前记忆中的任何冲突都不匹配,就好像从未遇到过冲突一样,即使它可能是相似的(在您的示例中,数字总是一对一)

如果此XML文件是自动生成的,则可能有一种解决方法。在这种情况下,您可能想考虑根本不将它保存在源代码管理中,而是在运行时生成它。这样,您就永远不会有相应的冲突需要清理


另一种方法是完全避免git Reere,而是编写一个自定义的合并驱动程序来为您解决问题。我以前做过这件事,但这是一项非常繁重的工作,需要您编写和测试一些代码。如果您对这种策略感兴趣,请参阅中的。

Vanilla git不会以这种方式比较文件。它进行严格的字符串比较,不知道它的任何语义


但是,请查看中的“定义自定义合并驱动程序”。它允许您编写自己的程序,以任意方式解决某些合并,包括选择更高的数字。

啊,我想是这样的。谢谢你的深入回答。不幸的是,这些数字总是由人类输入的,所以看起来我要看一看那个自定义合并驱动程序。谢谢你和卡尔的提示。