3

我有几个(在本例中为预提交)钩子,我想在同一事件中运行它们。现在,它们都只是 shell 脚本,所以我知道我可以将它们连接起来让它们全部运行。不过,将来可能还会用 Perl、PHP 或其他一些语言编写其他脚本。

如何将多个不同的脚本作为单个钩子的一部分运行,并且子钩子的任何一个失败都按预期失败?

4

3 回答 3

1

您可以从 SVN 中的单个预提交脚本调用每个脚本:

#!/bin/sh

sh do_this.sh
php do_that.php
...

如果您在脚本中使用适当的 shebang,您甚至不需要提及可执行文件名称 (sh或)。php

于 2010-05-27T10:40:51.863 回答
1

您可以尝试SVN::Hooks Perl 模块,该模块允许您在单个配置文件中实现和集成许多钩子,甚至可以将版本控制在同一个存储库中。

(披露:我是该模块的作者。)

于 2012-03-03T16:31:48.900 回答
0

就像@Gnustavo 的基于 Perl 的解决方案一样,我还发现了一些其他(基于 PHP)的系统,例如

如果测试失败,这两个项目(和其他“SVN Hooks”)都将无法提交。

于 2012-05-08T17:07:58.503 回答