我有幾個(在這種情況下,預提交)掛鉤,我希望在同一事件中運行。現在,它們都只是shell腳本,所以我知道我可以將它們連接起來讓它們全部運行。不過將來,其他腳本也可以用Perl,PHP或其他語言編寫。如何添加多個SVN掛鉤
我該如何將多個不同的腳本作爲單個鉤子的一部分運行,並且有任何一個子鉤子失敗,如預期那樣失敗?
我有幾個(在這種情況下,預提交)掛鉤,我希望在同一事件中運行。現在,它們都只是shell腳本,所以我知道我可以將它們連接起來讓它們全部運行。不過將來,其他腳本也可以用Perl,PHP或其他語言編寫。如何添加多個SVN掛鉤
我該如何將多個不同的腳本作爲單個鉤子的一部分運行,並且有任何一個子鉤子失敗,如預期那樣失敗?
就像@ Gnustavo的基於Perl的解決方案,我還發現了一些其他的(基於PHP)系統,如
兩個項目(和其他「SVN鉤子」)將無法提交,如果有測試失敗。
你可以只從單一的預提交腳本調用每個腳本SVN:
#!/bin/sh
sh do_this.sh
php do_that.php
...
你甚至都不需要,如果你在使用合適的家當提可執行文件名(sh
或php
)你的腳本。
您可以嘗試使用SVN::Hooks Perl模塊,它允許您在單個配置文件中實現和集成多個掛鉤,甚至可以將其保存在同一個存儲庫中。
(披露:我該模塊的作者)
單個測試的成功/失敗的退出(1)(或0)不會從子測試中傳播出去,所以整套測試或者返回默認的0或者其他任何可能返回的來自頂層腳本。 – 2010-05-27 22:26:28