2

所以我有一个用 ruby​​ 编写的基本提交后挂钩,并且我已经确认它在我从命令行提交时运行。但是,当我在 Git Tower 中提交时它不会运行,我什至没有看到 Git Tower 出现任何错误。

我的脚本以:开头, #!/usr/bin/env ruby当我从命令行提交时它确实运行正常,所以我知道它不是脚本的问题。我需要做些什么来让我的宝石正确加载吗?

4

1 回答 1

0

唯一的解释是 Git Tower 不在同一个 shell 和相同的环境中运行。

请参阅其常见问题解答“Tower 是否支持 Hook 脚本?”

请注意:您的钩子脚本是否依赖于在您的 shell 配置文件中创建/修改的 shell 环境变量的存在或特定值(例如通过非标准路径(例如' ~/bin')扩展“PATH”来运行脚本从那里开始)?

如果答案是肯定的,那么您需要确保在钩子脚本本身中创建所需的 shell 环境(例如修改“ PATH”),而不是在您的 shell 配置文件中,因为钩子脚本是从 Tower 进程环境中调用的未在 shell 环境中运行(因此未加载您的 shell 配置文件)。

在这种情况下,一个简单的 shell 脚本应该是你的 post-commit 钩子,以便:

  • 适当修改环境
  • 调用你的红宝石脚本。
于 2013-05-29T05:47:30.870 回答