2009-05-27 8 views
0

Ich versuche svnperms in ein Repository zu implementieren, aber mit ein paar Dinge Schwierigkeiten habe:einrichten svnperms pre-commit Haken

pre-commit hat die Ausführungsrechte:

-rwxrwxr-x 1 svnadm  svn   3018 May 27 10:11 pre-commit 

Diese ist mein Aufruf an svnperms innerhalb pre-commit:

# 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 

ich habe svnperms.py angegeben in der Lage installiert bekam:

# ls -l /usr/local/svn/scripts 
total 24 
-rwxrwxr-x 1 svnadm  svn   11840 May 25 07:48 svnperms.py 

svnperms.py ist im UNIX-Format - keine^M Zeilenenden.

TortoiseSVN kommt zurück mit:

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 

Aufruf svnperms ohne paramters zeigt:

/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 

Die UNIX-Server-Betreiber hat Python vor kurzem installiert, war aber nicht sicher, ob alle Abhängigkeiten gibt. Wenn das das Problem ist, bin ich mir nicht sicher, wie ich das ermitteln soll, da Python basierend auf der obigen Ausgabe zu arbeiten scheint.

Was fehlt mir?

Antwort

6

Meine Vermutung ist, dass der Speicherort der python Binärdatei nicht in $PATH für den Svn-Server ist. Die shabang Linie svnperms.py lautet:

#!/usr/bin/env python 

Aber das setzt voraus, dass die ausführbare Datei im $PATH des Anrufers liegt. Wenn Sie nicht berechtigt sind, die Laufzeitumgebung Ihres Subversion-Servers zu ändern, versuchen Sie, python in der Shabang-Zeile durch den Pfad which python zu ersetzen, wenn Sie ihn interaktiv ausführen.

+0

Dang! Beat mich dazu. ;-) –

+0

Danke! Das hat es geschafft! Wenn man sich die Notizen anschaut, ist es offensichtlich ein übliches Problem, dass das Skript $ PATH nicht erbt. – jgreep

+1

Nach http://svnbook.red-bean.com/de/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hookshook werden Programme aus Sicherheitsgründen mit einer leeren Umgebung per Design ausgeführt. –