1. 安装SVN客户端和服务器
2. 创建版本库
3. 修改版本库配置文件
版本库的配置文件位于`/home/svn/groupRepos/conf/`路径下,包含以下几个文件:
具体修改步骤如下:
[groups]
admin = user1, user2
[/]
= r
@admin = rw
[branches]
= r
@admin = rw
在这个例子中,所有用户都有读取仓库的权限,而`admin`用户组拥有读写权限。
anon
auth
password
authz
realm = /home/svn/groupRepos
4. 启动SVN服务器
root 4642 1 0 16:08? 00:00:00 svnserve -d -r /data/svn/repository/
root 4692 3676 0 16:13 pts/2 00:00:00 grep svn
5. 客户端访问SVN服务器
6. 设置SVN开机自启动(以CentOS 7为例)
bash
!/bin/bash
chkconfig: 2345 85 85
processname: svn
svn_bin=/usr/bin
svn_port=3690
svn_home=/home/svn/groupRepos
svn_config=/home/svn/groupRepos/conf/svnserve.conf
if [! -f "${svn_bin}/svnserve" ]; then
echo "svnserver startup: cannot start
exit 1
fi
case "${1}" in
start)
echo "Starting svnserve...
${svn_bin}/svnserve -d -r ${svn_home} --config-file ${svn_config} --listen-port ${svn_port}
echo "Successfully!
;;
stop)
echo "Stoping svnserve...
killall svnserve
echo "Successfully!
;;
restart)
${0} stop
${0} start
;;
)
echo "Usage: svn { start | stop | restart }
exit 1
;;
esac
二、Linux搭建SVN的注意事项
1. 权限设置
[groups]
developers = user1, user2
testers = user3
[/]
= r
@developers = rw
@testers = r
这里设置了`developers`用户组有读写权限,`testers`用户组只有读权限,其他用户也只有读权限。
2. 版本库备份
sudo svnadmin hotcopy /path/to/repo /path/to/backup --clean-logs
这个命令会创建一个仓库的完整备份,包括所有的修订历史和元数据。
3. 检查仓库完整性
sudo svnadmin verify /path/to/repo
这个命令会检查仓库的数据文件,确保它们的一致性。
4. 监控仓库使用情况
5. 更新和升级
sudo yum update subversion
6. 用户和权限管理
7. 日志管理
sudo tail -f /path/to/repo/logs/svnserve.log
使用上述命令可以查看SVN服务的实时日志。
8. 清理旧版本和垃圾文件
sudo svnadmin dump /path/to/repo --drop-empty-revs
这个命令会创建一个没有空修订的仓库转储,可以用来重建仓库以减少其大小。
9. SVN钩子脚本应用
bash
!/bin/sh
获取提交信息
COMMIT_MSG=$(svnlook log -t "$1" "$2")
检查提交信息是否包含"READY"关键词
if! echo "$COMMIT_MSG" | grep -q "READY"; then
echo "ERROR: Commit message does not contain 'READY'.
exit 1
fi
如果没有错误,允许提交
exit 0
给`pre-commit`文件添加可执行权限:`chmod +x pre-commit`。