当我们用TortoiseSVN提交代码时,有很多人不喜欢写注释,导致以后代码版本多,也不清楚哪个版本到底改了什么东西。所以在提交的时候,我会强制要求添加注释。这是如何实现的?这个话题就涉及到了svn的Hooks功能的使用。

所谓hooks,可以类似理解Linux内核Netfilter框架的hook点和hook函数的概念。当用户在维护代码的过程中,其执行的相关动作正好触发了相关hook点,就会去执行对应hook点的脚本。

那么如何设置hook脚本以保证强制用户添加注释,以及允许用户修改注释呢?

1. SVN强制添加注释信息

用户提交代码的动作,对应的是pre-commit。因此,进入hook目录把pre-commit.tmpl文件名修改为pre-commit, Windows下可以修改为pre-commit.bat,这样可以让系统知道该文件是可执行文件。

打开pre-commit文件,注释或删除所有的代码,然后添加如下代码:

#!/bin/sh

REPOS="$1"

TXN="$2"

SVNLOOK=/usr/local/bin/svnlook # 修改为服务器安装的subversion目录 whereis svnlook

LOGMSG=$($SVNLOOK log -t “$TXN” “$REPOS” | grep "[a-zA-Z0-9]" | wc -m)

if [ "$LOGMSG" -lt 10 ]; then #要求注释不能少于10个字符(数字和字母),您可自定义

echo -e "\nEmpty log message not allowed. Commit aborted!" 1>&2

exit 1

fi

exit 0

保存,退出。

给pre-commit添加可执行权限:

2. 允许用户修改注释信息

用户修改注释信息的动作,对应的是pre-revpos-change。将hooks目录下的pre-revpos-change.tmpl改名为pre-revpos-change。通常该文件包含的功能就是允许用户修改注释信息。默认文件内容如下,如果不是下面这些内容的话,可以对照修改即可:

#!/bin/sh

REPOS="$1"

REV="$2"

USER="$3"

PROPNAME="$4"

ACTION="$5"

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ];

then

exit 0;

fi

echo "Changing revision properties other than svn:log is prohibited" >&2

exit 1

保存,退出。

将该文件加上可执行权限即可:

chmod +x pre-revpos-change

这样,就可以允许用户修改注释信息了。

svn java注释_svn 强制用户添加注释 和 允许用户修改注释相关推荐

  1. svn提交备注_svn 中commit时必须填写备注信息如何设置

    在软件开发团队中总是有人忘记添加备注信息,可以通过下面方式进行设置,从而在commit时强制需要填写备注信息. 在服务端选中需要设置的项目进行设置. 选中项目右键,"所以任务"-& ...

  2. Centos6.4 为用户添加sudo功能

    sudo即super user do,以超级管理员的方式运行命令.使用时,只需在命令最前面加上sudo即可. 要为用户添加sudo功能,需要修改sudo的配置文件: vi /etc/sudoers ( ...

  3. 网上商城留言板的实现——用户添加留言

    /** *刘梦冰发表于2015-4-26凌晨 */ 用户添加留言 功能描述:用户在前台hostbook.jsp页面的表单中输入留言信息,点击提交按钮,将留言信息提交给表单form的action属性所对 ...

  4. 将用户添加到sudoers_在CentOS系统中将用户添加到Sudoers文件的方法

    本文介绍在CentOS操作系统中将用户添加到Sudoers的方法.sudo是一个命令行实用程序,旨在允许受信任的用户以另一个用户身份运行命令,默认情况下是root用户.要授予用户sudo访问权限,你有 ...

  5. linux将用户移动到用户组,Linux将用户添加到组

    Linux将用户添加到组 Linux允许我们将用户添加到特定的用户组.一个用户帐户可以添加到多个组中.例如,具有sudo权限的用户可以访问sudo命令以获得相关权限.此外,我们可以为组配置文件权限和其 ...

  6. 通过设置svn服务端钩子强制提交注释和限制指定类型文件提交

    通过设置svn服务端钩子强制提交注释和限制指定类型文件提交 svn钩子下载链接:强制提交注释和限制指定类型文件提交的svn钩子

  7. 用java写一个超级详细的二手拍卖系统并附带代码注释

    一个二手拍卖系统需要有以下功能: 用户可以注册.登录和注销账户. 用户可以发布二手物品的拍卖信息,包括物品的描述.照片.起拍价.拍卖时间.保证金等信息. 用户可以在拍卖结束前对拍卖信息进行修改和删除. ...

  8. oracle jpa字段加注释,JPA 通过注解自动生成表,添加 字段名、类型、注释

    JPA 通过注解自动生成表,添加 字段名.类型.注释 发布时间:2018-04-13 16:27, 浏览次数:3806 , 标签: JPA JPA对象注解类型 @Table - 映射表名 @Id - ...

  9. matlab 集体注释,向程序中添加注释 - MATLAB Simulink - MathWorks 中国

    向程序中添加注释 编写代码时,最好添加描述代码的注释.注释有助于其他人员理解您的代码,并且有助您在稍后返回代码时再度记起.在程序开发和测试期间,您还可以使用注释来注释掉任何不需要运行的代码. 在实时编 ...

最新文章

  1. 问号和星号 php,星号和问号两个通配符
  2. leetcode287. Find the Duplicate Number
  3. C++STL中的vector
  4. jQuery的事件方法
  5. Android安全教程(3)---Fiddler简易使用教程之抓取https包
  6. idea中查看类的继承关系图
  7. 给定数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X
  8. 半素数c语言,非常简单的c题目 不懂 紧急求助
  9. devops 工具_衡量DevOps成功的13种工具
  10. JSTL获取session中的值
  11. CentOS connect:fail, reason: connect server 22 port fail
  12. JQuery获得绝对,相对位置的坐标方法
  13. flume建立ElasticSearch索引时间的问题
  14. 豆瓣电影 Top 250
  15. 如何解释GPS中的数据GPGGA、GPRMC等数据
  16. 土地利用转移矩阵--更新中
  17. 909422229_Mysql创建序列
  18. 七年未必痒:如何营造亲密关系的新鲜感?
  19. 【stm32f407】硬件介绍
  20. cosx的三次方的化简,即降次

热门文章

  1. 论文浅尝 | 面向简单知识库问答的模式修正强化策略
  2. 深度学习中不得不学的Graph Embedding方法
  3. Android官方开发文档Training系列课程中文版:调用相机之简单摄像
  4. Android中动态的更改selector中某张图片的属性
  5. leetcode--动态规划(Easy)
  6. day30 并发编程
  7. Serializer字段和选项
  8. MySQL数据库order by 奇慢无比
  9. 神经网络与推荐系统初步简介
  10. 代码实现从键盘接收一个字符串, 程序对其中所有字符进行排序,例如键盘输入: helloitcast程序打印:acehillostt...