一.安装SVN
yum -y install subversion
验证安装
检验已经安装的SVN版本信息
svnserve --version
代码库创建
SVN软件安装完成后还需要建立SVN库
mkdir -p /opt/svn svnadmin create /opt/svn/test
执行上面的命令后,自动建立svn库,查看/opt/svn/test 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。
配置代码库
进入上面生成的文件夹conf下,进行配置
用户密码passworda参考配置
[users] # harry = harryssecret # sally = sallyssecret svn用户名= svn密码
权限控制authz参考配置
[aliases] # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average [groups] # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe # [/foo/bar] # harry = rw # &joe = r # * = # [repository:/baz/fuz] # @harry_and_sally = rw # * = r [groups] [/] svn用户名= rw
passwd
[users] # harry = harryssecret # sally = sallyssecret svn用户名= 设置的密码
svnserve.conf 要修改的地方(去掉这几条的注释)
anon-access = none auth-access = write password-db = passwd authz-db = authz
启动SVN
svnserve -d -r /opt/svn
查看SVN进程
ps -ef|grep svn|grep -v grep
停止重启SVN
killall svnserve 停止 svnserve -d -r /opt/svn 启动
二.设置钩子自动更新
建立你的web程序目录
mkdir /home/www/testsvn
在项目库的 hooks/ 目录下新建 post-commit 文件 【钩子脚本】
touch /opt/svn/test/hooks/post-commit
写入以下内容
REPOS="$1" REV="$2" mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf export.UTF-8 WEB=/home/www/testsvn #要更新的目录 SVN=/usr/bin/svn #这里配置的是svn安装bin目录下的svn文件 $SVN update --username SVN用户名 --password SVN密码 $WEB
让post-commit有执行的权限
chmod a+x post-commit
到这里SVN的安装与钩子配置就完成了。
说明:
export.UTF-8是为了解决svn post commit 中文乱码,设置本地化编码,因为我的系统为UTF8编码。
其实SVN默认就是UTF-8编码,如果编码是GBK的话不设置将会出现错误,而执行不成功,错误标识为
svn: Can't convert string from native encoding to 'GBK'
测试更新操作:
svn checkout svn://服务器ip/test/ ./home/www/testsvn /usr/bin/svn update --username SVN用户名 --password SVN密码 /home/www/testsvn
如果提示:post-commit hook failed (
exit
code 255) with no output
赋予post-commit文件可执行权限
如果默认编码就是UTF-8的,要上传中文文件,先将文件另存为UTF-8格式在提交
转载请注明本文标题和链接:《 linux安装SVN并配置钩子实现自动更新 》
网友评论 0