Richten Sie svnperms pre-commit Haken
-
06-09-2019 - |
Frage
Ich versuche svnperms in ein Repository zu implementieren, aber habe Schwierigkeiten mit ein paar Dinge:
pre-commit hat die Berechtigungen ausführen:
-rwxrwxr-x 1 svnadm svn 3018 May 27 10:11 pre-commit
Das ist mein Anruf innerhalb 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
Ich habe svnperms.py in der Lage installiert bekam angegeben:
# ls -l /usr/local/svn/scripts
total 24
-rwxrwxr-x 1 svnadm svn 11840 May 25 07:48 svnperms.py
svnperms.py ist in UNIX-Format - Nr. ^ M Zeilenende
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
Beim 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
Der UNIX-Server-Betreiber hat Python vor kurzem installiert, war aber nicht sicher, ob alle Abhängigkeiten geben. Wenn das das Problem ist, ich bin nicht sicher, wie das zu bestimmen, da Python die Ausgabe basierend auf oben zu funktionieren scheint.
Was bin ich fehlt?
Lösung
Meine Vermutung ist, dass die Lage der python
binär ist nicht in $PATH
für den SVN-Server. 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 die Laufzeitumgebung des Subversion-Servers zu ändern, keine Berechtigungen haben, versucht python
in der shabang Linie mit dem Weg durch which python
gegeben zu ersetzen, wenn Sie es interaktiv ausführen.