您的位置:时间博客>Linux>linux安装SVN并配置钩子实现自动更新

linux安装SVN并配置钩子实现自动更新

一.安装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

未登陆 表情
Ctrl+Enter快速提交