2009-05-27 2 views
0

Я пытаюсь реализовать svnperms в хранилище, но у меня возникают трудности с несколькими вещами:Настройка svnperms перед фиксацией ловушкой

перед фиксацией имеет права на выполнение:

-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 

Calling svnperms без каких-либо paramters показывает:

/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, похоже, работает на основе вышеизложенного.

Что мне не хватает?

ответ

6

Я предполагаю, что расположение двоичного файла python не в $PATH для сервера svn. Shabang линия svnperms.py гласит:

#!/usr/bin/env python 

Но это предполагает, что исполняемый файл находится в $PATH вызывающего абонента. Если у вас нет прав на изменение среды выполнения вашего сервера subversion, попробуйте заменить python на строку shabang на путь, заданный which python, когда вы запускаете его в интерактивном режиме.

+0

Dang! Побей меня. ;-) –

+0

Спасибо! Вот так! Глядя на заметки, по-видимому, это общая проблема для того, чтобы сценарий не наследовал $ PATH. – jgreep

+1

В соответствии с http://svnbook.red-bean.com/en/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hookshook программы выполняются с пустой средой по дизайну в целях безопасности. –

Смежные вопросы