前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SVN提交时强制用户写日志

SVN提交时强制用户写日志

作者头像
用户7657330
发布2020-08-14 11:18:46
1.6K0
发布2020-08-14 11:18:46
举报
文章被收录于专栏:程序生涯

在使用SVN进行项目管理的过程中,为了对各版本提交状况进行了解,我们需要在SVN提交过程中强制用户输入一定的日志。

下面介绍一下如何来限制用户SVN提交时必须输入日志。

步骤:

1、进入SVN仓库的hooks目录,把pre-commit.tmpl文件重命名为pre-commit

2、修改pre-commit文件

修改前:

代码语言:javascript
复制
REPOS="$1" TXN="$2" # Make sure that the log message contains some text. SVNLOOK=/usr/bin/svnlook $SVNLOOK log -t "$TXN" "$REPOS" | \ grep "[a-zA-Z0-9]" > /dev/null || exit 1 # Check that the author of this commit has the rights to perform # the commit on the files and directories being modified. commit-access-control.pl "$REPOS" "$TXN" commit-access-control.cfg || exit 1 # All checks passed, so allow the commit. exit 0

修改后:

代码语言:javascript
复制
REPOS="$1" TXN="$2" # Make sure that the log message contains some text. SVNLOOK=/usr/bin/svnlook #$SVNLOOK log -t "$TXN" "$REPOS" | \ # grep "[a-zA-Z0-9]" > /dev/null || exit 1 # Check that the author of this commit has the rights to perform # the commit on the files and directories being modified. #commit-access-control.pl "$REPOS" "$TXN" commit-access-control.cfg || exit 1 LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c` if [ "$LOGMSG" -lt 10 ];#要求注释不能少于10个字符 then echo -e "\n注释不能为空,且字数必须大于10个字符." 1>&2 exit 1 fi # All checks passed, so allow the commit. exit 0

其实就是把源文件中的以下3行进行注释:

代码语言:javascript
复制
$SVNLOOK log -t "$TXN" "$REPOS" | \ grep "[a-zA-Z0-9]" > /dev/null || exit 1 commit-access-control.pl "$REPOS" "$TXN" commit-access-control.cfg || exit 1

然后添加以下几行命令:

代码语言:javascript
复制
LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c` if [ "$LOGMSG" -lt 10 ];#要求注释不能少于10个字符 then echo -e "\nLog message cann't be empty! you must input more than 10 chars as comment!." 1>&2 exit 1 fi

3、把pre-commit文件修改为755

代码语言:javascript
复制
chmod 755 pre-commit

修改完后,测试了一下,在没有输入日志时提交SVN,提示错误

代码语言:javascript
复制
Commit failed (details follow): Commit blocked by pre-commit hook (exit code 1) with output: 注释不能为空,且字数必须大于10个字符

输入一定的字数后提交成功!

这里的错误提示可以修改echo 里面输出的内容:

代码语言:javascript
复制
echo -e "\nLog message cann't be empty! you must input more than 10 chars as comment!。" 1>&2
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/03/04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、进入SVN仓库的hooks目录,把pre-commit.tmpl文件重命名为pre-commit
  • 2、修改pre-commit文件
  • 3、把pre-commit文件修改为755
相关产品与服务
项目管理
CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档