# Svn 运维

Svn 是 Subversion 的简称,是一个开放源代码的版本控制系统,它采用了分支管理系统。

本文目的在于记录 svn 的安装、配置、使用。

# 1. 安装配置

# 1.1. 安装 svn

$ yum install -y subversion

# 1.2. 创建 svn 仓库

$ mkdir -p /share/svn
$ svnadmin create /share/svn
$ ls /share/svn
conf  db  format  hooks  locks  README.txt

在 conf 目录下有三个重要的配置文件

  • authz - 是权限控制文件
  • passwd - 是帐号密码文件
  • svnserve.conf - 是 SVN 服务配置文件

# 1.3. 配置 svnserve.conf

$ vim /share/svn/conf/svnserve.conf

打开下面的 5 个注释

anon-access = read      #匿名用户可读
auth-access = write     #授权用户可写
password-db = passwd    #使用哪个文件作为账号文件
authz-db = authz        #使用哪个文件作为权限文件
realm = /share/svn      # 认证空间名,版本库所在目录

# 1.4. 配置 passwd

$ vim /share/svn/conf/passwd

添加内容如下:

[users]
user1 = 123456
user2 = 123456
user3 = 123456

# 1.5. 配置 authz

$ vim /share/svn/conf/authz

添加内容如下:

[/]
user1 = rw
user2 = rw
user3 = rw
*=

# 1.6. 启动关闭 svn

$ svnserve -d -r /share/svn # 启动 svn
$ killall svnserve # 关闭 svn

# 1.7. 开机自启动 svn 方法

安装好 svn 服务后,默认是没有随系统启动自动启动的,而一般我们有要求 svn 服务稳定持续的提供服务。所以,有必要配置开机自启动 svn 服务。

# Centos7 以前

编辑 /etc/rc.d/rc.local 文件:

$ vi /etc/rc.d/rc.local

输入以下内容:

# 开机自动启动 svn,默认端口是 3690
$ /usr/bin/svnserve -d -r /share/svn --listen-port 3690

注意:

我们在用终端操作的时候,可以直接使用以下命令启动 SVN:svnserve -d -r /share/svn,但是在 /etc/rc.d/rc.local 文件中必须写上完整的路径!

如果不知道 svnserve 命令安装在哪儿,可以使用 whereis svnserve 查找。

# Centos7

CentOS 7 中的 /etc/rc.d/rc.local 是没有执行权限的,系统建议创建 systemd service 启动服务。

找到 svn 的 service 配置文件 /etc/sysconfig/svnserve 编辑配置文件

$ vi /etc/sysconfig/svnserve

OPTIONS="-r /var/svn" 改为 svn 版本库存放的目录,:wq 保存退出。

执行 systemctl enable svnserve.service

重启服务器后,执行 ps -ef | grep svn 应该可以看到 svn 服务的进程已经启动。

# 1.8. svn 客户端访问

进入 svn 官方下载地址,选择合适的版本,下载并安装。

新建一个目录,然后打开鼠标右键菜单,选择 SVN Checkout

在新的窗口,输入地址 svn://<你的 IP> 即可,不出意外输入用户名和密码就能连接成功了(这里的用户、密码必须在 passwd 配置文件的清单中)。默认端口 3690,如果你修改了端口,那么要记得加上端口号。如下图所示:


img

# 2. 参考资料

  • https://www.cnblogs.com/liuxianan/p/linux_install_svn_server.html
  • https://blog.csdn.net/testcs_dn/article/details/45395645
  • https://www.cnblogs.com/moxiaoan/p/5683743.html
  • https://blog.csdn.net/realghost/article/details/52396648