我现在花了几个星期试图解决这个问题(没有任何进展)。
我遵循了 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 存储库的用户(通过诸如 tortoiseSVN 之类的 SVN 客户端,或者更确切地说是可以通过诸如 putty 之类的东西访问 SVN 存储库文件的本地用户帐户) . 我相信这可能是我的问题所在,但我并不完全相信,因为运行 httpd 的用户是提交后脚本和存储库所在文件系统的所有者。因此,他拥有文件系统所需的所有权限。但是,我无法使用该用户帐户在我的工作站上使用 tortoiseSVN 从存储库远程签出目录/文件。
非常感谢任何见解!
已审阅的参考资料: