【问题标题】:subversion post commit hooks颠覆后提交挂钩
【发布时间】:2011-01-15 20:14:47
【问题描述】:
我有一种情况,我正在考虑使用 subversion/svn 作为项目的存储库/版本控制系统。我试图弄清楚是否有可能(如果有,如何)能够在提交后挂钩/进程上拥有颠覆系统,以将用户/文件/时间(可能还有 msg)写入其中一个外部文件 (csv) 或 mysql 数据库。
一旦我弄清楚如何调用提交提交挂钩将输出写入文件,我就可以修改我的问题跟踪器/项目应用程序,然后根据用户角色实现基本的工作流程,以及存储库文件的成功/失败。
简短的示例/指针会很有帮助。
我的测试环境,在 centos5 上运行 subversion/svnserve。使用的脚本语言是 Php/Python。
【问题讨论】:
标签:
php
python
svn
hook
svn-hooks
【解决方案1】:
我会说这是可能的,但您需要做一些工作来检索用户名、日期和提交消息。
Subversion 使用 repo 路径和刚刚提交的修订号作为参数调用 post-commit 钩子。
为了检索您要查找的信息,您需要使用名称为 svnlook 的可执行文件,它与 Subversion 捆绑在一起。
查看 repo\hooks\post-commit.tmpl 以获得关于如何使用它的相当清晰的解释
还有,看看svnlook help,用起来不难。
【解决方案2】:
确实很有可能,在您的存储库根目录中应该有一个名为 hooks 的文件夹,其中应该有一个名为 post-commit 的文件(如果没有,请创建一个),添加您放在那里的任何 bash 代码,它将执行每次提交后。
注意,有 2 个变量传入脚本 $1 是存储库,$2 是修订号(我认为),您可以使用这两个变量执行一些 svn 命令/查询,并提取所需的数据,随心所欲。