Назад | Перейти на главную страницу

Почему мой перехватчик Apache Subversion после фиксации дает сбой?

Поэтому я пытаюсь заставить обработчик после фиксации работать на моем сервере Apache Subversion, в частности, я пытаюсь отправить электронное письмо на свою учетную запись Google, как описано на эта ссылка.

После установки разрешений для скрипта и рабочей копии для одного и того же пользователя и доступа для чтения / записи он начал вызывать ошибки 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-сервер - в зависимости от вашего решения).

Из приведенной выше ошибки похоже, что пользователь, запускающий скрипт, не имеет прямого доступа к репозиторию и не может получить номер версии.

м