深入剖析Subversion Client
本節(jié)主要向大家講解Subversion Client ,大家應(yīng)該知道 SVN是CVS的下一個(gè)版本,主要用來(lái)進(jìn)行版本控制,可以對(duì)程序代碼,音頻,視頻以及圖像文件等,做版本控制。目錄以及文件是Subversion中可以記錄版本的對(duì)象。希望通過(guò)本節(jié)學(xué)習(xí)大家能夠掌握Subversion Client 的使用問(wèn)題。
分支,主干,合并,標(biāo)簽
創(chuàng)建一個(gè)分支或者標(biāo)簽時(shí),采用一種"延遲拷貝"的技術(shù),即只創(chuàng)建指向同一版本的鏈接,當(dāng)其中某個(gè)文件有所改動(dòng)時(shí),再去復(fù)制那個(gè)文件或者目錄。
一般地來(lái)講,分支是用來(lái)做準(zhǔn)備發(fā)布的,而不是并行開(kāi)發(fā)。
1、創(chuàng)建一個(gè)項(xiàng)目倉(cāng)庫(kù)
svnadmincreate/home/huzza/test_svn
2、import初始文件到項(xiàng)目倉(cāng)庫(kù)中
svnimport-msource_file_pathURL本例URL:file:///home/huzza/test_svn/sesame/trunk
file://------>告訴svn是本地目錄
3、checkout文件到本地目錄
svncheckout(co)file:///home/huzza/test_svn/sesame/trunksesame
4、檢查文件狀態(tài)或者日至
svnstatus[文件/目錄](méi)
svnlog[文件/目錄](méi)
svnlog-r6:8[文件/目錄](méi)查看版本6到版本8之間的日志
5、文件/目錄比較(工作拷貝與項(xiàng)目創(chuàng)庫(kù)中的比較)
看一下Subversion Client 文件目錄比較,svndiff[文件/目錄](méi)或者svndiff--rHEAD[文件/目錄](méi)--rHEAD:表示最新版本
6、更新本地工作拷貝,提交工作修改
svnupdate(up)[文件/目錄](méi)svncheckin(in)-m"comments"[文件/目錄](méi)
update時(shí)的一些文件標(biāo)志:
U------表示文件被更新
G------表示項(xiàng)目創(chuàng)庫(kù)中的文件和本地工作拷貝的文件合并到了一起
C------表示合并時(shí),有沖突產(chǎn)生
A------新加入了一個(gè)文件
D------刪除了一個(gè)文件
?------表示該文件或者目錄沒(méi)有被svn管理
M------該文件被修改
7、沖突。Subversion Client 中的沖突問(wèn)題。當(dāng)svnupdate時(shí),如果存在某個(gè)文件存在沖突,打開(kāi)沖突的文件,<<<<<<<<和>>>>>>>>表明了沖突發(fā)生的地方。當(dāng)沖突發(fā)生時(shí),如果想使用項(xiàng)目倉(cāng)庫(kù)中的版本,而放棄本地拷貝的修改,可以使用以下命令:
a、svnrevert[沖突的文件/目錄](méi)
b、svnupdate[沖突的文件/目錄](méi)
(svnresolved[文件/目錄](méi)&&svnupdata[文件/目錄](méi),似乎也是ok的,需要confirm一下)
如果想保留本地工作拷貝的修改,而放棄項(xiàng)目倉(cāng)庫(kù)中版本的修改,可以如下:
a、cp文件/目錄.mine文件/目錄
b、svnresolved文件/目錄
c、svnci-m"usemyversionplease"文件/目錄
(在上面的三個(gè)步驟中,似乎不用做步驟a也可以達(dá)到目的)
8、使svn項(xiàng)目倉(cāng)庫(kù)聯(lián)網(wǎng)
啟動(dòng)svn服務(wù)器:svnserve--daemon--root/home/huzza/test_svn
列服務(wù)器資源:svnlistsvn://192.168.0.4/sesame/trunk出來(lái)后面的URL不同,其他操作的各部分均相同
svn+ssh訪問(wèn):svnlistsvn+ssh://192.168.0.4/sesame/trunk(需要在服務(wù)器上支持ssh訪問(wèn))
9、得到特定版本的工作拷貝
svncheckout-rVersionNumlistsvn://192.168.0.4/sesame/trunkbutterfly
svninfobutterfly(查看當(dāng)前版本拷貝的狀態(tài))
10、拷貝/移動(dòng)文件
svncopyfilenamenewfile
svnmoveoldfilenewfile
svnci-m"addormovesomefiles"[修改文件所在的目錄](méi)(這里確保服務(wù)器上也作跟本地拷貝相同的動(dòng)作)
11、版本的符號(hào)
我們?cè)賮?lái)看一下Subversion Client 版本的符號(hào),其中HEAD---------項(xiàng)目倉(cāng)庫(kù)中的最新版本
BASE---------工作拷貝的基準(zhǔn)版本(也就是checkout出來(lái)時(shí)的版本)
COMMITTED----最后一次checkin的版本
PREV---------COMMITTED之前的一個(gè)版本
12、查找版本之間的差異
svndiff-r2:4[文件/目錄](méi)
svndiff>diffname.patch(生成patch文件)使用patch文件:patch-p0-idiffname.patch
13、刪除后一個(gè)版本對(duì)前一個(gè)版本的修改
svnmerge-r27:26[文件/目錄](méi)&&svnci-m"undotheworkofversion27"撤銷版本27所做的修改
14、創(chuàng)建分支/標(biāo)簽
svnmkdir-m"Createbranches"svn://192.168.0.4/sesame/branches
svncopy-m"Createreleasebranchesforversion1.0"svn://192.168.0.4/sesame/trunk\
svn://192.168.0.4/sesame/branches/release-1.0。本節(jié)Subversion Client 的內(nèi)容講解完畢,請(qǐng)關(guān)注本節(jié)其他相關(guān)報(bào)道。
【編輯推薦】
- Subversion客戶端使用詳解
- 技術(shù)總結(jié):Subversion Client API編程在Windows下進(jìn)行環(huán)境配置詳解
- 深度剖析:Subversion服務(wù)器安裝配置
- 三大主流Subversion客戶端初探
- MyEclipse下配置SVN專家全程指導(dǎo)

















