本文以centos7为例子,部署svn服务器:
一 部署svn服务器
步骤1
安装svn包subversion
首先查一下系统安装了该包没有 rpm -qa|grep
subversion若提示说subversion为安装,则用
yum install -y subversion命令安装
步骤2
新建svn仓库
这里假如把svn仓库project放在/svn下,首先新建/svn,然后创建svn仓库project,命令:
mkdir /svn
svnadmin create /svn/project
步骤3
配置svn
svn配置文件说明
在上面步骤中创建了仓库project,故在/svn/project/conf下会有以下三个文件
authz 配置授权
passwd 配置帐号密码
svnserve.conf svn全局配置文件
1、配置authz
在[groups]下可以加上
art = user1,user2,user3表示art这个组有user1,2,3三个用户
[project:/]
@art = rw
表示在仓库project的根目录art这个组的用户都有读和写的权限
若只想赋予该组只读权限那改成@art = r 即可
*号是除了已明确权限的其它用户,例如
[project:/]
user1 = rw
* = r
表示user1,2有读写权限,而user3只有读的权限
可通过
[project:/test]
user1 = rw
user = rw
* = r
来控制对仓库下的test目录的访问权限,该目录可通过svn import导入或
通过svn客户端建立目录,提交到svn服务器上实现
2、配置password
配置帐号密码的格式:帐号 = 密码
例如 test = test,表示test用的密码为test
3、配置svnserve.conf
修改,去掉注释
anon-access = none不允许匿名访问
auth-access =
write
password-db = passwd 指定密码文件
authz-db = authz 指定授权的文件
realm = /svn/project/ 写仓库的路径
步骤4
启动或停止svn服务
启动svn服务
svnserve -dr /svn
说明:
-d
指定svn服务以daemon的模式启动
-r
指定仓库的根目录,按照本文例子,这里应为/svn,切忌指错
停止svn服务
ps -ef|grep
svn可找到进程号kill掉就停止了
二 提交强制要求输入描述信息实现
cd /svn/project/hooks/
cp pre-commit.tmpl pre-commit
chmod +x pre-commit
vim pre-commit
把文件内容底部未注释的内容改成如下脚本:
REPOS="$1"
TXN="$2"
SVNLOOK=/usr/bin/svnlook
LOGMSG=`$SVNLOOK log -t
"$TXN" "$REPOS" | grep "[a-zA-Z0-9]"|wc -c`
if [ "$LOGMSG" -lt 10 ];
then
echo -e "\n
提交文件时必须添加注释,至少10个字符,提交中止..."
1>&2
exit
1
fi
exit 0
OK,完成...