欢迎来到天天文库
浏览记录
ID:8796124
大小:439.41 KB
页数:5页
时间:2018-04-08
《tortoisesvn自动填写提交日志》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、TortoiseSVN使用钩子程序自动填写commit日志1.目的对于使用TortoiseSVN来提交代码到SVN库时经常需要填写提交日志,该提交日志往往有固定的格式(通常由公司版本管理员规定)。如下图,公司要求每次提交到代码库的提交日志中必须由BUGID,Description,Note,Author等信息组成。每次手动填写或复制这些信息到提交日志中都比较麻烦,本文介绍如何使用客户端钩子脚本(使用python编写)自动填写具有固定格式的信息到提交日志中。2.工具及版本本文档用到的工具(其它版本的未
2、做测试):ØTortoiseSVN1.8.4,Build24972-32Bit,2013/11/2411:15:39ØPython2.7.8上述两个工具都需要安装在SVN客户端(通常为个人PC)上的,其中python是用来执行python编写的钩子脚本的(用其它语言语言编写钩子脚本也是可以的)。1.原理打开TortoiseSVN->Settings,其中有一项为”HookScripts”,这里可以添加TortoiseSVN执行各种操作(如提交前、提交时、提交后等)需要执行的脚本,即“钩子脚本”。点击
3、“Add…”可以看到TortoiseSVN支持执行钩子脚本的各种操作:自动填写固定格式的日志信息需要配置的钩子脚本为“StartCommitHook”,根据TortoiseSVN帮助手册可以找到“StartCommitHook”的解释:Start-commit会在提交代码对话框显示前执行,显然,自动填写提交日志信息需要在提交对话框显示前完成。每次点击提交时,会在目录C:UsersAdministratorAppDataLocalTemp下生成四个svn临时文件(每个临时文件都有各自不同的用
4、途):根据帮助手册,可以找到在执行钩子脚本前,TortoiseSVN会依次传给钩子脚本的参数:其中:PATH:传给脚本的第一个参数,临时文件名字MESSAGEFILE:传给脚本的第二个参数,临时文件名字,提交操作时会把这个临时文件的内容放到提交日志中。CWD:传给脚本的第三个参数,临时文件名字,脚本所在的当前目录。从Start-commit的参数解释来分析,我们只需要用脚本(本文用python编写)把需要的日志信息写到第二个参数MESSAGEFILE指向的临时文件中,提交对话框就会把这个临时文件内容
5、作为提交日志。1.实验1.安装python到C:Python272.在任意文件夹下新建文件commitMsgTemplate.txt,内容如下:BUGID:Description:Note:Author:zhangsan1.在文件commitMsgTemplate.txt的同一文件夹下编写python脚本FillCommitMsg.py#!/usr/bin/python#-*-coding:utf-8-*-importsysif__name__=="__main__":fileHandle=op
6、en('commitMsgTemplate.txt',"r")commitMsgContent=fileHandle.read()print(commitMsgContent)fileHandle.close()#传给脚本的第二个参数,临时文件名字,提交操作时会把这个临时文件的内容放到提交日志中svnMsgFile=sys.argv[2];print(svnMsgFile)svnMsgFileHandle=open(svnMsgFile,"w")svnMsgFileHandle.write(comm
7、itMsgContent)svnMsgFileHandle.close()2.配置TortoiseSVN的startcommithook为执行脚本FillCommitMsg.py3.修改WorkingCopy“E:论文”下的文件,点击提交,查看配置结果1.总结本文实现的自动填写日志的功能也可以用TortoiseSVN的properties功能(tsvn:logtemplate)实现,但该实现会被提交到SVN库,影响到所有用户,所以在被SVN版本管理员许可的前提下,可以把通用的日志信息(如涉及具体用
8、户名等)通过TortoiseSVN的properties功能(tsvn:logtemplate)提交到SVN库让所有用户使用。经实验发现,使用钩子脚本会覆盖tsvn:logtemplate的方式。
此文档下载收益归作者所有