在每次提交的时候写明提交的目的是一个很好的习惯,Subversion默认没有提供,但是可以通过钩子实现:
将下面的代码存为pre-commit.bat或pre-commit.cmd放到版本库的hooks目录下即可,当你不写日志提交的话就会报告错误。(如果你要使用,需要修改下面代码中的SVN_BINDIR为你的Subversion安装的程序目录,要注意SVN的安装路径中不能有空格!)
@echo off
set SVN_BINDIR=c:\svn_setup\bin
setlocal
set REPOS=%1
set TXN=%2
rem check that logmessage contains at least 10 characters
%SVN_BINDIR%\svnlook log "%REPOS%" -t "%TXN%" | findstr ".........." > nul
if %errorlevel% gtr 0 goto err
exit 0
:err
echo Empty log message not allowed!logmessage contains at least 10 characters! Commit aborted! 1>&2
exit 1
如果你配置了Subversion安装程序bin目录的环境变量名为SVN_BIN,则上面的“set SVN_BINDIR=c:\svn_setup\bin”可修改为“set SVN_BINDIR=%SVN_BIN%”。要注意的是,路径中的盘符必须为小写,大写会报错。
注:修改自Subversion官方网站。
2,可以修改历史日志
历史上的日志写的不好,我们希望修改,默认对Subversion是不允许的,并且会提示需要创建pre-revprop-change钩子。最简单的方式是创建一个空白的post-revprop-change.bat文件放到版本库的hooks目录下,但是这种方式不够严格,用户具备了修改所有属性的权利,例如修改作者的权利(可以提交垃圾然后栽赃嫁祸了)。所以要限制用户只能修改日志,所以有了下面的代码,将其存为pre-revprop- change.bat放到版本库的hooks目录下即可。
@ECHO OFF
set repos=%1
set rev=%2
set user=%3
set propname=%4
set action=%5
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Only allow changes to svn:log. The author, date and other revision
:: properties cannot be changed
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if /I not '%propname%'=='svn:log' goto ERROR_PROPNAME
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Only allow modifications to svn:log (no addition/overwrite or deletion)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if /I not '%action%'=='M' goto ERROR_ACTION
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Make sure that the new svn:log message contains some text.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
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 Empty svn:log properties are not allowed. >&2
goto ERROR_EXIT
:ERROR_PROPNAME
echo Only changes to svn:log revision properties are allowed. >&2
goto ERROR_EXIT
:ERROR_ACTION
echo Only modifications to svn:log revision properties are allowed. >&2
goto ERROR_EXIT
:ERROR_EXIT
exit 1
分享到:
相关推荐
svn强制写日志hooks delete-svn-folders.reg
实现svn强制写日志和可修改log功能,可以更方便的更规范的使用svn日志功能.
强制用户在提交时写日志的钩子,以及允许提交者修改自己的日志的钩子。 强制svn使用者养成写日志的习惯,并允许提交者对自己的提交日志进行修改校正,使日志更加可用,可读。
windows下svn限制强制写日志及只能修改自己日志脚本的具体步骤,很实用
1,svn提交时强制填写日志。 2,修改日志只能修改自己的。 压缩包包含两个文件:pre-commit,pre-revprop-change。 更新:解决提示显示的乱码问题。 使用方法:...
包含内容: 邮件通知 强制写日志 禁止修改log ..............
Windows下svn客户端TortoiseSVN的安装和操作
1、强制写日志,并且字符不少于十个字。 2、过滤bin目录、obj目录、suo文件、user文件的提交。 以上过滤文件对VS开发Web项目时过滤的文件进行的设置,你可以根据自己需要过滤自己的文件和目录。
windows server下安装svn服务器的图文教程,比较全面
Windows下SVN使用指南.ppt
SVN禁止删除和强制注释操作的钩子脚本 只有用户lyj能删除 注释内容不能少于10个字符
windows下SVN 1.6 服务端和客户端安装配置.docx
用法:将本bat文件(不可改名)存在svn服务器端安装目录\仓库名\hooks下(该目录下有多个*.tmpl文件,包括pre-commit.tmpl即linux下的提交钩子,而pre-commit.bat为windows下的提交钩子),并修改文件中相应目录(共...
指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间时间 获取SVN日志指定区间...
Windows下SVN的安装与配置及应用
最强大的Svn在Windows下实现自动全备份和增量备份,以及异地备份,一切自动化完成 1.SVN备份内容 SVN在Windows下的自动备份实现,包括: 1)SVN目录的全备份(1周或1个月备份1次,由windows计划来调度执行); 2)...
windows下svn安装文件和使用教程
svn控制项目过程中,通过此文件,可以控制相应的人员必须填写日志信息及信息的长度
eclipse中安装svn 以及windows下的svn服务器端 都在这个压缩包内,解压就可以用
详细介绍在Windows下是如何配置SVN服务器的。