SVN沖突解決方法名師介紹
本節(jié)向大家講解一下SVN沖突的解決方法,在這里和大家分享一下,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西,歡迎打擊一起來學(xué)習(xí)SVN沖突方面的知識(shí)。
本人使用SVN的時(shí)間不是很長,在使用之前也僅僅是粗淺的了解過這個(gè)軟件。從今年的8月份開始,由于一個(gè)項(xiàng)目使用Eclipse3.1,跨地域的開發(fā),為了適應(yīng)不同的開發(fā)人員處于不同的地理位置,因此我們使用SVN作為團(tuán)隊(duì)開發(fā)的管理工具。開始使用時(shí),僅僅是邊學(xué)邊用,遇到不懂的地方再去查找資料。今天由于有點(diǎn)時(shí)間,先把合并過程遇到的沖突問題詳細(xì)了解一下。
可以使用svnstatus-u命令來查看一下某個(gè)問題是否會(huì)有沖突發(fā)生。在使用svnupdate的時(shí)候,會(huì)出現(xiàn)如下一些信息:
$svnupdate
UINSTALL
GREADME
Cbar.c
Updatedtorevision46.
那么,U開頭的信息提示你,這個(gè)文件在你本地沒有修改過,文件已經(jīng)根據(jù)版本庫的新版本更新了。G開頭的信息提示你,這個(gè)文件在你本地已經(jīng)修改過,但是和版本庫中對(duì)應(yīng)的版本并沒有沖突的地方,svn已經(jīng)合并更新了。而C開頭的信息提示你,這個(gè)文件有點(diǎn)麻煩,你在本地的修改和版本庫中的版本修改的地方重疊了,也就是說,你修改了某一行,你的同事也修改了同一行。這個(gè)就需要你自己手工去解決了。當(dāng)沖突發(fā)生時(shí),要注意到有三件事情可以幫助你解決問題。
a.Subversion會(huì)給這個(gè)文件作出c標(biāo)記。
b.如果Subversion認(rèn)為這個(gè)文件時(shí)可以合并的,它會(huì)一個(gè)沖突標(biāo)記(特殊的橫線來分開沖突的代碼塊)
c.對(duì)每一個(gè)沖突的文件,Subversion放置三個(gè)額外的未版本化文件到你的工作拷貝。
filename.mine
你更新前的文件,沒有SVN沖突標(biāo)志,只是你***更改的內(nèi)容。(如果這個(gè)文件不可以合并,.mine文件不會(huì)創(chuàng)建,因?yàn)樗凸ぷ魑募嗤?。?br />
filename.rOLDREV
這個(gè)是你做更新操作以前的BASE版本,就是你在上次更新之后未作更改的版本。
filename.rNEWREV
這是Subversion從服務(wù)器剛剛收到的版本。這個(gè)版本就是版本庫的HEAD版本。
例如,如果sally修改了一個(gè)文件sandwich.txt,而harry也剛剛修改了這個(gè)文件的相同位置并提交到服務(wù)器。那么sally在做這個(gè)文件的update操作的時(shí)候會(huì)得到三個(gè)額外的文件sandwich.txt.mine、sandwich.txt.r1、sandwich.txt.r2。并且在提交的時(shí)候會(huì)遭到服務(wù)器的拒絕,因?yàn)檫@個(gè)文件的沖突問題還沒有得到解決。要解決這個(gè)沖突,可以選擇:
a.手工合并SVN沖突文件(檢查和修改文件中的沖突標(biāo)志)。
b.用一個(gè)臨時(shí)文件(三個(gè)中的一個(gè))覆蓋你的工作文件。
c.運(yùn)行svnrevert<filename>來放棄所有的修改。
一旦解決了你的沖突,需要通過命令svnresolved讓subversion知道并刪除三個(gè)臨時(shí)文件。這時(shí)才可以提交。
下面再說說手工合并SVN沖突。開始的時(shí)候讓人覺得害怕,但做一段時(shí)間之后,就覺得不那么煩人了。
看看如下文本:
Mayonnaise
Lettuce
Tomato
Provolone
<<<<<<<.mine
Salami
Mortadella
Prosciutto
=======
Sauerkraut
GrilledChicken
>>>>>>>.r2
CreoleMustard一連串的大于、小于、等于號(hào)是SVN沖突標(biāo)記,這些數(shù)據(jù)得全部刪除才可以提交。其中,
<<<<<<<.mine
Salami
Mortadella
Prosciutto
=======是你在沖突區(qū)里面做的修改。
Sauerkraut
GrilledChicken
>>>>>>>.r2
是別人在沖突區(qū)做的修改。
在SVN沖突區(qū)中,或許你需要和你的同事溝通來安排沖突區(qū)的文本內(nèi)容,如果是程序代碼,你需要和同事商量一下,中間的這段代碼到底應(yīng)該是什么樣子的。
所有沖突區(qū)得到合理的解決之后,你就可以提交你的文件了。
【編輯推薦】
- 揭開SVN沖突神秘面紗
- SVN管理與應(yīng)用相關(guān)的資料參考手冊(cè)
- ApacheSVN服務(wù)器安裝指導(dǎo)手冊(cè)
- Windows下SVN服務(wù)配置和使用學(xué)習(xí)課堂
- SVN服務(wù)器安裝指導(dǎo)手冊(cè)