未找到命令的Svn post-commit hook失败

时间:2014-02-06 20:41:18

标签: linux svn svn-hooks

我正在尝试使用post-commit钩子调用脚本,但它失败了,因为它无法找到各种命令。

我的研究表明,在运行post-commit钩子时基本上没有加载环境变量,所以我想这就是为什么它找不到像ping这样的命令的原因。

在我的post-commit钩子中是否有足够的定义以便我可以调用在基线POSIX命令上运行的脚本?

2 个答案:

答案 0 :(得分:3)

使用空环境执行Subversion钩子脚本。最佳做法是在脚本中指定完整路径(以及它们可能调用的任何其他脚本),或者在钩子脚本本身中设置所需的环境变量。

来自manual

  

出于安全原因,Subversion存储库执行具有空环境的钩子程序 - 即根本没有设置环境变量,甚至不是$ PATH(或Windows下的%PATH%)。因此,许多管理员在他们的钩子程序手动运行时感到困惑,但在Subversion运行时不起作用。请务必在钩子程序中明确设置任何必要的环境变量和/或使用程序的绝对路径。

答案 1 :(得分:1)

在您的钩子开始时,您可以设置PATH和其他环境变量:

LANG=en_US.UTF-8
PATH=/path/to/bin:/another/bin:$PATH