不再怕SVN衝突:輕鬆解決SVN衝突

何時容易出現衝突?

多我的同時修改了同個文件中的同一行代碼segmentfault

沒法進行對比的二進制文件,好比圖片等svn

如何解決衝突?

圖片描述

如上圖,test_conflict.py文件發生了衝突,而且多出了幾個文件,其中.mine是我本地修改了還沒提交的版本,.r2文件是上一個版本的文件,.r1是上上個版本的文件。工具

發生衝突時不用慌,咱們能夠輕鬆解決,選中衝突文件,右鍵以下操做
圖片描述this

有幾個選項咱們來看下:spa

Edit confilicts:修改衝突,能夠對衝突的行進行內容選擇,後面咱們詳細說。插件

Mark as resolved:直接標記爲已解決,這樣會刪除.mine、.r一、.r2這些文件,但這只是標記,若是你直接標記爲解決,實際上文件仍是衝突的,只是狀態修復了。blog

Resolve conflict using 'theirs':使用他的提交覆蓋個人修改來解決衝突。若是你的修改不須要提交,你能夠方便的選擇這個。教程

Resolve conflict using 'mine':使用我本地的版本覆蓋他的來解決衝突。若是對方提交的代碼沒什麼用,你能夠直接使用這個來解決。圖片

下面咱們詳細講解下Edit confilicts這個選項。ip

圖片描述

上圖是編輯衝突的界面,若是你的界面顯示了不少空白符號,你能夠點擊頂部的「Show Whitespaces」來隱藏。

上圖的左邊.r2展現的是上個版本的變化,右邊.mine是咱們本地修改的版本,下面是表示合併後的效果。

左上的第12行下面的綠色等號表示這行被刪除了,1三、14行前面的+號表示這兩行是新增的

右上的一樣也是刪除了一行,而後增長了第13行

下面區域的13,14行顯示的是紅色背景的問號,表示這兩行SVN不知道如何合併代碼。

假設咱們須要13行保留我爲我本地的修改,14行使用他人提交的。那麼選中右上的第13行,右鍵選擇「Use this text block」,表示使用這行的代碼;
圖片描述

選中左上的14行,右鍵選擇「Use this text block」。這樣就搞定了,下面區域會顯示合併後的效果
圖片描述

這樣下面區域的衝突行就所有解決了,點擊頂部工具欄的「Mark as resolved」標記爲已解決好衝突,或者直接ctr+s保存也會提示「Mark as resolved」菜單。

圖片描述

到這衝突就完美解決了。

這裏再解釋下其餘的一些菜單項:

Use this text block:使用這塊代碼爲合併後的行

Use this whole file:使用這整個文件做爲合併後的文件

Use text block from 'mine' before 'theirs':兩邊的代碼都保留,個人代碼在前面

Use text block from 'theirs' before 'mine':兩邊的代碼都保留,個人代碼在後面

最後推薦你們一個很是好用的SVN源碼託管站:SVNBucket

其餘相關教程

SVN快速上手
SVN經常使用命令
SVN鉤子解放你的雙手
SVN 和 Git 的一些誤解和真相
Mac用戶SVN圖形界面推薦
Eclipse安裝SVN插件和檢出代碼
相關文章
相關標籤/搜索