SVN更新及如何解決沖突文件


轉自:https://blog.csdn.net/u013354805/article/details/48489757/

一. SVN更新(SVN Update)及如何解決沖突文件:

1. SVN update:

更新本地代碼與SVN服務器上最新的版本一致,只要在需要更新的文件夾上點擊右鍵或者在文件下空白處點擊右鍵,選擇”SVN Update” (獲取指定版本中的內容,點擊右鍵執行SVN菜單中的“Update to reversion“),就可以了。

二. 沖突文件的解決:

1. 對於每個沖突的文件Subversion在你的目錄下放置了三個文件:如下:

2. 為什么會產生沖突呢?

 

為什么會產生沖突代碼呢?原因很簡單就是因為不同的人,同時修改了同一個文件的同一個地方,這時候,他提交了,我沒有提交,我就提交不了,這個時候我們要進行先更新,然后在進行提交即可,那如果產生沖突,會生成如上3個文件。 

 

 

3. 解決方案如下:

1) 首先我們可以看下1.txt代碼如下:

 

<<<<<<< .mine
aaaasdf11222333 dderderder
=======
b>>>>>>> .r5

 

2) 然后我去掉多余的代碼,1.txt變成這樣:

 

aaaasdf11222333 dderderder

 

3)進行提交,還是提交不了,如下所示:

4)為什么?因為沖突會產生上面的三個文件,有上面3個文件存在肯定提交不了,這三個文件代碼及解釋如下:

 

1. txt.mine 是沖突前自己的文件(如:aaaasdf11222333 dderderder)
1.txt.r4 是沖突前本地的版本文件(如:aaaasdf11222333)
1.txt.r5 是別人趕在你之前提交的版本(如:b)

 

其中:

 

<<<<<<<<.mine .....======= 之間的代碼是你自己的
======......>>>>>>>.r5 是別人與你沖突的代碼部分

 

這樣就不難理解為什么會產生沖突這種奇怪的東西了,因為你們修改的同一塊代碼,當然會產生沖突。

4. 新的解決方案一:

 

  1.  
    <<<<<<< .mine
  2.  
    6666666666666600000
  3.  
    =======
  4.  
    66666666666aaaaaaaaaa666
  5.  
    >>>>>>>

 

 前面說過  <<<<<<< .mine …… =======
    ……之間的代碼是我未產生沖突之前修改的代碼,
    ======= ………>>>>>>> .r16 這中間……的代碼是別人與我沖突代碼的部分,從上面的代碼可以看到 aaaaaaaaa是我同事新增的 ,00000是我后增加的。

 

1)使用revert(回滾)操作,該操作表示用戶放棄自己的更新代碼,然后直接提交,這個時候你的代碼就會使服務器上最新的代碼,即A用戶提交的新代碼,你的代碼不會被提交,如下所示:

2)點擊ok按鈕后 可以看到其他三個文件都自動刪掉了,1.txt代碼變成如下代碼:

66666666666aaaaaaaaaa666


也就是a用戶提交的代碼,我自己更新的代碼需要自己動手復制進去即可提交commit。

 

5. 新的方案二:

1)假如我現在3.txt產生沖突代碼如下:

 

  1.  
    <<<<<<< .mine
  2.  
     
  3.  
    333333338888888888888=======
  4.  
     
  5.  
    3333cccccccccc3333>>>>>>> .r16

 

通過第一點我們知道,333333338888888888888這個內容是我修改后,未產生沖突之前的內容,3333cccccccccc3333這個代碼是A用戶提交的代碼,從上面得知 A用戶新增內容是ccccccc,而我新增的內容是8888888。

那么第二種解決方法如下:
選擇文件->右鍵Editconficts:這種方法需要沖突雙方經過協商之后將代碼更改統一之后再提交。不僅解決了沖突而且還保證了代碼是正確的,因為只有一方的代碼被提交。

 如上圖所示,

1)紅色的部分是沖突代碼:

 

theirs 表示當前服務器端最新的代碼
Mine 表示自己修改后的代碼
Merged 表示合並后的代碼


 

2)點擊紅色后右鍵選擇:use this text block就可以將該部分代碼作為合並后的代碼:

注意:

 

接下來再說說由於沖突導致重要代碼被覆蓋的情況。沖突發生時如果采取的措施不對可能會導致部分代碼丟失,如果想要還原之前的代碼也很容易。

選擇文件->右鍵選擇show log在這里面你可以看見之前提交的所有版本,找到你想要恢復的版本右鍵選擇revert to this version 就可以恢復了.


免責聲明!

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



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