Eclipse SVN 衝突的 介紹 及 四種解決方式
1.為什麼會出現衝突
<1>兩個開發人員,Harry和Sally,分別從伺服器端下載了檔案A。
<2>Harry修改之後,A變成了A’,Sally修改之後,A變成了A”。
<3>Harry先一步提交,使伺服器端檔案的版本也變成了A’
<4>Sally本地的檔案A”已經過時了,此時她已無法提交檔案,伺服器會要求她先進行一次更新操作。
<5>此時Sally的更新操作有兩種可能
(1)Sally所做的修改與Harry不是同一個位置,更新操作嘗試合併檔案成功。
(2)Sally所做的修改與Harry恰好是同一個位置,更新操作嘗試合併檔案失敗,發生衝突。
如下圖
:
2. 衝突的解決
在衝突檔案上點右鍵→Team→編輯衝突…→出現如下介面
注 : 下圖是以對比的方式將本地內容與衝突內容顯示出來,其中左側為本地內容,右側為衝突內容。其中本地內容是可以修改的。根據需要和實際情況將本地內容更正 , 這個過程很可能需要牽涉衝突的兩位開發人員進行必要的溝通 衝突解決完之後 , 在衝突檔案上點右鍵→Team→標記為解決(此處有四種解決方式,下面介紹) 此時.mine檔案和.r版本號檔案都會被自動刪除,衝突檔案的圖示變為”*”,表示可以提交。
提交檔案,檔案圖示變為”金色圓柱體”。
四種衝突的解決方式
將兩個版本的檔案合成一個,就是 我改的部分需要 , 同事改的也有一部分要保留 (常用) 以我寫的版本為準,將同事在我之前提交的版本,給替換掉(偶爾用) 使用SVN上最新的版本 (就是你寫的不要了, 直接用別人的. 這種情況其實你直接還原一下你改的檔案就行了 ~.~ ,沒必要這麼麻煩了就) 還原到 你 和 你同事 改之前的版本(這種情況出現比較少,比如我改著改著,後來別人說這個功能不做了,其他同事修改的也要取消,就可以選擇這個)