版本衝突原因:舉個例子,如果張三和李四合作做同一個項目A,當前SVN服務器中最新版本是A.1,張三和李四都在A.1的基礎上再進行開發。張三將當天做好的版本提交後,此時服務器中最新版本是A.2,這時李四又提交自己的版本上去,這時李四的版本是基於A.1改的,而服務器中此時的最新版本是A.2因此不能順利提交,會產生版本衝突,系統不知道哪個版本纔是最佳的。
解決衝突:
原理:提交產生衝突的用戶手動修改,協商兩個版本,產生一個最終版本。
過程:
1. 張三和李四都把項目A導出到本地,其中有個名爲test的文件。當前張三李四和服務器上都是版本V.1
2. 張三修改了test文件如下,並且提交了該文件。此時服務器中該文件版本爲V.2,張三手裏的也是V.2
3. 李四修改test文件如下
4. 李四提交遇到版本衝突問題如下
5. 點擊OK,再選擇Update、OK
6. 這時會看到李四的資源文件夾下多了幾個文件
7. 右鍵帶黃色歎號的文件,點擊TortoiseSVN中的Eidit Conflicts,顯示如下
說明:左上Theirs中是當前服務器中的版本,右上Mine是自己的版本,下面Merged是最終版本,如果要在最終版本中使用Theirs中的一行,就在Theirs中那行選中後右鍵選擇use this text block,如果要選整個文件就選擇use this whole file.修改完成後保存。
8.如果選擇最終版本用李四的。
9.保存後關閉該窗口,右鍵帶黃色歎號的文件,點擊TortoiseSVN中的Resolved,再選中要Resolve的文件,點擊ok
再點擊OK
10.再Commit提交李四的文件,就成功了,
至此李四成功的提交了自己修改的文件,解決了版本衝突問題。