Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2470554
  • 博文数量: 293
  • 博客积分: 2660
  • 博客等级: 少校
  • 技术积分: 3632
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-03 17:50
文章分类

全部博文(293)

文章存档

2015年(13)

2014年(58)

2013年(73)

2012年(25)

2011年(30)

2010年(86)

2009年(8)

分类: 项目管理

2013-04-13 16:30:09

默认svn客户端不允许修改日志信息,需要在项目文件夹下的hooks文件夹下建立pre-revprop-change.bat文件

@ECHO OFF
set repos=%1
set rev=%2
set user=%3
set propname=%4
set action=%5
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: 只允许修改日志,其它的不能修改,比如作者,日期等
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if /I not '%propname%'=='svn:log' goto ERROR_PROPNAME
 
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: 只能修改,不能删除或新增
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if /I not '%action%'=='M' goto ERROR_ACTION
 
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: 确保日志非空
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
set bIsEmpty=true
for /f "tokens=*" %%g in ('find /V ""') do (
 set bIsEmpty=false
)

if '%bIsEmpty%'=='true' goto ERROR_EMPTY
 
goto :eof
 
 
 
:ERROR_EMPTY
echo *********log不能为空!*************. >&2
goto ERROR_EXIT
 
:ERROR_PROPNAME
echo *****只能修改log,不能修改作者!****. >&2
goto ERROR_EXIT
 
:ERROR_ACTION
echo *****只能进行修改操作!****. >&2
goto ERROR_EXIT
 
:ERROR_EXIT
exit 1

Unix/Linux解决方案:
     只要将文件pre-revprop-change.tmpl改名为pre-revprop-change,并加上执行权限即可。具体步骤为右键点击属性,勾选执行权限。
利用Subversion的一个程序svnlook,脚本中可以访问的信息就不仅仅只有传递进来的5个参数了,从而可以实现更多的功能。比如判断修改日志的用户是不是以前进行提交的那个作者,如果不是就不允许修改。
内容如下:
REPOS=”$1″
REV=”$2″
USER=”$3″
PROPNAME=”$4″
ACTION=”$5″if [ "$USER" != $(svnlook author -r "$2" "$1") ]; then
echo “author error!” >&2
exit 1
elif [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then
exit 0
fi
echo “Changing revision properties other than svn:log is prohibited” >&2
exit 1
阅读(4494) | 评论(0) | 转发(0) |
0

上一篇:jquery学习网站

下一篇:struts2学习_1

给主人留下些什么吧!~~