1. 程式人生 > >SVN系列(三)解決版本衝突的方法

SVN系列(三)解決版本衝突的方法

一、產生衝突的原因:

根本原因就是兩個使用者都在使用同一個檔案,其中一個對檔案使用完成之後提交到伺服器端,此時導致該檔案的版本已經發生變化,而正在使用的使用者仍然使用的是老版本的檔案,當再次提交時導致版本不一致提交錯誤。

二、解決方法:

從伺服器端下載檔案:


相當兩個使用者使用同一個檔案

其中一個使用者對檔案進行了修改,然後提交

使用者提交:

現在第二個使用者也修改了檔案,同樣進行提交,但是和第一個使用者的修改內容不一樣

如圖,顯示的是第一個使用者提交成功,但是第二個使用者在提交的時候出現了問題:

上面的錯誤提示,必須先更新工作副本!

選擇升級:

這就是產生了衝突,原因就是兩次提交的是同一個檔案,但是第二個在提交的時候版本已經發生了變化。

網上提供解決辦法:

1、  放棄自己的更新,使用SVNrevert(回滾),然後提交

2、  放棄自己的更新,使用別人的更新。使用最新獲取的版本覆蓋目標檔案,執行resolved filename 提交(選擇檔案——右鍵——解決),一般不採用這種方式。

3、  手動解決衝突:衝突發生時,和使用者溝通,手動更新目標檔案,然後執行resolved filename 來解決衝突,最後提交。

可以看到檔案和檔案內容的圖示都變成了黃色感嘆號:

我提供的幾種解決方法:

1、如果是對於第一個版本的修改我們還需要的話,那就在第二個版本的基礎上進行還原SVN:

這樣此版本的檔案就是剛剛已經提交使用者的檔案,在這個基礎上重新進行修改。然後提交,然後更新。

2、如果是不要第一個版本的修改,需要提交第二個使用者的修改,那麼就把版本恢復到第一個使用者提交之前的狀態,然後提交新修改的版本。

單擊資料夾,選擇顯示日誌,檢視日誌資訊,選擇恢復的版本,然後在這個版本上新增第二個使用者的修改內容,再提交和更新,這樣伺服器上的版本就是第二個使用者的修改的版本。

單擊復原到此版本。

3、如果兩個使用者修改的版本都需要,那麼在第二個使用者修改的資料夾上單擊

選擇“已解決的”,這樣兩個修改檔案合併到了一個版本上,然後再次提交,更新!

當遇到衝突的時候,可以把衝突版本和已經提交的版本進行比較,然後找出不同的地方,經過溝通或者其他方式商討出合適的版本,然後進行恢復版本、提交。

左邊的窗體為伺服器上的當前最新版本

右邊的窗體為本地修改的版本

如果想用最新修改的版本,就在相應版本(左邊或者右邊)上單擊出現:

當然根據提示也可以選擇他們的,根據版本需要進行選擇。

然後選中衝突的檔案右鍵

選擇“已解決的”,然後提交版本,再更新版本。

這樣版本庫中就是新修改的版本。

解決衝突的辦法有好多,根據自己想要的版本需求,選擇合適的方法!

在此,關於SVN衝突的解決方案就介紹到此,關於SVN系列的部落格就介紹到此了!

在對待衝突的問題上,我們要做的不是如何解決衝突,而是避免衝突,因為在軟體開發過程中,衝突要儘量的減少才能保證軟體程式設計的方便、快捷和正確,避免衝突的方法我們可以對伺服器上的檔案進行許可權控制,不是每一個使用者都可以隨便的訪問這個檔案,事實上,在軟體開發過程中,我們能夠訪問的也多是自己負責的那部分的東西。還有就是對於已經修改的檔案要及時提交,及時更新,不要等好長時間才提交,這樣方便別人在用的時候是在最新版本的基礎上進行的修改,另外每次提交檔案的時候要註釋好這個檔案做了哪些方面的修改,方便檔案的還原和後續使用。

程式設計是一種習慣,工作也是一種習慣,我們對待每件事情都要有一個認真負責的好習慣!