SVN 樹沖突解決詳解


https://blog.csdn.net/xgf415/article/details/75196714

SVN 沖突包括

  • 內容沖突:當兩名(或更多)開發人員修改了同一個文件中相鄰或相同的行時就會發生文件沖突。
  • 樹沖突:當一名開發人員移動、重命名、刪除一個文件或文件夾,而另一名開發人員也對它們進行了移動、重命名、刪除或者僅僅是修改,在更新時就會發生樹沖突。

SVN 的基本使用和內容沖突的解決方法可以參考這篇博客 TortoiseSVN 和 VisualSVN Server 使用教程

樹沖突類型及解決方法

1. 本地刪除,外部更改
  1. A(外部) 修改文件並將其提交至版本庫中。
  2. B (本地)同時刪除了文件。

B 更新時就會發生樹沖突,該文件被標記為沖突。

B 的解決方法有:

  • 放棄 A (外部)更改:也就是刪除這個文件----直接標記沖突為已解決。
  • 放棄 B (本地)刪除:選擇取消,右鍵 TortoiseSVN --> SVN 還原,撤銷刪除操作。

2. 本地改名,外部更改

  1. A(外部) 修改文件,並將其提交至版本庫中。
  2. B (本地)同時將文件改名。

B 更新時, 該文件被標記為樹沖突。
B 的解決方法有:

  • 合並 A (外部)更改到改名后的文件中去:直接選合並修改(見下圖)----> 標記沖突為已解決,然后提交。
  • 放棄 A 的更改:改名后的文件不包括 A 的更改內容 ----> 直接標記沖突為已解決,然后提交,
  • 放棄 B 的改名:選擇取消,TortoiseSVN --> SVN 還原,撤銷改名操作。

3. 本地更改,外部刪除

  1. A(外部)刪除了文件,並提交到了版本庫;
  2. B(本地)同時對該文件進行了修改。

B 更新時,該文件被標記為樹沖突。

B 的解決方法有:

  • 放棄 A(外部)的刪除:不刪除文件,同時保留本地內容修改---->直接選保留本地文件,然后提交;
  • 放棄 B(本地)的更改:直接選刪除此文件。

4. 本地更改,外部改名

  1. A(外部)將文件改名,並提交到了版本庫;
  2. B(本地)修改了文件內容。

更新時,B 的該文件被標記為樹沖突

B 的解決方法有:

  • 合並更改到改名后的文件:選擇保留本地文件,手動將更改內容移植到改名后的文件,撤銷增加原文件,然后提交。
  • 放棄 A(外部)改名:選擇保留本地文件,然后刪除改名后的文件,然后提交。
  • 放棄 B(本地)更改:文件改名,內容不變-->直接選刪除此文件。

合並本地更改到改名后的文件中,手動合並如下:

a.先后選擇原文件和改名后的文件,加入對比。

b.根據兩個文件的差異,把原文件的內容更改移植到改名后的文件中,然后保存。

5. 本地刪除,外部改名

  1. A(外部)將文件改名,然后提交到版本庫;
  2. B(本地)將文件刪除。

更新時,B 的該文件將發生樹沖突。

B 的解決方法有:

  • 接受 A 的改名:標記沖突已解決;
  • 堅持刪除文件:把改名后的文件刪除,然后提交。

 

6. 本地改名,外部刪除

  1. A(外部)將文件刪除,然后提交到版本庫;
  2. B(本地)將文件改名。

更新時,B 的該文件將發生樹沖突。

B 的解決方法有:

  • 接受 A 的刪除:標記沖突已解決,然后撤銷增加改名后的文件;
  • 堅持改名:標記沖突為已解決,然后提交。

7. 本地改名,外部改名

  1. A(外部)將文件改名,並提交到版本庫;
  2. B(本地)將同文件改名。

更新時,B 的該文件將發生樹沖突,

B 的解決方法有:

  • 用 A 的名字:標記沖突為已解決,撤銷增加本地改名后的文件;
  • 用 B 的名字:標記沖突為已解決,刪除 A 改名后的文件,然后提交。

分支合並沖突

對於分支和主干合並時發生的沖突,因為 SVN 的分支用的很少。。。。所有這里也不介紹了。有問題的話可以參考 SVN 的幫助文檔(其實本博客很多內容都是上面借鑒(chaoxi)來的)

 


免責聲明!

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



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