本节和大家一起学习一下如何使用SVN协议访问,这是在学习SVN过程中可能会遇到的问题,这里和大家分享一下,欢迎大家一起来学习SVN协议访问方面的知识。
使用SVN的SVN协议访问
昨天讲解了Subversion的基本用法,其中把仓库创建在与客户端相同的机器上,使用file:///协议进行上传和修改的工作。实际上,更多时候,仓库应该放在另一台远端服务器上的,在这两端之间,是通过各种仓库存取层(Repository Access,简称RA)的多条通道进行访问的。这些通道中,可以通过不同的网络协议,例如HTTP、SSH等,或本地文件的方式来对仓库进行操作。
Subversion一般使用两种后台服务模式:一种是其自己实现的 svnserve,可以通过svn协议访问,另一种是借助mod_dav_svn 模块,由Apache http 服务器来实现,然后通过HTTP或HTTPS协议来访问。我将要介绍就是第一种方式。
一、svn协议
客户端若要通过svn协议访问仓库,必须在存放仓库的机器上运行svnserve服务程序。启动该程序后,会监听在3690端口,以响应客户端的访问工作。
# svnserve -d -r /var/svn/repos
-d 表示以后台模式运行,-r 用于指定仓库的位置。其余参数,请用svnserve -h查看。
二、自动运行svnserve服务
按照上面的命令,每次运行svnserve都可以启动该监听服务,也可以放入/etc/rc.local中让其在机器启动后自动运行。但是,一般我是不使用rc.local来管理类似的服务程序的,所以,我编写了一个svnd脚本,将其放入/etc/rc.d/init.d目录中,通过service或chkconfig进行管理:
# service svnd start
# service svnd status
# service svnd stop
# chkconfig --level 35 svnd on
下载地址:
下载文件
点击这里下载文件(源码见最后附录部分)。如果需要改变脚本中仓库的默认路径,可以在/etc/sysconfig目录中,定义一个svnd的文件,例如:
引用
# cat /etc/sysconfig/svnd
SVN_HOME=/opt/svn
这样,在启动svnd服务时,会自动使用该目录作为-r参数的指定路径。
◆ 对于其他的系统服务,我都是建议使用相同的管理方式,即系统服务放在/etc/rc.d/init.d中,额外的参数放在/etc/sysconfig目录下,这样对统一管理会带来很大的方便。请期待下节关于SVN协议访问介绍。
【编辑推荐】