2013-05-29 44 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脚本。