我想实现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  

没有paramters调用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二进制文件的位置不在$PATH为SVN服务器。 svnperms.py的shabang行读取:

#!/usr/bin/env python

但是,这假定可执行在于呼叫者的$PATH。如果您没有权限修改Subversion服务器的运行时环境,尽量在当你交互式运行它通过python给出的路径shabang线替换which python

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top