svn 要求强制写日志

windows下svn限制强制写日志及只能修改自己日志脚本

下面是我在svn1.5 下经过测试的绝对可用的脚本,特把正确的脚本分享给大家,希望能给也需要设置功能,被一些不正确的脚本搞的头大的朋友一些帮助。

1、svn客户端修改日志功能(且只能修改自己日志)
找到版本库中hooks目录下,将pre-revprop-change.tmpl文件复制为pre-revprop-change.bat文件,然后将pre-revprop-change.ba文件内容改为:

set repos=%1
set rev=%2
set user=%3
set propname=%4
set action=%5

for /f  "usebackq"   %%k in   (`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

:ERROR_USER
echo 只允许用户修改自己的日志 >&2
goto ERROR_EXIT

:ERROR_EXIT
exit 1

:SUCCESS_EXIT
exit 0

2、到版本库中hooks目录下,将pre-commit.tmpl文件复制为pre-commit.bat文件,然后将pre-commit.bat 文件内容改为:
setlocal
set REPOS=%1
set TXN=%2
rem check that logmessage contains at least 5 characters
svnlook log "%REPOS%" -t "%TXN%" | findstr ".........." > nul
if %errorlevel% gtr 0 goto err
exit 0
:err
echo 提交必须写日志!>&2
exit 1
 
3.Linux
pre-commit.tmpl,然后更名pre-commit并加上执行权限:
#!/bin/sh

REPOS
="$1"
TXN
="$2"

RES
="OK"
# Make sure that the log message contains some text.
SVNLOOK=/app/subversion/bin/svnlook
$SVNLOOK log -"$TXN" "$REPOS" | egrep "[^[:space:]]+" >/dev/null || unset RES
if [ "$RES" != "OK" ]
then
    echo 
"You must input some comments for you commit" >&2
    
exit 1
fi

# All checks passed, so allow the commit.
exit 0
posted @ 2008-11-15 14:13 jamin 阅读(110) 评论(0)  编辑 收藏 网摘

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-11-15 14:17 编辑过
Google站内搜索
[推荐职位]上海盛大网络招聘架构师



China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: