使用SVN命令行輕松實(shí)現(xiàn)搭建SVN版本庫(kù)服務(wù)器端
本節(jié)接著上節(jié)介紹通過(guò)Subversion的命令行,快速搭建SVN版本庫(kù)服務(wù)器端方法,歡迎大家一起來(lái)學(xué)習(xí),相信通過(guò)本節(jié)的介紹你一定會(huì)有所提高的。
6搭建SVN版本庫(kù)服務(wù)器端時(shí)需要查看版本庫(kù)文件
命令:svnlist版本庫(kù)文件目錄
通過(guò)list命令查看版本庫(kù)任意目錄下的文件夾,以及文件。
例如:查看版本庫(kù)repository根目錄下的文件目錄
命令:C:\>svnlistfile:///d:/repository/jdk5
運(yùn)行結(jié)果:
.classpath
.project
bin/
src/
注意:
我是在C盤(pán)下運(yùn)行的list命令,版本庫(kù)并不在C分區(qū)下,所以必須指定版本庫(kù)所在的分區(qū)。假如,我門(mén)直接在版本庫(kù)所在的分區(qū)下運(yùn)行l(wèi)ist命令,無(wú)需指定版本庫(kù)所在的分區(qū)
命令:D:\>svnlistfile:///repository/jdk5
運(yùn)行結(jié)果:
.classpath
.project
bin/
src/
7搭建SVN版本庫(kù)服務(wù)器端時(shí)需要取得版本庫(kù)文件到本地機(jī)器
命令:svncheckout版本庫(kù)文件PATH本地路徑文件PATH[參數(shù)]
通過(guò)import命令,僅僅是將本地代碼,導(dǎo)入到版本庫(kù)中。但是版本庫(kù)中的代碼并沒(méi)有跟本地代碼關(guān)聯(lián)起來(lái),即使我們修改了本地代碼,也無(wú)法反應(yīng)到版本庫(kù)中的。
通過(guò)checkout命令,從版本庫(kù)中取得工程的拷貝到本地,所取得的拷貝是和版本庫(kù)關(guān)聯(lián)在一起的。
例如:將導(dǎo)入的工程到取到本地機(jī)器上
命令:D:\>svncheckoutfile:///repository/jdk5e:/jdk5-r1
運(yùn)行結(jié)果:
- AE:\jdk5\.classpath
- AE:\jdk5\.project
- AE:\jdk5\src
- AE:\jdk5\src\jdk
- AE:\jdk5\src\jdk\autoboxing
- AE:\jdk5\src\jdk\autoboxing\Autoboxing.java
- AE:\jdk5\src\jdk\bigdecimal
- AE:\jdk5\src\jdk\bigdecimal\Bigdecimal.java
- AE:\jdk5\src\jdk\compare
- AE:\jdk5\src\jdk\compare\Compare.java
- Checkedoutrevision1.
命令說(shuō)明:
-r:指定要取得的文件的版本
運(yùn)行結(jié)果說(shuō)明:
checkout命令會(huì)自動(dòng)為每個(gè)文件夾在本地建立一個(gè).svn的隱藏文件文件夾,這個(gè)是存放記錄本地文件和版本庫(kù)關(guān)聯(lián)信息文件的。請(qǐng)勿刪除,如果刪除了,也就失去了和svn版本庫(kù)的關(guān)聯(lián)關(guān)系。
注意:
Checkout命令取得文件時(shí),并不會(huì)在指定的本地路徑下,自動(dòng)建立同名目錄,需要事先做成相應(yīng)的文件目錄。
8搭建SVN版本庫(kù)服務(wù)器端時(shí)需要修改文件,并且提交到svn
命令:svncommit本地文件PATH
Commit命令是
例如:修改E:\jdk5\src\jdk\autoboxing\Autoboxing.java文件后,提交到svn版本庫(kù)中
命令:D:\>svncommitE:\jdk5\src\jdk\autoboxing\Autoboxing.java-m"change20090317"
運(yùn)行結(jié)果;
SendingE:\jdk5\src\jdk\autoboxing\Autoboxing.java
Transmittingfiledata.
Committedrevision2.
命令說(shuō)明:
執(zhí)行commit時(shí),只需要指定要提交的文件的路徑即可,svn會(huì)根據(jù)“.svn”文件夾中記錄的內(nèi)容,將命令解析成“svncommit本地文件PATH版本庫(kù)PATH”的形式,然后再執(zhí)行。這里需要注意的是,被解析的“版本庫(kù)PATH”中并不包含分需信息,所以必須在版本庫(kù)所在的目錄下面執(zhí)行commit命令。
上面的命令如果不在D分區(qū)下執(zhí)行,會(huì)發(fā)生下面的錯(cuò)誤:
C:\>svncommitE:\jdk5\src\jdk\autoboxing\Autoboxing.java-m"change20090317"
svn:Commitfailed(detailsfollow):
svn:Unabletoopenanra_localsessiontoURL
svn:Unabletoopenrepository'file:///repository/jdk5/src/jdk/autoboxing'
運(yùn)行結(jié)果說(shuō)明:
Committedrevision2.:為版本庫(kù)所有文件設(shè)定統(tǒng)一的版本號(hào)。這里我們可以看到,即使修改了一個(gè)文件,但是svn是將整個(gè)版本庫(kù)的版本設(shè)定成2了,也就是說(shuō)svn并不對(duì)單獨(dú)文件設(shè)定版本號(hào)
9搭建SVN版本庫(kù)服務(wù)器端時(shí)追加新文件到svn
命令:svnadd本地目錄PATH
add命令會(huì)將指定的文件目錄以及其包含的文件提交到svn版本庫(kù)中,同時(shí)會(huì)為此文件,建立本地文件到版本庫(kù)的關(guān)聯(lián)關(guān)系(建立.svn文件夾)。但是,add命令并不會(huì)將文件追加到版本庫(kù)中,而是需要commit命令進(jìn)行提交。
例如:把E:\jdk5\src\jdk\Unboxing添加到版本庫(kù)中
命令:D:\>svnaddE:\jdk5\src\jdk\Unboxing
運(yùn)行結(jié)果:
AE:\jdk5\src\jdk\unboxing
AE:\jdk5\src\jdk\unboxing\Unboxing.java
注意:
1add命令是沒(méi)有-m參數(shù)的,原因調(diào)查中。。。
2add命令并不是真正的把本地文件追加到版本庫(kù)中,而是讓文件或者文件夾在版本控制中,也就是僅僅為文件或者文件夾建立一個(gè)和版本庫(kù)的關(guān)聯(lián)關(guān)系。我們用svnlist可以發(fā)現(xiàn),Unboxing并沒(méi)有被追加到版本庫(kù)中。如下:D:\>svnlistfile:///d:/repository/jdk5/src/jdk
autoboxing/
bigdecimal/
compare/
generic/
通過(guò)commit命令,將文件提交到版本庫(kù)中。
D:\>svncommitE:\jdk5\src\jdk\unboxing-m"addunboxing"
AddingE:\jdk5\src\jdk\unboxing
AddingE:\jdk5\src\jdk\unboxing\Unboxing.java
Transmittingfiledata.
Committedrevision6.
注意:
因?yàn)槲沂莂dd一個(gè)文件夾到版本庫(kù)中的,所以不能單獨(dú)的commit此文件夾下面的某一個(gè)文件,只能commit整個(gè)文件夾,只提交某一個(gè)文件,會(huì)發(fā)生下面的錯(cuò)誤。
D:\>svncommitE:\jdk5\src\jdk\unboxing\Unboxing.java
svn:Commitfailed(detailsfollow):
svn:'E:\jdk5\src\jdk\unboxing'isnotunderversioncontrolandisnotpartof
thecommit,yetitschild'E:\jdk5\src\jdk\unboxing\Unboxing.java'ispartofthecommit。本節(jié)關(guān)于通過(guò)Subversion的命令行,快速搭建SVN版本庫(kù)服務(wù)器端內(nèi)容介紹到這。
【編輯推薦】
- 搭建SVN版本庫(kù)服務(wù)器端,使用SVN命令行也可實(shí)現(xiàn)
- 深入剖析opensuse10.3上如何搭建SVN服務(wù)器
- RedHat系統(tǒng)下如何搭建SVN服務(wù)器大揭秘
- Windows下搭建SVN服務(wù)器簡(jiǎn)明步驟
- 學(xué)習(xí)筆記: 如何刪除SVN版本控制信息