我目前正在尝试为我的subversion存储库设置post-commit钩子以发送电子邮件通知。 我正在使用subversion 1.7.8。我的post-commit钩子脚本如下:
#!/bin/sh
REPOS="$1"
REV="$2"
"$REPOS"/hooks/mailer.py commit $REPOS $REV "$REPOS"/mailer.conf
当我进行提交时,会产生以下错误消息:
Traceback (most recent call last):
File "/lib/python2.7/site.py", line 563, in <module>
main()
File "/lib/python2.7/site.py", line 545, in main
known_paths = addusersitepackages(known_paths)
File "/lib/python2.7/site.py", line 278, in addusersitepackages
user_site = getusersitepackages()
File "/lib/python2.7/site.py", line 253, in getusersitepackages
user_base = getuserbase() # this will also set USER_BASE
File "/lib/python2.7/site.py", line 243, in getuserbase
USER_BASE = get_config_var('userbase')
File "/lib/python2.7/sysconfig.py", line 521, in get_config_var
return get_config_vars().get(name)
File "/lib/python2.7/sysconfig.py", line 420, in get_config_vars
_init_posix(_CONFIG_VARS)
File "/lib/python2.7/sysconfig.py", line 299, in _init_posix
raise IOError(msg)
IOError: invalid Python installation: unable to open //include/python2.7/pyconfig-32.h (No such file or directory)
这个错误的特殊之处在于,当我在命令行上运行post-commit(使用适当的参数)时,不会产生错误,并且我会收到所需的电子邮件通知。这让我觉得错误与我的mailer.conf文件无关。
有没有人知道可能导致此错误的原因是什么?
谢谢, 杰米。
CORRECTION:
我认为在root下运行svnserve可以在本地修复问题,但经过进一步的实验后我发现这是错误的。如果使用file://语法检出项目,则post-commit在本地计算机上工作,但如果使用svn://语法检出则会失败。
因此,只有在svnserve尝试运行post-commit时才会出现问题,无论它是否在root下运行,或者客户端位于相同或不同的计算机上。
答案 0 :(得分:0)
你的钩子没有射击可能有很多原因:
hooks/
文件夹执行,它们从根服务器的文件夹执行更多信息:
希望这有帮助。