【发布时间】:2012-03-01 10:53:08
【问题描述】:
我是颠覆管理的新手。是否可以在 subversion 中创建自定义事件来触发钩子,例如我希望在创建存储库时执行脚本。我是否可以创建一个在创建新存储库时执行的钩子。
你们中的任何人都可以解释一下如何触发颠覆钩子。例如,如何触发预提交挂钩。 subversion 如何知道在每次提交之前应该执行一个特定的脚本?
【问题讨论】:
我是颠覆管理的新手。是否可以在 subversion 中创建自定义事件来触发钩子,例如我希望在创建存储库时执行脚本。我是否可以创建一个在创建新存储库时执行的钩子。
你们中的任何人都可以解释一下如何触发颠覆钩子。例如,如何触发预提交挂钩。 subversion 如何知道在每次提交之前应该执行一个特定的脚本?
【问题讨论】:
你知道一个钩子是在 Subversion 服务器端而不是在客户端执行的。所以这意味着基于存储库的创建根本不可能,因为钩子脚本是存储库的一部分。所以在这种情况下是不可能的。
基础知识基于位于存储库的 hooks 文件夹中的脚本。如果这些脚本被定义为可执行(+ 名称),则它们将被执行,否则不会执行。
【讨论】:
据我了解,正如钩子的名称清楚地表明,当用户向 Subversion 服务器提交时,服务器在执行提交之前运行 pre-commit 钩子,然后当提交成功完成时,post-commit 之后运行。
关于应该执行什么是完全可定制的。您可以运行简单的 shell 脚本,然后调用其他脚本(例如 PHP、Python 等)。这取决于你。
只需编辑服务器上存储库hooks目录中的post-commit文件,然后每次客户端提交时,这些脚本就会运行。
查看此处了解更多信息:http://svnbook.red-bean.com/en/1.7/svn.reposadmin.create.html,尤其是标题为“实施存储库挂钩”的部分
【讨论】: