1

我有一种情况,我正在考虑使用 subversion/svn 作为项目的存储库/版本控制系统。我试图弄清楚是否有可能(如果有,如何)能够在提交后挂钩/进程上拥有颠覆系统,以将用户/文件/时间(可能还有 msg)写入其中一个外部文件 (csv) 或 mysql 数据库。

一旦我弄清楚如何调用 post commit 钩子将输出写入文件,我就可以修改我的问题跟踪器/项目应用程序,然后根据用户角色以及成功/失败来实现基本的工作流程过程存储库文件。

简短的样本/指针会有所帮助。

我的测试环境,在 centos5 上运行 subversion/svnserve。使用的脚本语言是 PHP/Python。

4

2 回答 2

0

确实很有可能,在您的存储库根目录中应该有一个名为 hooks 的文件夹,其中应该是一个名为 post-commit 的文件(如果没有,请创建一个),添加您放在那里的任何 bash 代码,它将在每次提交后执行.

注意,有 2 个变量传入脚本 $1 是存储库,$2 是修订号(我认为),您可以使用这两个变量执行一些 svn 命令/查询,并提取所需的数据,并且随心所欲地去做。

于 2011-01-15T20:32:07.153 回答
0

我会说这是可能的,但是您需要做一些工作来检索用户名、日期和提交消息。

Subversion 使用 repo 路径和刚刚提交的修订号作为参数调用 post-commit 钩子。

为了检索您要查找的信息,您需要使用一个名为 的可执行文件svnlook,它与 Subversion 捆绑在一起。

请参阅 repo\hooks\post-commit.tmpl 以获得关于如何使用它的相当清晰的解释

另外,看一下svnlook help,用起来也不难。

于 2011-01-15T20:34:37.780 回答