SVN与TortoiseSVN修改日志和强制写日志实现详解

原文地址:http://blog.sina.com.cn/s/blog_71a395ea0102w782.html

 

SVN提交强制写日志设置:

 

强制设定commit时写一定长度的日志的两种方法:

1.在客户端配置

使用客户端工具:TortoiseSVN 

在工作副本目录上,鼠标右键,TSVN,选属性,点增加 

再出现的下拉条中选tsvn:logminsize 

然后设定必须输入的字节数就可以

2.在服务器端配置

在库的hooks目录下编写脚本(其实就是批处理文件)文件:pre-commit.bat 

内容为:

@echo off 

setlocal

set REPOS=%1

set TXN=%2

rem check that logmessage contains at least 20 characters

"D:\Program Files\VisualSVN Server\bin/svnlook" log "%REPOS%" -t "%TXN%" | findstr "...................." > nul

if %errorlevel% gtr 0 goto err

exit 0

:err

echo 提交必须写20个字以上的日志!>&2

exit 1

想修改限制长度只需要增加或减少".............................."中点的数量。

总结:两种方法都可以,推荐用第二种方法,这才能起到强制的作用。第一种办法谁都可以改,强制不了,只能靠自觉。 

注意:" D:\Program Files\VisualSVN Server\bin/svnlook "根据自己实际的安装路径,找svn的svnlook.exe文件的位置,使用绝对路径。

修改完重启SVN服务

  

2、允许修改历史日志的方法

默认是不允许修改的。

在版本库的hooks目录下加入一个批处理文件:pre-revprop-change.bat

@ECHO OFFset 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

然后用TortoiseSVN->显示日志->选择待修改日志->右键:编辑日志信息。

但存在一个问题:强制设定commit时写一定长度的日志功能失去。

修改完重启SVN服务即可。

 

日志模板设置(windows下)

 

1、日志提交限制

服务器中安装的VisualSVN Server ,在新增Repositoreis时,每个Repositoreis(即新建的项目)下都会有一个hooks(钩子程序)在hooks目录下有一些tmpl文件,作为不同的hooks操作

新建一个pre-commit.bat文件,文件内容如下: 

@echo 
off


setlocal


set
SVN_BINDIR=C:/Program Files/VisualSVN
Server/bin/


set REPOS=%1


set TXN=%2


rem check that logmessage contains at least 
20 
characters


svnlook log 
"%REPOS%" 
-t 
"%TXN%" 
| findstr 
"....." 
> nul


endlocal


if 
%errorlevel% gtr 
0 
goto 
err


exit 
0


:err


echo 请填写Log!!!日志格式具体如下: 
1>&2 


echo 【提交类型】:BUG/新功能/需求修改/版本制作/代码整理/解决编译不过/阶段性递交/追加递交

1>&2


echo 【问题描述】:该单的描述,从devtrack中复制过来或从功能性对本次修改的描述 
1>&2


echo 【程序描述】:无(原因分析或者是对修改的技术性描述) 
1>&2


echo 【修改内容】: 
1>&2


echo 
1.修改的内容1

1>&2


echo 
2.修改的内容1

1>&2


echo 【相关单号】:无 
1>&2


echo 【需要测试】:是/否 
1>&2


exit 
1

2、日志模板设置

Eclipse设置如下:

\

 

2、通过TortoiseSVN设置,步奏如下(转):

1).在SVN所在的文件夹即项目(网络上是全体的,本地是只针对自己),右键TortoiseSVN,选择Properties(属性)

\
2).在弹出的界面中,选择new...(新建...),然后选择Other
3).在弹出的界面中,Property name项选择tsvn:logtemplate,然后在Property Value中填入模板
【提交类型】:BUG/新功能/需求修改/版本制作/代码整理/解决编译不过/阶段性递交/追加递交
【问题描述】:该单的描述,从devtrack中复制过来或从功能性对本次修改的描述
【程序描述】:无(原因分析或者是对修改的技术性描述)
【修改内容】:
1.修改的内容1
2.修改的内容2
【相关单号】:无
【需要测试】:是/否
4).确定,修改完重启SVN服务。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值