为什么我的提交后的Apache Subversion挂钩失败?

所以我试图得到一个post-commit钩子在我的Apache Subversion服务器上工作,特别是我试图发送电子邮件到我的谷歌帐户, 如此链接中所述 。

在将脚本和工作副本的权限设置为同一用户并进行读/写访问之后,用户尝试提交时,开始导致MERGE错误。

经过一番阅读,我发现这是因为后提交钩不工作,并发现通过键入

svn - ./post-commit commit ../ 250 mailer.conf 

我得到这个错误:

 > annerajb@annerajb-desktop:~/Desktop/TotEM_SVN/hooks$ env - ./post-commit.test commit ../ 250 /var/lib/python-support/python2.6/svn/fs.py:27: DeprecationWarning: The popen2 module is deprecated. Use the subprocess module. import sys as _sys, os as _os, popen2 as _popen2, tempfile as _tempfile Traceback (most recent call last): File "/usr/share/subversion/hook-scripts/mailer/mailer.py", line 1351, in <module> svn.core.run_app(main, cmd, config_fname, repos_dir, sys.argv[3:3+expected_args]) File "/var/lib/python-support/python2.6/svn/core.py", line 288, in run_app return apply(func, (application_pool,) + args, kw) File "/usr/share/subversion/hook-scripts/mailer/mailer.py", line 80, in main revision = int(cmd_args[0]) ValueError: invalid literal for int() with base 10: '' ./post-commit.test: 5: ../: Permission denied 

我不确定为什么cmd_args [0]是空的,如果我传递一个值。

 #!/bin/sh REPOS="$1" REV="$2" /usr/share/subversion/hook-scripts/mailer/mailer.py commit "$REPOS" \ "$REV" /usr/share/subversion/hook-scripts/mailer/mailer.conf 

不应该为工作副本设置权限,而是为资源库访问设置权限。 此外,脚本的执行权限应由运行svn服务器(或httpd服务器 – 取决于您的解决scheme)的用户设置。

从上面的错误看起来像用户运行脚本没有直接的存储库访问,不能得到修订号..