SVN强制写日志和修改日志功能
SVN默认是可以不写日志的,也不能修改日志,使用时颇为不便。以下就讲述如何在windows系统下实现强制写日志和修改日志功能。
1、强制用户写日志
在每次提交的时候写明提交的目的是一个很好的习惯,SVN默认没有提供,但是可以通过脚本实现:将下面的代码存为bat文件,放到版本库的hooks目录下即可,当你不写日志提交的话就会报错。
文件名:pre-commit-log.bat
:: begin of pre-commit.bat
:: 阻止空日志信息的版本的提交
@echo off
SETLOCAL
SET REPOS=%1
SET TXN=%2
svnlook log -t "%TXN%" "%REPOS%" | findstr ".........." > nul
if %errorlevel% gtr 0 goto err
exit 0
:err
echo 日志是跟踪版本的重要信息,必须输入,且长度不得小于10个字符。 1>&2
exit 1
:: end of pre-commit.bat
2、允许用户修改自己的日志
历史日志写的不好,希望修改,默认是不允许的。
最简单的方式是创建一个空白的pre-revprop-change.bat文件放到版本库的hooks目录下,但是这种方式不够严格,用户具备了修改所有属性的权利,例如修改作者的权利(可以提交垃圾然后栽赃嫁祸了)。所以要限制用户只能修改日志,所以有了下面的代码,将其存为pre-revprop-change.bat放到版本库的hooks目录下即可。
文件名:pre-revprop-change.bat
rem Only allow log messages to be changed.
if "%4" == "svn:log" exit 0
echo Property '%4' cannot be changed >&2
exit 1