Linux下SVN配置

时间:2022-11-03 04:07:40

1.安装svn
yum install subversion

2.创建版本库fengyu
(版本库的名字取来和你web项目的名字相同,否则你在服务器检出后会变成web项目里还有一层版本库的目录,里面才是项目,名字相同的话就不用创建web项目目录,直接在www下面进行检出就OK。)
mkdir -p /var/svndata/fengyu
svnadmin create /var/svndata/fengyu

4.进入conf目录
cd /var/svndata/fengyu/conf

5.添加一个用户为zhangsan密码123456
vi passwd
添加zhangsan=123456

6.设置权限
vi authz
添加如下信息
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
admin=zhangsan

[/]
@admin=rw
*=r

将zhangsan设置为admin用户组
在本库中,用户组为admin的用户有读写权限,其他用户只有读权限

7.全局配置
vi svnserve.conf
在最底下添加如下信息
[general]
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = fengyu # 认证空间名,版本库所在目录

8.启动svn版本库:
svnserve -d -r /var/svndata/fengyu
注意 如果要配置多个版本库 那么就启动版本库的上一级目录
如:我要搭建一个fengyu2和fengyu3与fengyu同级 那么就启动svndata这个目录 这样就可以在客户端链接svn://ip/fengyu2

9.服务器检出
cd /var/www 进入你的www目录
svn co svn://localhost/fengyu
先输入服务器root密码再输入svn的账号密码然后再选择yes

10.自动更新
cd /var/svndata/fengyu/hooks
cp post-commit.tmpl post-commit
chmod 755 post-commit
vi post-commit
将最下面三行注释掉 添加如下内容 请注意路径填实际路径
export LANG=zh_CN.UTF-8
REPOS="$1"
REV="$2"
WEB_PATH=/var/www/fengyu_test
LOG_PATH=/var/log/svn_commit.log
CURDATE="date"

/usr/bin/svn update $WEB_PATH --username zhaobl --password Z5201314 >> $LOG_PATH

11.强制添加注释
cp pre-commit.tmpl pre-commit
chmod 755 pre-commit
vi pre-commit把文件下面的全部注释 然后添加如下内容

REPOS="$1"
TXN="$2"
# Make sure that the log message contains some text.
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 提交文件时请添加注释,提交中止."1>&2
exit 1
fi

PS:这个限制字数,如果是数字英文会严格计算字符,但如果是中文就不管用了,如果有哪位兄弟懂的话请告知一二,感谢。