Настройте перехватчик предварительной фиксации svnperms
-
06-09-2019 - |
Вопрос
Я пытаюсь внедрить svnperms в репозиторий, но у меня возникли трудности с несколькими вещами:
pre-commit имеет разрешения на выполнение:
-rwxrwxr-x 1 svnadm svn 3018 May 27 10:11 pre-commit
Это мой вызов svnperms в рамках предварительной фиксации:
# Check that the author of this commit has the rights to perform
# the commit on the files and directories being modified.
SVNPERMS=/usr/local/svn/scripts/svnperms.py
$SVNPERMS -r $REPOS -t $TXN || exit 1
У меня установлен svnperms.py в указанном месте:
# ls -l /usr/local/svn/scripts
total 24
-rwxrwxr-x 1 svnadm svn 11840 May 25 07:48 svnperms.py
svnperms.py имеет формат UNIX - без окончаний строк ^M.
TortoiseSVN возвращается с:
Command: Commit
Modified: C:\projects\Sandbox\Trunk\Test.txt
Sending content: C:\projects\Sandbox\Trunk\Test.txt
Error: Commit failed (details follow):
Error: 'pre-commit' hook failed with error output:
Error: No such file or directory: python
Вызов svnperms без параметров показывает:
/usr/local/svn/scripts/svnperms.py
missing required option(s): repository, either transaction or a revision
Usage: svnperms.py OPTIONS
Options:
-r PATH Use repository at PATH to check transactions
-t TXN Query transaction TXN for commit information
-f PATH Use PATH as configuration file (default is repository
path + /conf/svnperms.conf)
-s NAME Use section NAME as permission section (default is
repository name, extracted from repository path)
-R REV Query revision REV for commit information (for tests)
-A AUTHOR Check commit as if AUTHOR had commited it (for tests)
-h Show this message
Администратор UNIX недавно установил Python, но не был уверен, что все зависимости присутствуют.Если в этом проблема, то я не знаю, как это определить, поскольку, судя по приведенным выше выводам, Python, похоже, работает.
Что мне не хватает?
Решение
Я предполагаю, что местоположение python
двоичный файл отсутствует $PATH
для SVN-сервера.Линия шабанг svnperms.py
читает:
#!/usr/bin/env python
Но это предполагает, что исполняемый файл находится в $PATH
звонящего.Если у вас нет разрешений на изменение среды выполнения вашего сервера Subversion, попробуйте заменить python
в строке шабанга по пути, заданному which python
когда вы запускаете его в интерактивном режиме.