我在 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)
我尝试通过让用户 mb 删除存储库中文件夹 a 下的文件来测试这一点。由于用户有权访问,他应该能够做到,但是当他尝试提交时我得到以下错误:
命令:提交
删除:C:\m_ws_edge\a\pom.xml
错误:提交失败(详细信息如下):
错误:提交被预提交挂钩(退出代码 1)阻止,输出:
错误:svnlook author C:\csvn\ data\repositories\repos -t 5-c
错误:'{' 不是内部或外部命令,
错误:可运行的程序或批处理文件。错误:命令失败:svnlook 作者
错误:C:\csvn\data\repositories \repos -t 5-c
错误:'{' 未被识别为内部或外部命令,
错误:可运行的程序或批处理文件。
完全的!:
当任何用户尝试执行任何操作时都会出现相同的错误,而不管用户是否已授予访问权限。
我查看了一篇关于如何在 Windows 上控制对 SVN 服务器中标签的更改的早期帖子,其中讨论了类似的问题。但该解决方案不符合我的要求。它还提到 svnperms.py 不能在 windows 上运行,因为底层的 svnlook 命令只能在 unix 上运行。我也碰巧在互联网上看到其他提到类似问题的帖子,但我找不到任何解决方案让 svnperms.py 在 Windows 上工作。
任何人都可以帮助我:1. 修复上述错误并让 svnperms.py 在 Windows 上工作或/和 2. 满足我上述要求的替代解决方案,即能够放弃用户删除文件/文件夹并能够使用基于文件的访问限制中的通配符。
谢谢 !
问候
索米亚·达斯