svn - 過時沖突解決方案


 

轉自:http://blog.csdn.net/why3query/article/details/14209569

 

1. 本地文件過期
如果版本庫中的某一文件已經改變了(另一個working copy 執行提交)。但是修改的部分(如只修改第一行)

和我本地的代碼(如只是修改了第二行)不一致但是並不沖突。不過執行提交會報過期錯誤:

[plain]  view plain copy
 
  1. E:\work\sesame>svn commit -m "1 line welcome to hello"  
  2.   
  3.      Sending        huanying.txt   
  4.   
  5.      svn: E155011: Commit failed (details follow):   
  6.   
  7.      svn: E155011: File 'E:\work\sesame\huanying.txt' is out of date   
  8.   
  9.      svn: E160028: File '/sesame/trunk/huanying.txt' is out of date  

2、所以使用更新操作(因為不沖突,所以可以照常更新)
[plain]  view plain copy
 
  1. E:\work\sesame>svn update   
  2.   
  3.     Updating '.':   
  4.   
  5.     G    huanying.txt   
  6.   
  7.     Updated to revision 7.   

其中

A添加
D刪除
U更新
C沖突
G合並

2. 沖突
1、兩個客戶端有相同的代碼庫中的某一個代碼文件。
一個客戶端修改一行代碼, 首先提交代碼,版本庫更新了。另一個客戶端不修改這行代碼也提交,即代碼出現沖突。
svn將拒絕執行這樣的提交。
    理由:版本庫中已經有這個版本的副本了。當然重復提交是不被允許的。(注:修改提交的注釋再提交,也不行。)
[plain]  view plain copy
 
  1. e:\work\sesame>svn commit -m "I am sesame a" huanying.txt  
  2.   
  3.   Sending        huanying.txt  
  4.   svn: E155011: Commit failed (details follow):  
  5.   svn: E155011: File 'E:\work\sesame\huanying.txt' is out of dat  
  6.   svn: E160028: File '/sesame/trunk/huanying.txt' is out of date  
然后使用更新,他會報出沖突解決方案。
[plain]  view plain copy
 
  1. e:\work\sesame>svn update  
  2. Updating '.':  
  3. Conflict discovered in 'E:/work/sesame/huanying.txt'.  
  4. Select: (p) postpone, (df) diff-full, (e) edit,  
  5.         (mc) mine-conflict, (tc) theirs-conflict,  
  6.         (s) show all options: tc  
  7. G    huanying.txt  
  8. Updated to revision 11.  

其中p 表示延后解決,這樣會產生4個文件(huanying.txt  huanying.txt.mine  huanying.txt.r10  huanying.txt.r11)
df 控制台顯示沖突信息,和使用diff命令一樣
e 直接用系統默認的Editor修改沖突
mc 使用自己的文件,然后使用 svn resolved huangying.txt 告訴倉庫我已經解決沖突,可以隨后提交 
tc 使用倉庫中文件,將本地文件同步更新
注意:此時本地工作拷貝雖然版本和倉庫的版本同步,但是修改的文件內容卻可以不一致,因為本地文件經過人手工修改。最后執行了提交語句,這樣就上傳到了代碼庫中,並將版本號增加一。
其它選項參照:http://ariejan.net/2007/07/04/how-to-resolve-subversion-conflicts/

2、svn log -r4 welcome.txt
        將顯示日志,便於我來修改沖突。
 
3、手動修改了沖突之后,
    告知svn我們已經解決了沖突
[plain]  view plain copy
 
  1. svn resolved welcome.txt  
   然后提交 
[plain]  view plain copy
 
  1. svn commit -m "comment"  
4、如果修改了本地的文件,同時又要刪除本地的文件,可以進行還原。
[plain]  view plain copy
 
  1. E:\work\sanother\trunk>svn del welcome.txt  
  2.   
  3.     svn: E195006: Use --force to override this restriction (local modifications may be lost)  
  4.     svn: E195006: 'E:\work\sanother\trunk\welcome.txt' has local modifications -- commit or revert them first   
  5.   
  6. E:\work\sanother\trunk>svn revert welcome.txt  
  7.   
  8.     Reverted 'welcome.txt'  

本文僅用作記錄,侵刪


免責聲明!

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



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