Post-Commit-Hook erzeugt einen Fehler bei SVN-Commit, funktioniert jedoch, wenn er manuell in der Befehlszeile ausgeführt wird

Ich versuche derzeit, den Post-Commit-Hook für mein Subversion-Repository einzurichten, um E-Mail-Benachrichtigungen zu senden. Ich benutze Subversion 1.7.8. Mein Post-Commit-Hook-Skript lautet wie folgt:

#!/bin/sh

REPOS="$1"
REV="$2"

"$REPOS"/hooks/mailer.py commit $REPOS $REV "$REPOS"/mailer.conf

Wenn ich einen Commit durchführe, wird die folgende Fehlermeldung ausgegeben:

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)

Das Besondere an diesem Fehler ist, dass beim Ausführen von Post-Commit in der Befehlszeile (mit den entsprechenden Argumenten) keine Fehler auftreten und ich die gewünschte E-Mail-Benachrichtigung erhalte. Das lässt mich glauben, dass der Fehler nicht mit meiner mailer.conf-Datei zusammenhängt.

Hat jemand eine Ahnung, was diesen Fehler verursachen könnte?

Danke, Jamie.

KORREKTUR:

Ich dachte, dass das Ausführen von svnserve unter root das Problem lokal behebt, aber nach weiteren Experimenten stelle ich fest, dass dies falsch ist. post-commit funktioniert auf dem lokalen Computer, wenn das Projekt mit der Syntax file: // ausgecheckt wurde, schlägt jedoch fehl, wenn es mit der Syntax svn: // ausgecheckt wurde.

Daher tritt das Problem nur dann auf, wenn svnserve versucht, das Post-Commit auszuführen, unabhängig davon, ob es unter root ausgeführt wird oder nicht oder ob sich der Client auf demselben oder einem anderen Computer befindet.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage