本节接着上节介绍通过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版本控制信息