SVN预提交钩子中的用户验证
找到mcdon提供的一个有用的SVN预提交挂钩 我想在提交之前添加对用户的验证检查。我可以做下面这样的事情吗SVN预提交钩子中的用户验证,svn,pre-commit-hook,pre-commit,Svn,Pre Commit Hook,Pre Commit,找到mcdon提供的一个有用的SVN预提交挂钩 我想在提交之前添加对用户的验证检查。我可以做下面这样的事情吗 @echo off REM user1, user2, user3 are example set VALID_USERS=user1,user2,user3 set SVNROOT="C:\Program Files\CollabNet Subversion Server\svnlook.exe" set REPOS=%1% set TXN=%2% %SVNROOT% autho
@echo off
REM user1, user2, user3 are example
set VALID_USERS=user1,user2,user3
set SVNROOT="C:\Program Files\CollabNet Subversion Server\svnlook.exe"
set REPOS=%1%
set TXN=%2%
%SVNROOT% author %REPOS% -t %TXN% | findstr /r "^%VALID_USERS%$" >nul
if %errorlevel% EQU 0 (
echo This is an invalid user 1>&2
exit 1
) else (
echo This is valid user 1>&2
exit 0
)
上述预提交脚本失败,因为所有用户都可以提交其文件。另外,“echo”命令不起作用,因为我在上面没有看到任何echo语句。有人能帮忙吗?我不明白你为什么需要一个预提交钩子,所以我给你一个草图,我们在处理标记时使用了什么
[/tags]
* = r
@R_SVN_ADMINS = rw
因此,只有管理员才能创建和修改标记[/tags/r1.0]
@R_SVN_ADMINS = r
这对我们来说很有效,因为标签很少创建,我们没有太多标签。我们不需要任何钩子来禁止某些东西…发现以下解决方案有效:
REM Block deletion of folder/file in trunk
%SVNLOOK% changed %REPOS% -t %TXN% | findstr /r "^D.*trunk/.*$" >nul
if %errorlevel%==0 (goto DeleteInTrunkError)
REM DeleteInTrunkError
REM ------------------------
:DeleteTrunkTagsError
echo. 1>&2
echo Trunk Delete Error: 1>&2
echo Only Administrator can delete in the trunk folder. 1>&2
echo Commit details: 1>&2
%SVNROOT% changed %REPOS% -t %TXN% 1>&2
exit 1
谢谢你的回复。我曾想过使用预提交钩子来限制用户删除/trunk目录中的文件/文件夹。然后,您应该重新表述您的问题(可能还有标题)以告诉人们您的问题…@mliebelt,上述授权是否也适用于基于LDAP的身份验证?我的意思是,LDAP中的用户可以访问repo,但不能为所有用户设置读写权限。我无法使用“限制”,因为LDAP中没有创建组。请建议。