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