Настройте перехватчик предварительной фиксации svnperms

StackOverflow https://stackoverflow.com/questions/916758

  •  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 когда вы запускаете его в интерактивном режиме.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top