2012-01-18 82 views

回答

2

據我所知,你不能告訴水銀在Windows上使用不同的外殼程序(但我認爲你可以在Linux主機上)

相反,你可以有你的鉤子腳本調用出來的不同的外殼並且具有那個外殼執行另一個腳本或一組命令。這很麻煩,但不幸的是Windows不知道是否擁有強大的腳本支持,尤其是與基於* nix的平臺相比。

+0

或者你可以把它寫成python鉤子 – 2012-01-18 15:44:16

+0

@jk - 做出正確的答案..這是這個問題的正確答案。我只是一個解決方法。 – cdeszaq 2012-01-18 15:46:20

+0

好的,但我認爲運行另一個程序/腳本的外部鉤子也是完全有效的 – 2012-01-18 15:55:07

2

水銀hooks can be defined two ways

  1. 作爲殼鉤(外部鉤)
  2. 作爲蟒鉤(在過程鉤)
如果你改變它是一個python鉤

,然後你顯然會擁有python的全部功能來完成任務。當然,沒有任何理由不能用任何語言編寫程序,並從你的外部鉤子執行它,因爲cdeszaq暗示

+1

使用進程內python鉤子的另一個好處是它是跨平臺的,所以如果你切換到非Windows平臺,你不必重寫你的鉤子腳本。 – cdeszaq 2012-01-18 16:00:41

+0

問題似乎是,使用外部鉤子時,Mercurial會從cmd.exe啓動這些內容 - 至少當我嘗試調用「hg update」(以獲取遠程repo在傳入鉤子上更新)時,它會運行cmd.exe。 – 2012-01-20 10:04:57

+1

@LeeAtkinson - 然後使用python鉤子,因爲它不會在外部cmd進程中運行,並且會在與hg本身相​​同的內部進程中運行。 – cdeszaq 2012-01-20 13:37:29

相關問題