一、概念

SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。

二、svn安装

官网下载:svn下载地址

三、创建svn仓库

3.1、创建仓库位置

c:\java\svn\repository\svn\sihai11

3.2、利用svnadmin –create命令创建仓库

svnadmin create c:\java\svn\repository\svn\sihai11

3.3、库里的文件

四、svn仓库的启动

4.1、两种启动-1-命令行

4.1.1、启动命令
             Svnserve –d –r 文件路径

svnserve -d -r c:\java\svn\repository\svn\sihai11

4.1.2、检查是否启动

上面的这个命令可以检查端口号,一般svn默认的端口号是3690.

netstat -an11

4.1.3、说明

当把命令窗口关闭以后,监听就没有了,所以这种启动方式必须把命令窗口打开。

4.2、两种启动-2-windows服务

4.2.1、执行启动命令
sc create SVN-Service binpath= “C:\Program Files (x86)\Subversion\bin\svnserve.exe –service -r  C:\Java\svn\repository” displayname= “SVN-Service” start= auto depend= Tcpip

binpath为执行命令所在的路径
-r 为仓库的路径:这里配置的多仓库,也就是说可以在svn下建立很多仓库,例如建立sihai仓库,访问的时候:svn://localhost/sihai。建立oa,则访问的时候 svn://localhost/oa, 如果路径改为c:\java\svn\repository\svn\sihai,只能访问sihai这一个仓库。1212

4.2.2、Window服务
当成功执行上述的命名以后,就可以在window的服务下面看到类似的内容。

4.2.3、删除服务
sc delete SVN-Service

五、svn命令

5.1、svn checkout命令

   说明:把仓库中的某一个项目checkout出来

    svn checkout svn://localhost/sihai F:\develop\user

5.1.1、建立用户

创建一个客户端操作文件夹

c:\java\svn\develop

在该文件夹下建立两个文件夹,代表两个用户user1和user2

5.1.2、利用命令

利用命令把itcast仓库checkout到user1目录

svn checkout svn://localhost/sihai c:\java\svn\develop\user111

创建完毕以后user1下会多一个文件夹,这说明创建完毕了。

5.2、svn add命令

在客户端创建一个文件,把该文件加入到该仓库中,加入到版本控制中

5.2.1、执行命令

在客户端user1中新建一个txt文件:a.txt

svn add a.txt11

说明:把a.txt加入到了itcast仓库,加入到了版本控制中

5.3、svn commit

  说明:当把一个文件加入到指定仓库以后,接下来的操作就是提交。在提交的时候必须写一些说明(可以写这次提交都做了一些什么内容)

5.3.1、执行命令

svn commit -m "add a.txt" a.txt
svn:提交失败1212

说明:当执行这个命令的时候失败了。因为用的是匿名用户登录的。
在c:\java\svn\repository\svn\sihai\conf路径下有一个文件:svnserve.conf
该文件有一句这样的描述:
    # anon-access = read
说明:匿名用户只能有读的权限,所以这里应该改一下:
 anon-access = write
当改完以后再次执行次命令的时候:

说明命令执行成功了。在itcast仓库中加了一个文件a.txt,版本号为1

5.3.2、user2用户执行checkout命令

svn checkout svn://localhost/sihai .11

把a.txt文件checkout到user2中,并且版本为1

5.3.3、User2用户修改a.txt文件

5.3.4、User2用户commit文件

svn commit -m "a.txt update" a.txt11

文件a.txt在user2下再次进行修改

5.3.5、User1用户进行更新

svn update11

把user1下的a.txt文件更新到版本2

5.3.6、当删除掉客户端的一个文件时

当删除掉客户端的一个文件时,可以使用svn update命令把服务器上的版本download下来。