【发布时间】:2013-10-03 15:47:35
【问题描述】:
我已经花了几个星期试图解决这个问题(没有任何进展)。
我遵循了 svn 红皮书部分“实施存储库挂钩”:
将 $REPOSITORY_HOME/hooks/post-commit.tmpl 文件复制到 $REPOSITORY_HOME/hooks/post-commit
使 $REPOSITORY_HOME/hooks/post-commit 脚本可由运行 httpd 或 svnserve 的帐户执行(事实上,我已将其设置为所有人都可执行)
验证我的提交后脚本是否可以由同一用户在命令行上手动运行
但是,无论何时任何用户将任何工件提交到存储库,提交后脚本仍然无法执行。
我在 svn 红皮书和 post-commit.tmpl 中发现的一件事让我对它到底在推断什么感到有点困惑: “请注意,'post-commit' 必须由调用它的用户(通常是 httpd 运行的用户)可执行,并且该用户必须具有文件系统级别的权限才能访问存储库。”
这是否意味着执行 post-commit 脚本的用户也必须是可以访问 SVN 存储库的用户(通过 SVN 客户端,例如 tortoiseSVN,或者更确切地说是可以通过诸如此类的方式访问 SVN 存储库文件的本地用户帐户)作为腻子)。我相信这可能是我的问题所在,但我并不完全相信,因为运行 httpd 的用户是提交后脚本和存储库所在文件系统的所有者。因此,他拥有文件系统所需的所有权限。但是,我无法使用该用户帐户在我的工作站上使用 tortoiseSVN 从存储库中远程签出目录/文件。
非常感谢任何见解!
已审核的参考资料:
【问题讨论】:
标签: svn svn-hooks post-commit-hook