1. 程式人生 > >SVN版本衝突解決

SVN版本衝突解決

版本衝突原因:

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

版本衝突現象:

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

假設檔名是kingtuns.txt

對應的檔名分別是:

kingtuns.txt.r101

kingtuns.txt.r102

kingtuns.txt.mine

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

版本衝突解決:

場景:

1、現在A、B兩個使用者都更新kingtuns.txt檔案到本地。

1

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

2

3、A使用者修改檔案,新增內容“A使用者修改內容”完成後提交到伺服器

3

4

4、B使用者修改檔案,新增內容“B使用者修改內容”完成後提交到伺服器

5

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

6

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

解決衝突有三種選擇:

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

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

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

解決步驟如下:

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

 7

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

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

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

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

     8

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

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

    9

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

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

10

6、  衝突解決

      11

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

 12

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

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

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

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

相關推薦

SVN版本衝突解決

版本衝突原因: 假設A、B兩個使用者都在版本號為100的時候,更新了kingtuns.txt這個檔案,A使用者在修改完成之後提交kingtuns.txt到伺服器,這個時候提交成功,這個時候kingtuns.txt檔案的版本號已經變成101了。同時B使用者在版本號為100的k

SVN 版本衝突解決

環境:Visual Studio 2010外掛:問題:假設A、B兩個使用者都在版本號為10的時候,更新了NewBillFeature.cs這個檔案,A使用者在修改完成之後提交NewBillFeature

SVN版本衝突解決詳解@http://blog.csdn.net/windone0109/article/details/4857044

版本衝突原因: 假設A、B兩個使用者都在版本號為100的時候,更新了kingtuns.txt這個檔案,A使用者在修改完成之後提交kingtuns.txt到伺服器,這個時候提交成功,這個時候kingtuns.txt檔案的版本號已經變成101了。同時B使用者在版本號為100的k

淺談svn版本衝突解決方法

(1)合理分配專案開發時間 譬如: 甲:上午開發 乙:下午開發 (2)合理分配專案開發模組,為每個人分配單獨的模組 譬如: 甲:負責開發購物車模組 乙:負責開發文章模組 (3)通過SVN解決版本衝突問題             (1)更新伺服器端資料到本地        

SVN學習之-版本衝突解決

版本衝突原因:舉個例子,如果張三和李四合作做同一個專案A,當前SVN伺服器中最新版本是A.1,張三和李四都在A.1的基礎上再進行開發。張三將當天做好的版本提交後,此時伺服器中最新版本是A.2,這時李四又提交自己的版本上去,這時李四的版本是基於A.1改的,而伺服器中此時的最

JDK多版本衝突解決方案

今日檢視JDK版本 java -version,突然出現一條錯誤提示 has value '1.8', but '1.7' is required Error: could not find java.dll

SVN程式碼衝突解決方案

原文連結:https://www.cnblogs.com/dunitian/p/4333443.html 對於剛接觸svn的人來說,svn衝突後,不能提交是件讓人很鬱悶的事情。最讓人鬱悶的事,是程式碼間的覆蓋。你把我程式碼蓋了,我會很火大的。誰把誰的蓋了都不爽。 為什麼會出現程式碼

SVN版本衝突,COMMIT時出現.MINE等檔案

以commit後 自動生成R.java.mine,R.java.r3368,R.java.r3439為例 因為發生衝突了,別人和你都從3368這個版本對r.java這個檔案進行了修改,別人修改後先提交了形成3439版本,然後你做了提交操作,這時為了避免你覆蓋別人的修改

transformClassesWithJarMergingForRelease解決辦法 解決版本衝突 解決jar包衝突

因為重複引用造成打包時候出現 transformClassesWithJarMergingForRelease的解決辦法 可以通過gradle配置或者在依賴宣告時新增exclude的方式來排除指定的引用。   exclude可以接收group和module兩個引數,這兩個引數可以單獨使用

linux安裝軟體過程中版本衝突解決方法

在安裝pcre的過程中,報錯:Invalid C++ compiler or C++ compiler flags。百度了下說是需要安裝g++,於是敲入命令  yum install gcc-c++,又報了一對錯: --> Running transaction c

jQuery版本衝突解決方法

眾所周知,jquery版本很多,而且有些版本的衝突也非常明顯,有一些網上流傳的很實用的外掛是用A版本寫的,但是要實現另個功能又必須用B版本。所以實現版本之間的和平相處很重要。這裡介紹一個函式,可以很順利,很簡單的解決這個問題。 使用例項: <scripttyp

ButteKnife的外掛與gradle外掛版本衝突解決方法

將butterknife外掛版本降為8.4.0如下:build.gradle如下:   buildscript {    repositories {        jcenter()        google()    }    dependencies {       

【安卓】android第三方庫導致support版本衝突解決方案

問題 升級compileSdk版本到26,同時修改了support包的版本,報錯 all com.android.support libraries must use the exact same version specification(mixin

引入jquery外掛時的版本衝突解決

以時間外掛的引入為例: 這個時間外掛是jQuery-1.10.2寫的,系統用的是jQuery-1.8.3所以首先解決不同jQuery的版本衝突問題。 具體解決方法如下: <!--日期樣式--> <link rel="style

同一個jar包不同版本衝突解決方法

一個專案裡面同一個jar包一般不能有兩個版本的 不然可能會出現jar包衝突的情況 常見報錯有這三個: 1、java.lang.ClassNotFoundException(找不到類) 2、java.lang.NoSuchMethodError(找不到具體方

SVN程式碼衝突解決方案小集合

對於剛接觸svn的人來說,svn衝突後,不能提交是件讓人很鬱悶的事情。最讓人鬱悶的事,是程式碼間的覆蓋。你把我程式碼蓋了,我會很火大的。誰把誰的蓋了都不爽。 為什麼會出現程式碼衝突問題呢,因為不同的人,同時修改了同一個檔案的同一個地方,這個時候,他提交了,你沒有提交,你就提交不了,這個時候,你要先更新,更新

SVN衝突解決 合併別人的修改zz

在專案中,基本不可避免多個人同時參與一個專案,因此就可能會出現多個人同時修改一個檔案的情況,就不可避免的會出現衝突。svn已經很聰明瞭,如果你和別人對於同一個檔案的修改之間不存在重疊(比如你在檔案最開始增加了一行,而你同事在檔案的結尾出增加了一行),svn會自動將你們的修

Call requires API level 11 (current min is 8): new android.app.Fragment API版本衝突解決辦法

        我當前的應用程式支援的Android最小本號是8,而我需要使用Fragment這個控制元件,Fragment是API 11之後才有的,所以系統提示我: Call requires API level 11 (current min is 8): new an

SVN進階解決衝突版本控制工具

什麼時候容易出現衝突? 多個人同時修改了同個檔案中的同一行程式碼 無法進行對比的二進位制檔案,比如圖片等 如何解決衝突? 例項分析 下面,我們根據實際應用場合,模擬出現衝突,到如何通過SVN提供的Edit Conflicts 介面,通過顏色標識和操作按鈕,快速準確地合併

SVN解決版本衝突

SVN衝突出現場景 如今是一個團結協作的時代,開發一個系統,往往會多人協作共同完成。版本管理是必不可少的,常用的軟體有Git,SVN等。今天說一下,SVN管理版本時,如果出現衝突後,如何快速解決衝突。 首先說明一個問題,有一種情況無論如何都不會出現衝突。假如有一個叫qaz