2014-09-24 30 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