2013-05-29 51 views
2

所以我有一個用ruby編寫的基本post-commit鉤子,並且我已經確認它在我從命令行提交時運行。但是,當我在Git Tower中犯下這個錯誤時,它並沒有運行,我甚至沒有看到Git Tower出現任何錯誤。在Git Tower中運行的Ruby中沒有運行Git post-commit鉤子

我的腳本開頭爲: #!/usr/bin/env ruby它在我從命令行提交時運行正常,所以我知道它不是腳本的問題。我需要做些什麼來讓我的寶石正確加載?

+0

以下https://github.com/resmo/git-ftp/issues/221,會更簡單的shell腳本工作? '#!/ bin/sh echo「test」>>「post-commit.log」2>&1' – VonC

回答

0

唯一的解釋是Git Tower不能在相同的環境下運行在同一個shell中。

its FAQ "Are Hook scripts supported in Tower?"

請注意:做你的鉤子腳本依賴於是否存在或在你的殼輪廓修改所創建的shell環境變量/的特定值(比如延長「PATH」由非標準路徑(例如'~/bin')從那裏運行腳本鉤)?

如果答案是肯定的,那麼您需要確保在鉤子腳本本身中創建所需的shell環境(如修改「PATH」),而不是在shell配置文件中,因爲鉤子腳本是從沒有在shell環境中運行的Tower進程環境(因此您的shell配置文件未加載)。

在這種情況下,一個簡單的shell腳本應該是你的post-commit鉤子,以便於:

  • 修改環境適當
  • 打電話給你的Ruby腳本。