Svn修改日志的方法【转】

Svn修改日志的方法

1、强制写日志

在每次提交的时候写明提交的目的是一个很好的习惯,Subversion默认没有提供,但是可以通过钩子实现:将下面的代码存为放到版本库的hooks目录下即可,当你不写日志提交的话就会报告错误。

文件名:pre-commit-log.bat

1
2
3
4
5
6
7
8
9
10
11
@ echo  off
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  Empty log message not allowed. Commit aborted! 1>&2
exit  1

2、可以修改历史日志

历史上的日志写的不好,我们希望修改,默认对Subversion是不允许的,并且会提示需要创建pre-revprop-change钩子。最简单的方式是创建一个空白的pre-revprop-change.bat文件放到版本库的hooks目录下,但是这种方式不够严格,用户具备了修改所有属性的权利,例如修改作者的权利(可以提交垃圾然后栽赃嫁祸了)。所以要限制用户只能修改日志,所以有了下面的代码,将其存为pre-revprop-change.bat放到版本库的hooks目录下即可。

文件名:pre-revprop-change.bat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
REM SVN pre-revprop-change hook allows edit of logmessages from TSVN
setlocal
set  REPOS=%1
set  REV=%2
set  USER=%3
set  PROPNAME=%4
set  ACTION=%5
if  not  "%ACTION%" == "M"  goto refuse
if  not  "%PROPNAME%" == "svn:log"  goto refuse
goto OK
:refuse
echo  Cann't  set  %PROPNAME%/%ACTION%, only svn:log is allowed 1>&2
endlocal
exit  1
:OK
endlocal
exit  0

3、只允许用户修改自己的svn日志的钩子脚本

hooks目录下就存在一些钩子脚本的模板,用户可以作为参考。把pre-revprop-change.tmpl复制为pre-revprop-change.bat,再修改里面的脚本,钩子就设置好了。 (实现每人可以修改自己的log日志,而管理员可以任意修改。):

1
2
3
4
5
6
7
8
9
10
for  /f  "usebackq"  %%k  in  (`svnlook author %1 -r%2`)  do  @ set  var=%%k
  
if  "%3"  ==  "%var%"  goto  test
if  "%3"  ==  "li"     goto  test
exit  1
  
: test
if  "%4"  ==  "svn:log"  exit  0
echo  Property  '%4'  cannot be changed >&2
exit  1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值