一、概念
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下来。