所以我有一个用ruby编写的基本post-commit钩子,并且我已经确认它在我从命令行提交时运行。但是,当我在Git Tower中犯下这个错误时,它并没有运行,我甚至没有看到Git Tower出现任何错误。在Git Tower中运行的Ruby中没有运行Git post-commit钩子
我的脚本开头为: #!/usr/bin/env ruby
它在我从命令行提交时运行正常,所以我知道它不是脚本的问题。我需要做些什么来让我的宝石正确加载?
所以我有一个用ruby编写的基本post-commit钩子,并且我已经确认它在我从命令行提交时运行。但是,当我在Git Tower中犯下这个错误时,它并没有运行,我甚至没有看到Git Tower出现任何错误。在Git Tower中运行的Ruby中没有运行Git post-commit钩子
我的脚本开头为: #!/usr/bin/env ruby
它在我从命令行提交时运行正常,所以我知道它不是脚本的问题。我需要做些什么来让我的宝石正确加载?
唯一的解释是Git Tower不能在相同的环境下运行在同一个shell中。
见its FAQ "Are Hook scripts supported in Tower?"
请注意:做你的钩子脚本依赖于是否存在或在你的壳轮廓修改所创建的shell环境变量/的特定值(比如延长“PATH”由非标准路径(例如'
~/bin
')从那里运行脚本钩)?如果答案是肯定的,那么您需要确保在钩子脚本本身中创建所需的shell环境(如修改“
PATH
”),而不是在shell配置文件中,因为钩子脚本是从没有在shell环境中运行的Tower进程环境(因此您的shell配置文件未加载)。
在这种情况下,一个简单的shell脚本应该是你的post-commit钩子,以便于:
以下https://github.com/resmo/git-ftp/issues/221,会更简单的shell脚本工作? '#!/ bin/sh echo“test”>>“post-commit.log”2>&1' – VonC