版本沖突原因:
假設(shè)a,b兩個用戶都在版本號為100的時候皇帮,更新了test.txt這個文件粹淋,a用戶在修改完之后提交到服務(wù)器,這個時候test.txt的版本號已經(jīng)變成了101了匙头。同時b用戶在版本號為100的test.txt上做修改漫谷,然后提交到服務(wù)器,由于不是在當前最新的101版本上做的修改蹂析,所以導致提交失敗聊浅。
版本沖突現(xiàn)象:
沖突發(fā)生時粗卜,subversion會在當前工作目錄保存所有的目標文件版本【上次更新版本,當前獲取的版本(即別人提交的本本),自己更新的版本绞呈,目標文件】。
假設(shè)文件名是test.txt
對應的文件名分別是:
test.txt.r100
test.txt.r101
test.txt.mine
test.txt
使用Cornerstone會在目標文件標記來自不同用戶的更改:
<<<<<<< .mine
你更改的代碼=======
別人更改并已經(jīng)提交到服務(wù)器的代碼>>>>>>> .r101
其中<<<<<<< .mine與=======之間表示A修改后的內(nèi)容,=======與>>>>>>>
.r101之間是版本服務(wù)器上的版本
解決沖突的方法:
和同事溝通后襟诸,如果采用自己更改的代碼則手動刪除他人的代碼和多余的符號绞惦,然后提交。
如果采用他人的代碼則刪除自己的代碼和多余的符號甥温,然后提交锻煌。
使用終端svn不會在目標文件標記沖突內(nèi)容,而是會在輸入 svn up 更新命令后輸出提示信息:
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options:
輸入df命令可以查看沖突的內(nèi)容姻蚓。
輸入mc命令是采用自己的更改宋梧。
輸入tc命令是采用他人的更改。
至此狰挡,更新完成捂龄。接下來就是提交的過程。
另外一種方法就是revert回滾:
恢復到上一次更新的代碼加叁,相當于放棄了本次自己更改的內(nèi)容倦沧。