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