简单使用Svn Hook
来源:互联网 发布:广东网络广播电视台 编辑:程序博客网 时间:2024/06/05 21:13
首先在本地建了一个svn库:
# 创建svn库$ svnadmin create testsvn# 进入svn库的配置目录,进行简单配置# authz : 设置用户组和用户组对各目录(子目录)的权限# passwd : 设置用户及相应密码# svnserve.conf : svn服务的配置$ cdn testsvn/conf$ lsauthz passwd svnserve.conf
进行了一些简单的配置,然后启动服务。
Gentoo 下配置启动脚本的配置在 /etc/conf.d/svnserve
,修改SVNSERVE_OPTS="--root=/var/svn"
为相应地址。
也可以直接使用命令启动:
svnserve -d -r /path/to/svnrepo/
然后就可以checkout了:
svn co svn://localhost/testsvn/
接下来就是尝试Svn hook。
cd到 testsvn/hooks
目录,Svn已经提供了9个hook模板(第一个是我自己写的):
$ lspost-commit post-lock.tmpl post-unlock.tmpl pre-lock.tmpl pre-unlock.tmplpost-commit.tmpl post-revprop-change.tmpl pre-commit.tmpl pre-revprop-change.tmpl start-commit.tmpl
每一个都对应了一个事件。
如果要使用,需要cp一份,去掉后缀,保持和事件名一样。 hook可以用Shell,Python或其它语言写。
另外hook需要加可执行权限,否则svn commit时会报错:
Warning: post-commit hook failed (exit code 255) with no output.
如:
cp post-commit.tmpl post-commitchmod +x post-commit
根据需求暂时使用了 post-commit hook。
模板里面说明很详细,post-commit是在commit后触发的操作,执行时svn传入两个环境变量 REPOS-PATH
仓库的路径 和REV
提交的版本号。
比如这里我想获取提交者和提交log:
REPOS="$1"REV="$2"AUTHOR=$(svnlook author -r $REV $REPOS)MESSAGE=$(svnlook log $REPOS -r $REV)#MESSAGE=$(svnlook propget --revprop -r $REV $REPOS svn:log)
获取到这些信息后我就可以做进一步的操作了,比如把这些信息以邮件方式发给管理者等。
这里用到了svn自带的一个工具svnlook
,配合一些子命令可以获取很多信息。
还有一些其它的钩子,常用的应该就pre-commit
和post-commit
这两个。
0 0
- 简单使用Svn Hook
- 简单使用Svn Hook
- Subversion简明手册--使用hook svn
- 使用JScript设置SVN客户端hook
- Subversion简明手册--使用hook svn
- Subversion简明手册--使用hook svn
- svn hook
- svn hook
- SVN简单使用
- svn使用简单教程
- svn使用简单教程
- SVN使用简单教程
- SVN简单使用
- SVN简单使用
- svn使用简单教程
- SVN简单使用
- svn的简单使用
- SVN的简单使用
- hdu 5482 Numquam vincar(暴力)
- 拓扑数据分析与机器学习的相互促进
- jQuery中 $.ajax()方法详解
- hiho #1241 : Best Route in a Grid 【dp 求解质因子2和5的最少匹配个数】
- C# 四个字节十六进制数和单精度浮点数之间的相互转化
- 简单使用Svn Hook
- AFNetworking 请求HTTPS时 SSL的身份验证设置
- 完整的卸载MySQL 5.1的卸载方法
- 简述P问题,NP问题,NPC问题以及NP Hard问题
- 二维数组指针
- 《Java并发编程实战》读书笔记
- Tomcat7出现HTTP Status 500 - java.lang.ClassCastException: org.apache.jasper.el.ELContextImpl cannot b
- SQL Server数据库大型应用解决方案总结
- C++ string流介绍