解決Eclipse SVN文件衝突詳解

在使用Eclipse SVN插件進行團隊開發的過程,假設開發人員A和B都獲取了同一個文件的最新版本(假如版本號爲8),並都對其進行了改動,成員A已經提交了自己所作的改動(版本號變爲9),如果此時成員B想要提交自己的改動,就極有可能與成員B已經提交的改動產生衝突。

如下圖所示,在Eclipse SVN同步視圖中的Test.java就是一個產生了版本衝突的文件,那麼我們該如何解決SVN的文件衝突呢?

產生版本衝突的Test.java

1、解決簡單的文件版本衝突

對於產生版本衝突的文件,如果兩個人改動的不是同一處位置,例如成員A只改動了文件頭部,成員B只改動了文件的尾部,那麼無需過多擔心,因爲現在的SVN已經非常智能,只要兩者的改動互不影響,SVN可以智能地將其合併,最後的結果就是文件頭部是A改動的結果,尾部是B改動的結果,中間保持不變。

這種情況下,我們可以直接右鍵該文件,先在關聯菜單中點擊【更新】(Update),將服務器上的改動更新到本地,然後再點擊【提交】即可。

2、解決二選一形式的文件版本衝突

經過文件對比後,如果我們發現兩者改動的是同一個位置或者是同一個功能點,那麼我們可能需要選擇性地保留一個,捨棄另一個。

如果捨棄的是本地文件,請右鍵單擊該文件,然後在關聯菜單中點擊【覆蓋/更新】(英文:Replace/Update),此時Eclipse將提示"是否刪除本地更改,並替換爲資源庫中的文件",直接點擊【Yes】即可捨棄本地更改,並更新爲資源庫中的最新版本。

如果捨棄的是資源庫中的文件,請右鍵單擊該文件,然後在關聯菜單中點擊【標記爲合併】,然後再點擊【提交】即可。

3、解決複雜的文件版本衝突

如果本地和資源庫中的文件改動都"各有所需"又"各有所棄",那麼我們只能在文件對比中,一處處對比不同之處,並逐步修改爲最終版本。

在修改與合併的過程中,有兩個圖標按鈕比較重要。如下圖所示的紅色邊框標註的兩個圖標,前者可以將右側與本地文件沒有產生衝突的改動複製到左側的本地文件中(比如,只有main()方法有衝突,右側的sayHi()方法沒有衝突,右側的sayHi()方法部分就會複製到左側文件相匹配的位置),後者用於將鼠標光標當前所在的右側改動區域複製到左側相應位置。

文件對比處理版本衝突

在確認改動完成之後,同樣的點擊右鍵關聯菜單中的【標記爲合併】,然後直接【提交】即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章