SVN的沖突解決


SVN中多人操作同一個文件可能造成沖突,假設有兩名開發人員dev1和dev2。文檔test.txt的最新版本為33,內容如下

  • 不同的用戶修改不同的行

dev1將第1行aaa修改成aa0然后提交,此時SVN服務該文件的最新版本是34

dev2 在33版本上將bbb修改成bb0

提交時報告該文件已過期

選擇Update就是將服務器上的34版本更新到本地,

更新完成,並且SVN自動完成合並,此時並沒有產生沖突,接下來可以順利提交合並后的文件。

以上是比較簡單的情形。SVN是按行比較的。如果不同的用戶在不同的

  •  不同用戶在不同地方新增內容

后提交的用戶提示文件過期,要求更新,更新時又會提示合並文件沖突,要求手工修改沖突。

例如原始文件

dev1用戶修改成如下,然后提交

dev2做如下修改提交

合並時候產生沖突,SVN產生如下幾個文件

  • 其中test.txt是合並后帶沖突的文件,里面增加了沖突標記
  •  .r41是本次修改的基版本
  • .mine文件是本地文件也就是.r41+本次修改的內容
  • r42是服務器最新版本

解決沖突方法1:手工合並

  1. 備份本次修改即.mine文件
  2. 撤銷本次修改執行Reverse操作,此時文件為服務器最新版本
  3. 將文件與備份文件比較執行Diff操作,手工修改

解決沖突方法2:在SVN中合並

 

 

 

 

 其中

 theirs 是服務器中最新版本,mine本地版本,merged是合並后的版本;這三個區域中紅色的區域是沖突的行,黃色的區域是沒有行號的,表示沖突之前的內容。

如果是接受theirs或者mine其中之一,執行以下操作:

 

如果是要合並所有更改,可以按行解決沖突,例如希望接受所有的更改,結果應該是

aa

11

bb

22

操作如下:

在第二行上右鍵執行

在第三行上執行

帶減號的行不會進入合並的內容。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM