同じイベント中に実行したい (この場合は事前コミット) フックがいくつかあります。現時点では、それらはすべて単なるシェル スクリプトであるため、それらを連結してすべてを実行できることはわかっています。ただし、将来的には、追加のスクリプトが Perl、PHP、またはその他の言語で記述される可能性もあります。
1 つのフックの一部として複数の異なるスクリプトを実行し、サブフックのいずれか 1 つが失敗しても、期待どおりに失敗するようにするにはどうすればよいですか?
SVN::Hooks Perl モジュールを試すことができます。これにより、単一の構成ファイルに多くのフックを実装および統合でき、同じリポジトリでバージョン管理することもできます。
(開示: 私はそのモジュールの作成者です。)
SVN の単一の pre-commit スクリプトから各スクリプトを呼び出すことができます。
#!/bin/sh
sh do_this.sh
php do_that.php
...
スクリプトで適切なシバンを使用する場合は、実行可能ファイル名 (sh
または)に言及する必要さえありません。php
@Gnustavo の Perl ベースのソリューションと同様に、次のような他の (PHP ベースの) システムもいくつか見つけました。
テストに失敗した場合、両方のプロジェクト (および他の「SVN フック」) はコミットに失敗します。