SVN版本衝突解決詳解

2022-03-14 16:02:52 字數 1581 閱讀 6027

版本衝突原因:

假設a、b兩個使用者都在版本號為100的時候,更新了這個檔案,a使用者在修改完成之後提交到伺服器,這個時候提交成功,這個時候檔案的版本號已經變成101了。同時b使用者在版本號為100的檔案上作修改,修改完成之後提交到伺服器時,由於不是在當前最新的101版本上作的修改,所以導致提交失敗。

版本衝突現象:

衝突發生時,subversion會在當前工作目錄中儲存所有的目標檔案版本[上次更新版本、當前獲取的版本(即別人提交的版本)、自己更新的版本、目標檔案]。

假設檔名是

對應的檔名分別是:

同時在目標檔案中標記來自不同使用者的更改。

版本衝突解決:

場景:1、現在a、b兩個使用者都更新檔案到本地。

2、文件中原始檔案內容如下:

3、a使用者修改檔案,新增內容「a使用者修改內容」完成後提交到伺服器

4、b使用者修改檔案,新增內容「b使用者修改內容」完成後提交到伺服器

b使用者提交更新至伺服器時提示如下:

b使用者將檔案提交至伺服器時,提示版本過期:首先應該從版本庫更新版本,然後去解決衝突,衝突解決後要執行svn resolved(解決),然後在簽入到版本庫。在衝突解決之後,需要使用svn resolved(解決)來告訴subversion衝突解決,這樣才能提交更新。

解決衝突有三種選擇:

a、放棄自己的更新,使用svn revert(回滾),然後提交。在這種方式下不需要使用svn resolved(解決)

b、放棄自己的更新,使用別人的更新。使用最新獲取的版本覆蓋目標檔案,執行resolved filename並提交(選擇檔案—右鍵—解決)。

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

解決步驟如下:

1、 在當前目錄下執行「update」(更新)操作

2、 在衝突的檔案上(選中檔案--右鍵選單—tortoisesvn—edit conflicts(解決衝突)),出現如下視窗

theirs視窗為伺服器上當前最新版本

mine視窗為本地修改後的版本

merged視窗為合併後的檔案內容顯示

3、 如果要使用伺服器版本,在theirs視窗選中差異內容,右鍵,選擇use this text block(使用這段文字塊)。

同理如果要使用本地版本,在協商後,在mine視窗右鍵,選擇use this text block(使用這段文字塊)。

4、 修改完成後,儲存檔案內容。

5、 在b使用者的衝突目錄下,選中檔案--右鍵選單—tortoisesvn—resolved(解決)。會列出衝突的檔案列表,如果確認已經解決,點ok。

6、 衝突解決

7、提交解決衝突後的檔案。

如何降低衝突解決的複雜度:

1、當文件編輯完成後,盡快提交,頻繁的提交/更新可以降低在衝突發生的概率,以及發生時解決衝突的複雜度。

2、在提交時,寫上明確的message,方便以後查詢使用者更新的原因,畢竟隨著時間的推移,對當初更新的原因有可能會遺忘

3、養成良好的使用習慣,使用svn時每次都是先提交,後更新。每天早上開啟後,首先要從版本庫獲取最新版本。每天下班前必須將已經編輯過的文件都提交到版本庫。

普元EOS 5 3特別版本 SVN配置

修訂記錄 普元ide是eclipse外掛程式,預設不能使用svn,可以通過安裝外掛程式方式,安裝svn,配置前請備份好 新建遠端站點,遠端站點名稱url 然後按嚮導安裝即可。安裝完成後,重新啟動。安裝成功後,開啟首選項,應該可以看到svn配置。同時,可以切換進入svn資源研究檢視 切換到j a檢視,...

電腦IP衝突解決方案

一 區域網內開啟了自動分配ip,有人手動輸入ip不自動獲取,這樣會不會發生ip位址衝突!2 如果是自動分配位址在前,手動指派位址在後,那麼,手動指派的位址只要已經被自動分配給某台終端,絕對會衝突,解決方法 自動獲取方,先釋放ip位址 方法 執行中輸入 cmd回車,然後輸入ipconfig relea...

衝突處理與矛盾解決教案

課時 1課時 課型 分組討論 授課老師 馮進雲 一 教學目標 1 使學生掌握處理好自己矛盾和衝突的方法 2 能妥善處理矛盾和衝突 3 能有效的防範衝突的發生 4 培養學生在和同學相處過程中的修養和品質。二 教學重難點 1 了解化解矛盾衝突的方法 2 妥善處理好矛盾衝突。三 教學過程 將學生分為四個小...