`
hudeyong926
  • 浏览: 2028390 次
  • 来自: 武汉
社区版块
存档分类
最新评论

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

 
阅读更多

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

#cd /home/administrator/www/svntest svntest是一个代码仓库
#cp ./hooks/pre-commit.tmpl ./hooks/pre-commit 将代码仓库根目录下,hooks文件夹中的pre-commit.tmpl文件重命名为pre-commit
#chmod +x ./hooks/pre-commit
#vi ./hooks/pre-commit

 修改前的SHELL脚本:

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

# Exit on all errors.
set -e

# Check that the author of this commit has the rights to perform
# the commit on the files and directories being modified.
"$REPOS"/hooks/commit-access-control.pl "$REPOS" $TXN \
 "$REPOS"/hooks/commit-access-control.cfg

# All checks passed, so allow the commit.
exit 0

 修改后的脚本:

REPOS="$1"
TXN="$2"

# Make sure that the log message contains some text.
SVNLOOK=/usr/bin/svnlook

LOGMSG=`$SVNLOOK log -t $TXN $REPOS | wc -m`       //定义个变量,注意这里不是单引号

#$SVNLOOK log -t "$TXN" "$REPOS" | \               //把这一行和下面的一行注释掉
# grep "[a-zA-Z0-9]" > /dev/null || exit 1

echo $LOGMSG > /home/administrator/www/aaa.txt     //为了测试变量用的,查看$LOGMSG有没有值,最后要注释掉
if [ "$LOGMSG" -lt 48 ]                            //这里为什么是48呢,一个汉字对应16个字符
then
 echo "\n至少输入4个汉字" >&2                        //必须填四个汉字
 exit 1
fi

# Exit on all errors.
#set -e

# Check that the author of this commit has the rights to perform
# the commit on the files and directories being modified.
#"$REPOS"/hooks/commit-access-control.pl "$REPOS" $TXN \    //把这一行和下面的一行注释掉。
#  "$REPOS"/hooks/commit-access-control.cfg

# All checks passed, so allow the commit.
exit 0

 保存退出后!执行提交操作,效果图如下:

 

  • 大小: 39.4 KB
分享到:
评论

相关推荐

    SVN提交时强制添加注释

    在Windows环境下,实现SVN提交时强制添加注释的方法是通过编写一个批处理文件(`.bat`文件),并将其放置在SVN仓库的`hooks`目录下。具体步骤如下: 1. **创建批处理文件**:首先需要创建一个名为`pre-commit.bat`...

    Web方式的SVN全文搜索功能实现

    1. **post-commit hook**:配置SVN仓库的post-commit钩子脚本,以便在每次提交后自动触发索引更新流程。 2. **hook脚本编写**:编写Shell脚本或批处理文件,用于获取最新的提交信息并调用索引更新程序。 3. **异常...

    svn帮助文档svn帮助文档

    - **冲突解决**:当多人同时修改同一文件时可能出现冲突,SVN会标记出冲突部分,用户需要手动解决冲突后再提交。 4. **TortoiseSVN特色功能**: - **图形化界面**: 提供直观的右键菜单操作,如检出、更新、提交等...

    代码管理工具SVN

    这个客户端提供了丰富的右键菜单选项,使得用户可以直接在文件或目录上执行各种SVN操作,如添加、提交、更新、解决冲突等。 4. **基本操作**:使用SVN,你需要了解几个关键概念和操作,如`checkout`(检出)用于...

    SVN菜鸟级教程(免费)

    - **客户端工具**:TortoiseSVN是一个集成于Windows Shell中的客户端工具,方便用户通过右键菜单进行SVN操作。下载链接为TortoiseSVN官网,推荐版本为`TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi`。 ##### 2. ...

    svn-win32-1.8.4.zip

    - `svn commit -m "commit message"`: 提交更改并附带注释。 - `svn diff`: 查看工作副本与仓库的差异。 - `svn merge URL`: 合并仓库的更改到本地。 - `svn revert`: 撤销本地更改,恢复到上次提交状态。 5. ...

    Windows下的SVN客户端

    TortoiseSVN是一款开源的、与Windows Shell紧密集成的SVN客户端,它的图标和操作方式都与Windows资源管理器无缝结合,使得用户可以在熟悉的界面下进行版本控制操作。它支持包括创建、提交、更新、合并、解决冲突等一...

    svn服务器配置教程

    安装完成后,可选择是否重启,重启是为了使TortoiseSVN的Windows风格生效,但并非必须。 3. **建立版本库(Repository)** - 可以通过命令行工具`svnadmin`创建,例如`svnadmin create E:\svndemoepository`。 - ...

    SVN1.9客户端安装程序

    1. **界面友好**:TortoiseSVN将SVN命令集成到Windows右键菜单中,用户可以通过直观的界面完成诸如添加、删除、更新、提交等操作。 2. **版本控制**:用户可以查看文件的历史版本,轻松回滚到任何之前的版本,防止...

    SVN 快速入门教程.pdf

    - 对文件进行修改后,使用`svn commit`命令提交更改,例如`svn commit -m "Update README file"`. - **查看所作的修改**: - 使用`svn status`查看当前工作拷贝的状态。 - 使用`svn log`查看提交记录。 - 使用`...

    svn同步工具

    - 提交:支持批量提交文件或整个项目,同时可以添加提交注释。 - 冲突解决:当多个用户修改同一文件时,工具会标识冲突,并提供解决冲突的方法。 - 查看历史:显示文件或目录的历史版本,便于追踪变更。 - 分支...

    本地SVN服务器的过程.

    在本文中,我们将详细探讨如何在Windows 7系统上搭建本地SVN(Subversion)服务器。SVN是一种版本控制系统,用于管理软件项目中的源代码和其他文件的变更历史。通过创建本地SVN服务器,开发人员可以在同一台计算机上...

    svn安装包中文版

    TortoiseSVN是一款直观易用的Windows Shell接口,与svn紧密集成,提供图形化的用户界面,使得svn的操作更为便捷。提供的文件名为"TortoiseSVN-1.10.0.28176-x64.msi",表明这是TortoiseSVN的64位版本,版本号为...

    SVN windows客户端

    1. **TortoiseSVN**:这是一款非常流行的免费客户端,它作为一个Windows shell扩展集成在文件资源管理器中,提供直观的右键菜单选项进行SVN操作。TortoiseSVN支持多种语言,包括中文,且与大多数IDE(如Visual ...

    windows下配置apache+svn+trac的方法详解

    - 修改 `ApacheGroup\Apache2\conf\httpd.conf` 文件,取消注释相关模块的加载指令,并添加新的模块指令: ```apache LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/...

    svn 服务器的配置

    最后,为了方便开发人员使用,我们还需要在Eclipse等集成开发环境中配置SVN插件,以实现项目版本的同步、提交、更新等功能。具体步骤包括安装SVN客户端工具、配置IDE中的SVN选项以及设置项目属性等。 总之,配置SVN...

    SVN-1.7.2.22327-x64-安装包及汉化包

    例如,TortoiseSVN是一个Windows shell接口,用户可以直接在资源管理器中进行SVN操作,如添加、提交、更新、比较、解决冲突等。 5. **命令行工具**: 对于熟悉命令行的开发者,SVN还提供了一个命令行客户端,通过...

    svn项目管理工具

    1. **Subversion服务器**:如`svnserve`或`Apache HTTPD`模块(mod_dav_svn),用于托管版本库,让团队成员可以访问和提交更改。 2. **Subversion客户端**:例如`TortoiseSVN`,这是一个Windows shell集成的图形化...

    linux_SVN使用命令.docx

    `-m`选项后面跟的是提交的注释。 4. **Lock/Unlock(加锁/解锁)** `svn lock`用于锁定文件,防止他人编辑。例如: ``` svn lock -m "Locking for editing" test.php ``` `svn unlock`则用于解锁。例如: ``...

Global site tag (gtag.js) - Google Analytics