zoukankan      html  css  js  c++  java
  • 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]';来定制链接参数。

    参考文章

  • 相关阅读:
    time 模块学习
    day 14 自定义模块,常用模块 time .datetime ,time 模块
    day 13 课后作业
    day 12 课后作业
    day 11课后作业
    树状数组最值
    hdu 1059 Dividing bitset 多重背包
    XVII Open Cup named after E.V. Pankratiev. XXI Ural Championship
    最长公共子序列板/滚动 N^2
    Uva 10635
  • 原文地址:https://www.cnblogs.com/carl2380/p/2521598.html
Copyright © 2011-2022 走看看