SVN 衝突檔案詳解

2022-02-27 16:10:11 字數 2247 閱讀 2452

filename.mine

你更新前的檔案,沒有衝突標誌,只是你最新更改的內容。(如果這個檔案不可以合併,.mine檔案不會建立,因為它和工作檔案相同。)

filename.roldrev

這個是你做更新操作以前的base版本,就是你在上次更新之後未作更改的版本。【其實是

base版本號

】filename.rnewrev

這是subversion從伺服器剛剛收到的版本。這個版本就是版本庫的head版本。

再來介紹一下什麼是base版本

對base不清楚的,可以檢視下面內容

在這裡我將使用用例,詮釋他們的作用和意圖。

先給出svn手冊中對他的解釋:

"head"      

latest in repository

"base"       base rev of item's working

copy

"committed"  last commit at or before base

"prev"       revision

just before committed

head表示在版本庫中最新的版本,記住一定是版本庫,而不是某個working-copy,

另外需要注意的是,這裡提到版本庫是指對應working-copy的那個分支或主幹。

committed表示在working-copy中最近的一次提交版本。

prev表示在working-copy中最近的倒數第二次提交版本,也就是committed

- 1。

前面3個概念都是比較好理解的。

最後乙個base有點不好理解,先給出例子,最後結論base的含義

-bash-2.05b$ svn co

a    proxylog/proxyio.procinfo

a    proxylog/pi.cpp

a    proxylog/makefile

a    proxylog/run.sh

checked out revision 134057.

-bash-2.05b$ svn st -v

134057   134034 deyi.long    .

134057   102502 deyi.long    proxyio.procinfo

134057   134034 deyi.long    pi.cpp

134057   102674 deyi.long    makefile

134057   114428 deyi.long    run.sh

備註:第一列表示base, 第二列表示committed

可以看出checkout乙個working-copy後,svn會給這個working-copy分乙個新的、統一的base版本號(如

134057)。

接下來可以修改pi.cpp**,然後checkin,你就會發現這個檔案的base和committed會同時增加,並且相等。如下

-bash-2.05b$ svn st -v

134057   134034 deyi.long    .

134057   102502 deyi.long    proxyio.procinfo

134058   134058 deyi.long    pi.cpp

134057   102674 deyi.long    makefile

134057   114428 deyi.long    run.sh

接下來在此目錄下執行update動作,你就會發現所有檔案的base都進行了公升級,但是committed沒有改變,如下

-bash-2.05b$ svn up

at revision 134058.

-bash-2.05b$ svn st -v

134058   134034 deyi.long    .

134058   102502 deyi.long    proxyio.procinfo

134058   134058 deyi.long    pi.cpp

134058   102674 deyi.long    makefile

134058   114428 deyi.long    run.sh

通過上述用例,可以看出base表示在working-copy中每個檔案基準版本,會經常變動,並且有統一working-copy的版本的意圖。另外,也說明對每個檔案來說,base就是committed的別名,但是它可以和其他檔案base保持一致,用於統一,批量處理。

svn衝突問題詳解 SVN版本衝突解決詳解

解決版本衝突的命令。在衝突解決之後,需要使用svnresolved來告訴subversion衝突解決,這樣才能提交更新。衝突發生時,subversion會在workcopy中儲存所有的目標檔案版本 上次更新版本 當前獲取的版本,即別人提交的版本 自己更新的版本 目標檔案。開發人員都知道 管理工具是開...

SVN衝突解決詳解

svn衝突的現象 1 現在a b兩個使用者都更新kingtuns.txt檔案到本地。2 文件中原始檔案內容如下 3 a使用者修改檔案,新增內容 a使用者修改內容 完成後提交到伺服器 4 b使用者修改檔案,新增內容 b使用者修改內容 完成後提交到伺服器 b使用者提交更新至伺服器時提示如下 衝突的原因 ...

SVN版本衝突解決詳解

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