Subversion post-commit hook不会在commit上运行,脚本可以工作,因为我可以在命令行上运行它

时间:2013-11-18 04:41:06

标签: bash svn hook post-commit-hook

我刚刚创建了一个新的存储库。我的服务器是Ubuntu 12.04 32位。 我希望我的承诺在我承诺后立即生效。这是通过在我的公共html目录中创建一个工作副本,并使用post-commit钩子更新该工作副本来实现的。我已经按照这里的说明进行了设置:

http://www.frenssen.be/content/using-subversion-automatically-update-live-website

问题是我的提交后不会在我的项目提交时运行。 我的项目提交得很好。我知道脚本也是一个有效的脚本,因为我可以用

运行它
env ./post-commit

hooks目录内,并正确更新。

我认为这可能是一项权限,因此我广泛使用chown来确保www-data是其所有者:

the repo /home/svn/repo2
the working copy /var/www/html
the hook /home/svn/repo2/hooks/post-commit
the update binary /home/svn/autoupdate/autoupdate

但仍然没有。我的提交是成功的,但钩子永远不会运行。我的钩子脚本如下所示:

#!/bin/sh
/home/svn/autoupdate/autoupdate

所有的Google搜索似乎都指向了权限问题,但我无法解决这个问题。

1 个答案:

答案 0 :(得分:1)

你能重复这个人的例子,看看它是否有效?
mikewest.org/2006/06/subversion-post-commit-hooks-101

提交时是否收到错误?

如果您的提交后挂钩实际上失败了,我认为您会在用于执行签入的任何客户端中看到相关证据。我几乎怀疑提交后根本没有解雇。只是要仔细检查,文件需要实际上被称为post-commit,全部小写,而不是post-commit.tmpl。