在 CentOS 执行yum install subversion
默认安装的是 Subversion 1.6.11。如果要安装 Subversion 1.8,需要修改yum源。创建/etc/yum.repos.d/wandisco-svn.repo
文件,在里面添加以下内容:
[WandiscoSVN]
name=Wandisco SVN Repo
baseurl=http://opensource.wandisco.com/centos/$releasever/svn-1.8/RPMS/$basearch/
enabled=1
gpgcheck=0
检查并删除低版本的SVN。
rpm -qa subversion
yum remove subversion*
yum clean all
执行以下命令安装 Subversion。
yum install subversion
验证安装的版本。
[root@localhost /]# svn --version
svn, version 1.8.17 (r1770682)
compiled Dec 1 2016, 13:36:00 on i686-pc-linux-gnu
建立SVN库
mkdir -p /opt/svn/repos
svnadmin create /opt/svn/repos
进入上面生成的文件夹/opt/svn/repos/conf下,发现有passwd
、authz
、svnserve.conf
等配置文件。
修改passwd
[users]
# harry = harryssecret
# sally = sallyssecret
liujie=123456
修改权限配置文件authz
。设置[/]
代表根目录下所有的资源。注意:如果不设置为[/]
而是设置为[/opt/svn/repos]
或[repository:/opt/svn/repos]
,客户端访问时都会报svn: Authorization failed
的错误,原因不详。
[/]
liujie=rw
修改svnserve.conf
配置文件,在[general]
后面添加以下内容。
anon-access=none
auth-access=write
password-db=passwd
authz-db=authz
realm=/opt/svn/repos
修改 iptables 配置并重启,service iptables restart
。Subversion 服务默认占用3690端口,这里改用3691端口。
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3691 -j ACCEPT
启动 Subversion 服务。如果要开机自启,将同样的启动命令复制到/etc/rc.d/rc.local
。
svnserve -d -r /opt/svn/repos --listen-port 3691
然后就可以使用客户端例如TortoiseSVN访问了,连接地址为: svn://yourip:3691
在SVN库里创建项目目录:
svn mkdir svn://127.0.0.1:3691/prj1 -m ''
svn mkdir svn://127.0.0.1:3691/prj1/trunk -m ''
svn mkdir svn://127.0.0.1:3691/prj1/tags -m ''
#注:在服务器中执行时也可使用file语法。例如:
svn mkdir file:///opt/svn/repos/prj2 -m ''
在SVN库里删除目录:
svn del svn://127.0.0.1:3691/prj1/branches -m ''
注意:上面的做法多个项目共用同一个仓库,这样任何一个项目的一个提交都会导致整个仓库的版本号增加一个,而且多个账号不好做项目级别的权限控制。正规或团队项目还是建议每一个项目单独建一个仓库。