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...