2014-09-24 32 views
0

看看下面的图片。有两个相同的代码部分,但SVN似乎将它们与错误的部分进行比较,但没有意识到它们完全相同。SVN:冲突理解中的错误?

为了更好地看到图像,您可以在另一个选项卡中打开它。

哪些额外的数据可以帮助更好地调查此问题?

enter image description here

+0

该块已被*移动*。这应该算作差异。 – 2014-09-24 10:01:05

回答

1

SVN是不是错在这里,你“感动”是的代码了几行(部分,导航条线)块。就目前大多数合并工具(diff/patch)而言,它们可以在一个地方有效地移除它们并将它们添加到另一个地方。

我看过的每一个mergetool都会根据它的上下文(它周围的线条)来比较'text'的行,并且基本上试图找到最小的一组变化(添加和删除),当应用到文件a时,result在文件b。在这种情况下,虽然这六条线的上下文保持相对不变,但您移动了线条(删除/添加)并覆盖了该位置的另一条线(左边的1696行)。

有关众所周知的示例工具的描述,请参见http://en.wikipedia.org/wiki/Diff

+0

前段时间我见过这个软件,它正在做一个代码感知的比较:http://www.devart.com/codecompare/但是,如果我已经很好地理解了一部分代码的移动不被识别和标记作为SVN内部的“代码移动”:( – Revious 2014-09-24 10:51:32