Хук post-commit вызывает ошибку при svn commit, но работает при запуске вручную в командной строке

В настоящее время я пытаюсь настроить ловушку post-commit для моего хранилища subversion для отправки уведомлений по электронной почте. Я использую Subversion 1.7.8. Мой скрипт перехвата после фиксации выглядит следующим образом:

#!/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.

Кто-нибудь есть идеи, что может быть причиной этой ошибки?

Спасибо, Джейми.

ИСПРАВЛЕНИЕ:

Я думал, что запуск svnserve под root устраняет проблему локально, но после дальнейших экспериментов я понимаю, что это неправильно. post-commit работает на локальной машине, если проект был извлечен с использованием синтаксиса file: //, но завершился неудачей, если был извлечен с использованием синтаксиса svn: //.

Поэтому проблема возникает только тогда, когда svnserve пытается запустить post-commit, независимо от того, работает он под root или нет, или клиент находится на том же или на другом компьютере.

Ответы на вопрос(1)

Ваш ответ на вопрос