我正在尝试使用post-commit钩子调用脚本,但它失败了,因为它无法找到各种命令。
我的研究表明,在运行post-commit钩子时基本上没有加载环境变量,所以我想这就是为什么它找不到像ping
这样的命令的原因。
在我的post-commit钩子中是否有足够的定义以便我可以调用在基线POSIX命令上运行的脚本?
答案 0 :(得分:3)
使用空环境执行Subversion钩子脚本。最佳做法是在脚本中指定完整路径(以及它们可能调用的任何其他脚本),或者在钩子脚本本身中设置所需的环境变量。
来自manual:
出于安全原因,Subversion存储库执行具有空环境的钩子程序 - 即根本没有设置环境变量,甚至不是$ PATH(或Windows下的%PATH%)。因此,许多管理员在他们的钩子程序手动运行时感到困惑,但在Subversion运行时不起作用。请务必在钩子程序中明确设置任何必要的环境变量和/或使用程序的绝对路径。
答案 1 :(得分:1)
在您的钩子开始时,您可以设置PATH
和其他环境变量:
LANG=en_US.UTF-8
PATH=/path/to/bin:/another/bin:$PATH