轉自:http://blog.csdn.net/why3query/article/details/14209569
1. 本地文件過期
如果版本庫中的某一文件已經改變了(另一個working copy 執行提交)。但是修改的部分(如只修改第一行)
和我本地的代碼(如只是修改了第二行)不一致但是並不沖突。不過執行提交會報過期錯誤:
- E:\work\sesame>svn commit -m "1 line welcome to hello"
- Sending huanying.txt
- svn: E155011: Commit failed (details follow):
- svn: E155011: File 'E:\work\sesame\huanying.txt' is out of date
- svn: E160028: File '/sesame/trunk/huanying.txt' is out of date
2、所以使用更新操作(因為不沖突,所以可以照常更新)
- E:\work\sesame>svn update
- Updating '.':
- G huanying.txt
- Updated to revision 7.
其中
A添加
D刪除
U更新
C沖突
G合並
2. 沖突
1、兩個客戶端有相同的代碼庫中的某一個代碼文件。
一個客戶端修改一行代碼, 首先提交代碼,版本庫更新了。另一個客戶端不修改這行代碼也提交,即代碼出現沖突。
svn將拒絕執行這樣的提交。
其中p 表示延后解決,這樣會產生4個文件(huanying.txt huanying.txt.mine huanying.txt.r10 huanying.txt.r11)
df 控制台顯示沖突信息,和使用diff命令一樣
注意:此時本地工作拷貝雖然版本和倉庫的版本同步,但是修改的文件內容卻可以不一致,因為本地文件經過人手工修改。最后執行了提交語句,這樣就上傳到了代碼庫中,並將版本號增加一。
1、兩個客戶端有相同的代碼庫中的某一個代碼文件。
一個客戶端修改一行代碼, 首先提交代碼,版本庫更新了。另一個客戶端不修改這行代碼也提交,即代碼出現沖突。
svn將拒絕執行這樣的提交。
理由:版本庫中已經有這個版本的副本了。當然重復提交是不被允許的。(注:修改提交的注釋再提交,也不行。)
- e:\work\sesame>svn commit -m "I am sesame a" huanying.txt
- Sending huanying.txt
- svn: E155011: Commit failed (details follow):
- svn: E155011: File 'E:\work\sesame\huanying.txt' is out of dat
- svn: E160028: File '/sesame/trunk/huanying.txt' is out of date
然后使用更新,他會報出沖突解決方案。
- e:\work\sesame>svn update
- Updating '.':
- Conflict discovered in 'E:/work/sesame/huanying.txt'.
- Select: (p) postpone, (df) diff-full, (e) edit,
- (mc) mine-conflict, (tc) theirs-conflict,
- (s) show all options: tc
- G huanying.txt
- 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我們已經解決了沖突
- svn resolved welcome.txt
然后提交
- svn commit -m "comment"
4、如果修改了本地的文件,同時又要刪除本地的文件,可以進行還原。
- E:\work\sanother\trunk>svn del welcome.txt
- svn: E195006: Use --force to override this restriction (local modifications may be lost)
- svn: E195006: 'E:\work\sanother\trunk\welcome.txt' has local modifications -- commit or revert them first
- E:\work\sanother\trunk>svn revert welcome.txt
- Reverted 'welcome.txt'
本文僅用作記錄,侵刪