【发布时间】:2013-05-26 22:29:44
【问题描述】:
我在 Windows 上安装了 Collabnet Subversion Edge v3.3.1。我已经启用了基本访问限制,但这并不能让我灵活地执行以下操作: 1.放弃用户删除文件/文件夹 2. 使用通配符指定存储库中的文件级权限
因此,我搜索并找到了 svnperms.py 以满足我的要求。我按照互联网上的说明配置了 svnperms.py 以限制访问。
我的预提交钩子如下所示:
set REPOS=%1
set TXN=%2
REM "C:\csvn\Python25\python.exe" "C:\csvn\data\repositories\repos\hooks\svnperms.py" -r "%repos%" -t "%txn%" - f "C:\csvn\data\repositories\repos\hooks\svnperms.conf"
"C:\csvn\Python25\python.exe" "C:\csvn\data\repositories\repos\hooks\svnperms.py" - f "C:\csvn\data\repositories\repos\hooks\svnperms.conf" -r "%REPOS%" -t "%TXN%"||exit 1;
exit 0;
我的配置文件是这样的
[groups]
group1 = sowmya.dass
group2 = m.b
[repos]
a/.* = @group1(update)
a/.* = @group2(delete)
我尝试通过让用户 m.b 删除存储库中文件夹 a 下的文件来对此进行测试。由于用户有权访问,他应该能够做到,但是当他尝试提交时我得到以下错误:
命令:提交
删除:C:\m_ws_edge\a\pom.xml
错误:提交失败(详情如下):
错误:提交被预提交挂钩(退出代码 1)阻止,输出:
错误:svnlook 作者 C:\csvn\data\repositories\repos -t 5-c
错误:“{”未被识别为内部或外部命令,
错误:可运行的程序或批处理文件。错误:命令失败:svnlook 作者
错误:C:\csvn\data\repositories\repos -t 5-c
错误:“{”未被识别为内部或外部命令,
错误:可运行的程序或批处理文件。
完成!:
当任何用户尝试执行任何操作时都会出现相同的错误,而不管用户是否已获得访问权限。
我查看了How to control changes to tags in SVN server on Windows 的早期帖子,其中讨论了类似的问题。但该解决方案不符合我的要求。它还提到 svnperms.py 不能在 windows 上运行,因为底层的 svnlook 命令只能在 unix 上运行。我也碰巧在互联网上看到其他提到类似问题的帖子,但我找不到任何解决方案让 svnperms.py 在 Windows 上工作。
任何人都可以帮助我: 1. 修复上述错误并让 svnperms.py 在 windows 或/和 2. 满足我上述要求的替代解决方案,即能够放弃用户对文件/文件夹的删除,并能够在基于文件的访问限制中使用通配符。
谢谢!
问候
苏米亚·达斯
【问题讨论】:
标签: svn subversion-edge