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