linux svn配置hooks

先创建仓库:

svnadmin create /data/svn/my.com

再配置权限:

#cd /data/svn/my.com/conf/

#vim svnserve.conf 配置

[general]
anon-access = none # 使非授权用户无法访问 
auth-access = write # 使授权用户有写权限
password-db = /data/svn/repos/100med.com.cn/conf/passwd # 指明密码文件路径 
authz-db = authz # 访问控制文件
realm = My First Repository # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。 

#vim authz 配置访问目录权限 

#分组配置
[groups]  
RD = codesvn
PP = CHINA

[/data]
@PP =rw 
#根目录权限,只有RD组则有权限访问
[/]
@RD = rw
* =

#vim passwd 配置用户和密码

[users]
codesvn = ffdsafdsafsdfasdfasfs

配置勾子:

#cd /data/svn/my.com/hooks/

#cp post-commit.tmpl post-commit

#chmod +x post-commit #给执行权限

#!/bin/sh
svn update --username codesvn --password xxxxxxxxxxxxxxx /data/wwwroot/my.com/ 2>>/data/logs/svn/my.com_post_commit_log.txt

再迁出一份:(非常重要,让勾子知道是哪个目录)

svn co svn://ip/my.com/ /data/wwwroot/my.com/

重启svnserve

#killall svnserve

#svnserve -d -r /data/svn/ 

-d 为守护进程

-r svn仓库目录


 常见问题:

1.设置了hooks不自动更新代码?

首先,查看日志,多数原因可能是因为编码问题。(export LANG=en_US.UTF-8)

参考代码:

#!/bin/sh
REPOS="$1"
REV="$2"
log_path=/data/logs/svn.my.log
export LANG=en_US.UTF-8
echo `whoami`,$REPOS,$REV >> $log_path
svn update --username svnname--password 1e26cd8217 /data/wwwroot/sgfoot.com/ 2>>$log_path --no-auth-cache
exit 0
原文地址:https://www.cnblogs.com/300js/p/6243927.html