Windows 需要Subversion预提交钩子来阻止特定用户的签入

Windows 需要Subversion预提交钩子来阻止特定用户的签入,windows,svn,visualsvn-server,pre-commit-hook,Windows,Svn,Visualsvn Server,Pre Commit Hook,我在Windows Server 2008上安装了Subversion。我想向pre-commit.bat添加代码,以阻止域用户jdoe在域foo上的提交。那代码是什么样子的?我假设它将使用C:\Program Files(x86)\VisualSVN Server\bin\svnlook.,但不要胡说八道-重新阅读基于路径的授权,并撤销所需区域中所需用户的写访问权。句号。这是我的pre-commit.bat。这是丑陋的,但它的工作。第一个检查块用于提交缺少注释的内容。第二个检查阻止用户jdoe

我在Windows Server 2008上安装了Subversion。我想向pre-commit.bat添加代码,以阻止域用户jdoe在域foo上的提交。那代码是什么样子的?我假设它将使用C:\Program Files(x86)\VisualSVN Server\bin\svnlook.

,但不要胡说八道-重新阅读基于路径的授权,并撤销所需区域中所需用户的写访问权。句号。

这是我的pre-commit.bat。这是丑陋的,但它的工作。第一个检查块用于提交缺少注释的内容。第二个检查阻止用户jdoe提交

@echo off
::    
:: Stops commits that have empty log messages.
::

@echo off

setlocal

rem Subversion sends through the path to the repository and transaction id
set REPOS=%1
set TXN=%2

rem check for an empty log message
"C:\Program Files (x86)\VisualSVN Server\bin\svnlook" log %REPOS% -t %TXN% | findstr . > nul
if %errorlevel% gtr 0 (goto err) else (goto nextcheck)

rem block commits by user jdoe
:nextcheck
"C:\Program Files (x86)\VisualSVN Server\bin\svnlook" author %REPOS% -t %TXN% > c:\windows\temp\author.txt
set /p authorcommitting=<c:\windows\temp\author.txt
if %authorcommitting%==jdoe (goto err1) else exit 0

:err
echo. 1>&2
echo Your commit has been blocked because you didn't supply a log message  1>&2
echo. 1>&2
echo Please add a log message describing the reason for your changes and 1>&2
echo then commit. 1>&2
echo. 1>&2
exit 1

:err1
echo. 1>&2
echo Commits are blocked for this user 1>&2
echo. 1>&2
exit 1
@echo关闭
::    
::停止具有空日志消息的提交。
::
@回音
setlocal
rem Subversion通过路径发送到存储库和事务id
设置REPOS=%1
设置TXN=%2
rem检查是否存在空日志消息
“C:\Program Files(x86)\VisualSVN Server\bin\svnlook”日志%REPOS%-t%TXN%| findstr.>努尔
如果%errorlevel%gtr 0(转到错误)其他(转到下一步检查)
rem块由用户jdoe提交
:nextcheck
“C:\Program Files(x86)\VisualSVN Server\bin\svnlook”作者%REPOS%-t%TXN%>C:\windows\temp\author.txt
设置/p authorcommitting=&2
回显您的提交已被阻止,因为您没有提供日志消息1>&2
回声。1>&2
echo请添加一条日志消息,说明更改的原因,1>&2
回显然后提交。1>&2
回声。1>&2
出口1
:err1
回声。1>&2
已阻止此用户的回显提交1>&2
回声。1>&2
出口1
请阅读指南,特别是本节

VisualSVN服务器提供了一个UI来管理用户权限。您可以使用或来管理权限


不要忘记,SVN服务器管理员和存储库管理员必须了解Subversion中的访问控制原则。更多信息,请阅读本文

我尝试向根存储库的conf文件夹中的authz文件添加一个条目,但无法使其正常工作。我认为预提交钩子可能更容易,因为我目前正在使用预提交钩子来阻止缺少签入注释的提交。您应该为此使用基于路径的授权