设置Subversion Repository

Subversion通过被称为Repository的数据库,集中管理目标文件。
本节将以SVN环境设置方法为例,介绍如何使用svnserve。

注解
在下面的示例中使用CentOS 7 Linux 3.10.0-693.2.2.el7.x86_64。

安装SVN

获取subversion包。

yum update
yum install subversion

创建Repository

在svnadmin中创建Repository。

mkdir -p /svn/repos
svnadmin create/svn/repos/repo1

更改目录权限。

chmod -R 777 /svn/repos

从/etc/sysconfig/svnserve 设置svnserve Repository根目录。

OPTIONS="-r /svn/repos"

注册用户和密码

改写/svn/repos/repo1/conf/svnserve.conf,设置访问权限。

[general]
anon-access = none
auth-access = write

改写/svn/repos/repo1/conf/passwd,设置用户名和密码。

[users]
user.alpha = pass.alpha
user.beta = pass.beta

防火墙设置

svnserve采用3690 TCP连接,需要开放端口。

firewall-cmd -add-port=3690/tcp --zone=public -permanent
firewall-cmd --reload

使用以下命令进行确认。

firewall-cmd --list-ports --zone=public

禁用SELinux

启用SELinux时无法执行Checkout,因此应禁用。 /etc/selinux/config

SELINUX=disabled

重新启动中,执行getenforce并确认显示为Disabled。

执行svnserve

开始svnserve。

service svnserve start
chkconfig svnserve on

确认svnserve在使用端口3690。

netstat -tanp

确认

确认能否从SVN客户端Checkout到svn://your.host.name/repo1。

故障排除

如果不能顺利设置,请检查以下项目等确定原因。

  • IP地址是否能ping通(网络设置)
  • 3690端口是否已打开(Firewall设置)
    • Mac的情况下,nc -v -w 1 [IP address] -z 3690
    • Win的情况下,在PowerShell执行Test-NetConnection -ComputerName [IP address] -Port 3690
  • 能否Checkout(Repository、访问权限、SELinux的设置)
    • 能否执行svn checkout svn://[IP address]/repo1 命令
  • 能否添加Commit文件(Repository的用户设置)