Subversion Hooks Script

1、pre-commit

@ECHO

REM Subversion Hooks Script For Windows Author chen hua
REM 1、日志不能为空  2、只有管理员才能删除文件夹或文件

SETLOCAL
SET BINDIR=C:\"Program Files"\"VisualSVN Server"\bin
SET SCM=admin
SET REPOS=%1
SET TXN=%2

REM 1、日志不能为空
%BINDIR%\svnlook log -t "%TXN%" "%REPOS%" | findstr ".........." > nul
if %ERRORLEVEL% gtr 0 goto :NOLOG

REM 2、只有管理员才能删除文件夹或文件
%BINDIR%\svnlook author -t "%TXN%" "%Repos%" | findstr "%SCM%"
IF %ERRORLEVEL% gtr 0 goto CHECK
EXIT 0

:CHECK
%BINDIR%\svnlook changed -t "%TXN%" "%Repos%" | findstr "^D"
if %ERRORLEVEL% == 0 goto NODELETE
EXIT 0

:NOLOG
echo 【系统提示】:日志是跟踪文档的重要信息,不能为空且长度不得小于10个字符,谢谢您的合作!>&2
EXIT 1

:NODELETE
echo 【系统提示】:只有管理员才能删除文件夹或文件,谢谢您的合作!>&2
EXIT 1


 

2、pre-revprop-change

@ECHO

REM Subversion Hooks Script For Windows
REM 只允许修改自己的日志和不允许 增加、删除 等操作。

REM 参数
set SVN_BINDIR=C:\"Program Files"\"VisualSVN Server"\bin
set REPOS=%1
set REV=%2
set USER=%3
set PROPNAME=%4
set ACTION=%5

REM 设置超级用户,超级用户可以修改其他人的日志,其他人只能修改自己的日志
set SUPERUSER=admin


REM 当前只允许修改日志
if /I not '%PROPNAME%'=='svn:log' goto ERROR_PROPNAME


REM 当前不允许 增加、删除 等操作
if /I not '%ACTION%'=='M' goto ERROR_ACTION


REM 当前只允许修改自己的日志
for /f  "usebackq"   %%k in   (`%SVN_BINDIR%\svnlook author %REPOS% -r %REV%`)   do   @set  VAR=%%k

set RIGHTUSER=0

if "%3" == "%SUPERUSER%"  set RIGHTUSER=1
if "%3" == "%VAR%" set RIGHTUSER=1
if %RIGHTUSER% == 0 goto ERROR_USER
goto :SUCCESS_EXIT

:SUCCESS_EXIT
exit 0

:ERROR_USER
echo 【系统提示】:用户只允许修改自己的日志信息。 >&2
goto ERROR_EXIT

:ERROR_PROPNAME
echo 【系统提示】:用户只允许修改日志,不能修改日志作者。 >&2
goto ERROR_EXIT

:ERROR_ACTION
echo 【系统提示】:用户不允许 增加、删除 等操作。 >&2
goto ERROR_EXIT

:ERROR_EXIT
exit 1

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值