所以我有一个用 ruby 编写的基本提交后挂钩,并且我已经确认它在我从命令行提交时运行。但是,当我在 Git Tower 中提交时它不会运行,我什至没有看到 Git Tower 出现任何错误。
我的脚本以:开头,
#!/usr/bin/env ruby
当我从命令行提交时它确实运行正常,所以我知道它不是脚本的问题。我需要做些什么来让我的宝石正确加载吗?
唯一的解释是 Git Tower 不在同一个 shell 和相同的环境中运行。
请参阅其常见问题解答“Tower 是否支持 Hook 脚本?”
请注意:您的钩子脚本是否依赖于在您的 shell 配置文件中创建/修改的 shell 环境变量的存在或特定值(例如通过非标准路径(例如'
~/bin
')扩展“PATH”来运行脚本从那里开始)?如果答案是肯定的,那么您需要确保在钩子脚本本身中创建所需的 shell 环境(例如修改“
PATH
”),而不是在您的 shell 配置文件中,因为钩子脚本是从 Tower 进程环境中调用的未在 shell 环境中运行(因此未加载您的 shell 配置文件)。
在这种情况下,一个简单的 shell 脚本应该是你的 post-commit 钩子,以便: