如何设置SVN提交时强制添加注释

windows版本:

1、新建一个名为pre-commit.bat的文件并将该文件放在创建的库文件的hooks文件夹中

2、pre-commit.bat文件的内容如下:

@echo off
set SVN_BINDIR="C:\ProgramFiles\Subversion"
set SVNLOOK="E:\freescm\freescm\SVN\bin\svnlook.exe"
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 "提交文件时必须添加注释,提交中止." 1>&2
exit 1

Linux版本:

1、在svn的hooks目录下新建一个名为pre-commit的文件并为其添加执行权限

2、pre-commit文件的内容如下:

#!/bin/sh
REPOS="$1"
TXN="$2"
SVNLOOK=/opt/CollabNet_Subversion/bin/svnlook
LOGMSG=$($SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c)
if [ "$LOGMSG" -lt 10 ]; then
echo -e "\n 提交文件时必须添加注释,提交中止."1>&2
exit 1
fi

脚本命令解释

LOGMSG=$($SVNLOOK log -t “$TXN” “$REPOS” | grep “[a-zA-Z0-9]” | wc -c)
将提交的日志信息作为便来那个输入之后,将grep英文和数字的结果作为变量

if [ "$LOGMSG" -lt 10 ]; 传入变量来判断变量长度是否小于10
-eq 等于号  -gt 大于号   -lt小于号

1. echo 错误提示信息的时候必须重定向到 stderr ,即 1>&2
2. pre-commit 文件拷贝到 hooks 目录之后,需要 chmod 0755 pre-commit ,给 pre-commit 文件增加可执行权限(或者至少把文件owner改为 svn 服务运行用户并加上owner的x权限)

时间: 2024-09-24 06:50:07

如何设置SVN提交时强制添加注释的相关文章

Linux停SVN提交时强制写日志

Linux下SVN提交时强制写日志 SVN默认可以不写注释提交,有时候可能忘记写注释,有的人也没有写注释的习惯,导致翻看history的时候都不知道做了哪些更改,可以依照以下步骤修改SVN配置,强制提交SVN前写注释   步骤: 1.进入svn/code/hooks目录,在svn版本库的hooks文件夹下面,复制模版pre-commit.tmplcp pre-commit.tmpl pre-commitchmod +x pre-commit 2.编辑pre-commit文件:将:$SVNLOOK

svn提交时强制注释

不少开发员提交修改的时候都不写注释,导致查看历史时很费劲,也不太符合规范.有的公司要求每次提交修改时都写上bug号或者任务描述,那么如何在工具上防止开发员们不写注释呢?    利用svn的pre-commit钩子可简单实现此要求.  进入仓库project1/hooks目录,找到pre-commit.tmpl文件,重命名,去掉后缀.tmpl. 编辑pre-commit文件:(Linux系统和windows系统脚本内容见1和2)  1.Linux系统 方法1: 将: $SVNLOOK log -t

svn文件提交时强制写注释

这个操作需要修改版本库中的一个钩子文件,在你创建的版本库中有一个hooks文件夹,初始的时候其中有一个文件叫pre-commit.tmpl 在windows下将其修改为pre-commit.bat,在linux下将其改为pre-commit   linux下(文件名是: pre-commit,放到版本库的/hooks目录下)========================================================== #!/bin/shREPOS="$1"TXN=

SVN:服务器端设置提交时必须填写注释

遇到问题:       在团队开发的时候,总有那么些人非常个性,签入的时候啥都木有,有时候会给回滚版本库带来很多困难.为了解决这个问题,我们可以在SVN服务器端设置签入时必须填写注释,否则不允许签入. 解决方法:    选择要设置的版本库:    在Pre-commit里面加入如下命令:   @echo off setlocal set REPOS=%1 set TXN=%2 rem check that logmessage contains at least 10 characters re

maven-eclipse新添加的packegae和类文件,svn提交后别人同步不到类文件

问题描述 eclipse新添加的packegae和类文件,svn提交后别人同步不到类文件 eclipse新添加的packegae和类文件,svn提交后别人同步下来只看到了新添加的packegae文件夹,没有类文件,我们用的是maven工程 解决方案 eclipse svn添加过滤文件eclipse中svn提交时提示文件被锁 解决方案二: 刷新,提交路径对不对. 解决方案三: 和maven 没有关系吧 估计是svn没提交成功 解决方案四: 问题已经解决,使用eclipse自带的软件库重新安装了一个

FishEye+JIRA 如何通过SVN提交命令来创建问题,修复或关闭问题?

问题描述 现在使用JIRA创建了问题,通过SVN提交时加入问题编号例如:"AKG-12blbblblblbl"这样在JIRA中AKG-12问题页面中,SOURCE标签下可以看到有关问题的SVN提交通过配置FishEye开启了"Smartcommit",智能提交?类似这样一个例子,提交描述包含:"AKG-23#close解决一个BUG"这也在JIRA的Smartcommit手册页面找到了说明,但是实际使用不知还缺少什么配置,使用#close#res

Linux之svn强制有注释才能提交

在hooks目录下添加一个脚本就ok #!/usr/bin/env python #-*- encoding: utf-8 -*- ######################################################################### # File Name: pre-commit.py # Author: LookBack # Email: admin#dwhd.org # Version: # Created Time: 2015年09月28日 星

SHELL实现svn必须添加注释后提交

最近在公司的项目中,因为很多人都参与开发,于是我们毫不犹豫的使用了svn来管理我们的项目,我们也特别强调,在提交代码的时候必须要添加注释,如果不添加注释,代码版本多了,根本搞不清,哪个版本改了什么东西?所以如果加一些注释的话,我们看起来,也方便很多.但是在真正的实际中,很多人都没有添加相关的注释,这里面的原因很多,因此决定通过脚本来控制这一过程,也就是实现必须要通过添加描述信息才能顺利的提交你的代码!.所以在提交的时候,我会强制要求写注释.如果对svn的安装配置不怎么了解,请参考:linux s

SVN(TortoiseSVN)提交时忽略bin跟obj目录

原文:SVN(TortoiseSVN)提交时忽略bin跟obj目录 SVN(TortoiseSVN)提交时忽略bin和obj目录 一般协作开发情况下,有意思无意将bin和obj目录添加到版本管理中是很烦人的事儿,在VS中不断地编译程序集和提交将带来版本暴增问题.如果你用的是SVN(TortoiseSVN)可以通过添加属性来忽略掉. 具体实现 在解决方案目录上点右键 在乌龟菜单中找到"属性"点开 在弹出窗中点"新增" 在弹出窗中的"属性"中选择&q