• BugFree和SVN的整合


    http://www.bugfree.org.cn/blog/?p=49

    Subversion是目前主流的版本管理工具之一,在很多项目的开发中我们都可以看到它的身影。
    每次fix bug并提交代码到SVN,必然会有一些文件更新(或增加、或删除),那么如何将这些文件的更新信息同BugFree中被fix的Bug有机的结合起来呢?下面的内容能够帮助你实现这一目的。

    一、准备工作

    • 安装/升级至BugFree2.0.2
    • 在Subversion的服务器上安装php
    • 安装 ViewVC(一种web端浏览Subversion的工具)。如果没有比较版本历史差异的需求,可跳过此步骤
    • 下载BugFreeforSVN.tar.gz

    BugFreeforSVN.tar.gz中的文件说明:

    •  svn_ci.php :用于向BugFree提交svn信息的php脚本。你可以将此文件放置在Subversion服务器的某个目录,如:/somwhere/svn_ci.php
    • post-commit:svn每次成功提交后触发的钩子脚本。应将此文件放置在代码库的hooks目录中,如:/home/svnadmin/repos/yourproject/hooks/。一般情况下,你应该给该文件设置可执行权限。cd /home/svnadmin/repos/yourproject/hooks/
      chmod +x post-commit
    • post-commit.bat:功能同上,用于windows平台
    • class.http.php:第三方的http类文件。你也可以到 http://www.phpfour.com/lib/http 自行下载

    二、修改配置

    修改svn_ci.php:

    • define('API_NEWLINE', chr(0x03));  // API行分隔符,默认不用修改
    • define('API_DEVIDER', chr(0x04));  // API列分隔符,默认不用修改
    • define('API_KEY', 'YOUR_KEY');     // API加密KEY,请参考BugFree的Include/Api.inc.php中的值进行修改
    • define('API', "http://127.0.0.1/bugfree/api.php");  // BugFree的api地址
    • define('USER_NAME', 'admin');    // 用于向BugFree提交svn信息的用户名(建议设为管理员之一,这样可以修改所有的Bug)
    • define('USER_PASSWORD', 'e10adc3949ba59abbe56e057f20f883e'); // 用户加密后的密码(默认是md5(原始密码))
    • define('VIEWVC', 'http://bugfree.svn.sourceforge.net/viewvc/bugfree/'); // ViewVC查看代码的根地址

    修改post-commit:

    • PHP_EXE='/phppath/php'  #php可执行文件的路径
    • CHECK_IN_PHP='/somwhere/svn_ci.php'    #svn_ci.php的路径
    • SVN_LOOK_EXE='/svnpath/svnlook'   #svnlook可执行文件的路径

    windows平台下post-commit.bat的修改可参考post-commit

    三、如何使用

    每次提交代码时,在注释里填写含有” fix bug #123” 等类似格式的信息,就会把相应的文件更新信息提交到BugFree中。

    例:

    1. 修改文件branch/BugFree2.0_demo/Bug.php
    2. 提交修改,假设此次fix的Bug号为123: svn ci -m ' fix bug #123 '
    3. 查看BugFree中Bug号为123的Bug,则会发现其多了一行类似以下格式的注释:

    2008-08-08 08:08:08 Edited by admin

    Changeset [559] by leeyupeng, 2008-08-08 08:08:08 +0800 (Fri, 8 Aug 2008)

    U   branch/BugFree2.0_demo/Bug.php  [diff]

    注释说明:

    •  [559]:提交后的版本号
    • leeyupeng :提交人
    • 2008-08-08 08:08:08 +0800 (Fri, 8 Aug 2008):提交时间
    • U   branch/BugFree2.0_demo/Bug.php:修改的文件列表。若一次提交有多个文件被修改,则分行显示
    • [diff] :与前一版本的差异比较链接

    四、其他说明

    关于提交信息的格式:

    一次提交可能修改了多个bug,那么我们在svn提交填写提交信息时,多个Bug号可以用空格、英文逗号隔开。
    如下格式都是可以的:

    fixbug #123 #456
    lee fix bug #123,#456
    fix  bug    #123,  #456
    fix bug #123, #456. God!

    每个Bug号开头用#标识,并保证文字fix bug 和第一个Bug号之间不少于一个空格。

    当然,这可能并不符合你所在团队的习惯,你可以通过修改svn_ci.php中35行附近的正则表达式:/fixs*bug.../i来定制自己的message格式 :-)。

    关于diff链接 :

    你可能没有安装ViewVC,或者有其他Web方式浏览版本库的工具,那么可以通过修改 svn_ci.php中60行附近的$note .= ' [url=' . VIEWVC . $fileName . '?r1='. $pre . '&sortdir=down&r2=' . $rev . '&sortby=log][diff][/url]';来定制链接参数。

    参考文章

  • 相关阅读:
    网络通讯协议的基本要素
    java实现二维码的生成与解析
    SpringCloud应用间通信-RestTemplate与Feign
    SpringCloud服务注册与发现-Eureka、Nacos和Consul
    极光推送-java消息推送app
    Git的回滚和撤销操作
    SOFABoot学习
    记录一次生产环境下EleasticSearch故障(cpu打满)
    记录SQL优化
    利用二进制存储多种状态
  • 原文地址:https://www.cnblogs.com/carl2380/p/2521598.html
Copyright © 2020-2023  润新知