新聞中心
如今是一個(gè)團(tuán)結(jié)協(xié)作的時(shí)代,開發(fā)一個(gè)系統(tǒng),往往會(huì)多人協(xié)作共同完成。版本管理是必不可少的,常用的軟件有Git,SVN等。今天說(shuō)一下,SVN管理版本時(shí),如果出現(xiàn)沖突后,如何快速解決沖突。

創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、沙縣網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城網(wǎng)站定制開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為沙縣等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
假設(shè) A、B 兩個(gè)用戶都在版本號(hào)為 100 的時(shí)候,更新了 kingtuns.txt 這個(gè)文件,A 用戶在修改完成之后提交 kingtuns.txt 到服務(wù)器, 這個(gè)時(shí)候提交成功,這個(gè)時(shí)候 kingtuns.txt 文件的版本號(hào)已經(jīng)變成 101 了。同時(shí)B用戶在版本號(hào)為 100 的 kingtuns.txt 文件上作修改, 修改完成之后提交到服務(wù)器時(shí),由于不是在當(dāng)前最新的 101 版本上作的修改,所以導(dǎo)致提交失敗。
我們已在本地檢出 runoob01 庫(kù),下面我們將實(shí)現(xiàn)版本沖突的解決方法。
我們發(fā)現(xiàn) HelloWorld.html 文件存在錯(cuò)誤,需要修改文件并提交到版本庫(kù)中。
我們將 HelloWorld.html 的內(nèi)容修改為 “HelloWorld! http://www.runoob.com/”。
root@runoob:~/svn/runoob01/trunk# cat HelloWorld.html
HelloWorld! http://www.runoob.com/
用下面的命令查看更改:
root@runoob:~/svn/runoob01/trunk# svn diff
Index: HelloWorld.html
===================================================================
--- HelloWorld.html (revision 5)
+++ HelloWorld.html (working copy)
@@ -1,2 +1 @@
-HelloWorld! http://www.runoob.com/
+HelloWorld! http://www.runoob.com/!
嘗試使用下面的命令來(lái)提交他的更改:
root@runoob:~/svn/runoob01/trunk# svn commit -m "change HelloWorld.html first"
Sending HelloWorld.html
Transmitting file data .svn: E160028: Commit failed (details follow):
svn: E160028: File '/trunk/HelloWorld.html' is out of date
這時(shí)我發(fā)現(xiàn)提交失敗了。
因?yàn)榇藭r(shí),HelloWorld.html 已經(jīng)被 user02 修改并提交到了倉(cāng)庫(kù)。Subversion 不會(huì)允許 user01(本例使用的 svn 賬號(hào))提交更改,因?yàn)?user02 已經(jīng)修改了倉(cāng)庫(kù),所以我們的工作副本已經(jīng)失效。
為了避免兩人的代碼被互相覆蓋,Subversion 不允許我們進(jìn)行這樣的操作。所以我們?cè)谔峤桓闹氨仨毾雀鹿ぷ鞲北尽K允褂?update 命令,如下:
root@runoob:~/svn/runoob01/trunk# svn update
Updating '.':
C HelloWorld.html
Updated to revision 6.
Conflict discovered in file 'HelloWorld.html'.
Select: (p) postpone, (df) show diff, (e) edit file, (m) merge,
(mc) my side of conflict, (tc) their side of conflict,
(s) show all options: mc
Resolved conflicted state of 'HelloWorld.html'
Summary of conflicts:
Text conflicts: 0 remaining (and 1 already resolved)
這邊輸入”mc”,以本地的文件為主。你也可以使用其選項(xiàng)對(duì)沖突的文件進(jìn)行不同的操作。
默認(rèn)是更新到最新的版本,我們也可以指定更新到哪個(gè)版本
svn update -r6
此時(shí)工作副本是和倉(cāng)庫(kù)已經(jīng)同步,可以安全地提交更改了
root@runoob:~/svn/runoob01/trunk# svn commit -m "change HelloWorld.html second"
Sending HelloWorld.html
Transmitting file data .
Committed revision 7.
當(dāng)前文章:SVN沖突解決
地址分享:http://m.fisionsoft.com.cn/article/dhpgdes.html


咨詢
建站咨詢
