1. 安装
CentOS通过yum安装subversion。
# yum install subversion
subversion安装在/bin目录:
# which svnserve #查看目录命令/usr/bin/svnserve
检查一下subversion是否安装成功。不要使用1.8版本
# svnserve --version
svnserve, version 1.7.14 (r1542130)
2. 建立版本库
subversion默认以/var/svn作为数据根目录,可以通过/etc/sysconfig/svnserve修改这个默认位置。
# vim /etc/sysconfig/svnserve
文件内容
OPTIONS="-r /var/svn"
可修改
使用svnadmin建立版本库svntest。
# mkdir -p /var/svn/svntest //递归创建多个目录
# svnadmin create /var/svn/svntest
# ll /data/svn/svntest //查看目录中内容
drwxr-xr-x. 2 root root 51 Nov 10 14:42 conf
drwxr-sr-x. 6 root root 4096 Nov 10 14:42 db
-r--r--r--. 1 root root 2 Nov 10 14:42 format
drwxr-xr-x. 2 root root 4096 Nov 10 14:42 hooks
drwxr-xr-x. 2 root root 39 Nov 10 14:42 locks
-rw-r--r--. 1 root root 229 Nov 10 14:42 README.txt
3. 配置
cd /var/svn/svntest
a、编辑用户文件passwd,新增两个用户:admin和guest。
# vim conf/passwd
[users]
admin = admin
guest = guest
b、编辑权限文件authz,用户admin设置可读写权限,guest设置只读权限。
# vim conf/authz
[/]
admin = rw
guest = r
c、编辑svnserve.conf:
# vim conf/svnserve.conf
[general]anon-access = none #控制非鉴权用户访问版本库的权限
auth-access = write #控制鉴权用户访问版本库的权限
password-db = passwd #指定用户名口令文件名
authz-db = authz #指定权限配置文件名
//realm = svntest #指定版本库的认证域,即在登录时提示的认证域名称 //测试不需要
4. SVN服务
启动SVN服务。
# systemctl start svnserve.service
检查服务是否启动成功。
# ps aux | grep svnroot 16349 0.0 0.1 162180 900 ? Ss 15:01 0:00 /usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid -r /opt/svn
通过netstat可以看到SVN打开了3690端口。
# netstat -tnlpProto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 16349/svnserve
设置成开机启动。
# systemctl enable svnserve.service
5. 更改防火墙设置
firewall-cmd --zone=public --add-port=3690/tcp --permanen
systemctl restart firewalld.service
6. 客户端测试
客户端可以通过TortoriseSVN测试。
Linux下客户端使用SVN
将文件checkout到本地目录svn666
svn checkout svn://127.0.0.1 ./svn666
有修改的时候
# svn add * //添加文件
# svn commit -m '这是注释内容' //提交
# svn update //更新
svn 设置开机启动( CentOS7 )
vim /usr/lib/systemd/system/svnserve.service
[Unit]
Description=Subversion protocol daemon
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/svnserve
ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS
[Install]
WantedBy=multi-user.target
然后将服务设置为可用
systemctl enable svnserve.service
查看服务列表状态
systemctl list-units --type=service
重启服务器,查看svn开启状态
ps -aux | grep 'svn'