10月 7th, 2008BugFree和SVN的整合
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(0×03)); // API行分隔符,默认不用修改
- define(’API_DEVIDER’, chr(0×04)); // 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中。
例:
- 修改文件branch/BugFree2.0_demo/Bug.php
- 提交修改,假设此次fix的Bug号为123: svn ci -m ‘ fix bug #123 ‘
- 查看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]’;来定制链接参数。
参考文章
10月 7th, 2008 at 11:22 下午
哥儿们,真强!
10月 8th, 2008 at 9:01 上午
这个功能真正将Bug管理和source code管理完美集成起来,对开发人员和测试人员都非常有用。开发可以通过diff快速进行Bug Fix的代码review。测试人员则可以通过diff定位测试点,进行针对性的测试。
10月 8th, 2008 at 9:38 上午
nice feature
10月 18th, 2008 at 2:40 下午
我按照你写的方法配置了,为什么在提交的时候bugfree2数据库里一点动静也没有呢?
10月 22nd, 2008 at 3:37 下午
that’’s great!
thx!
10月 23rd, 2008 at 9:34 下午
能够把VSS或者VSTS与Bugfree整合起来吗?这些版本控制程序应该是目前的主流
11月 7th, 2008 at 12:26 下午
我按说明安完后集成失败,能不能辛苦点给个详细的整合文档
可以把你们整合成功的详细的步骤给我发一份吗?
谢谢了
11月 7th, 2008 at 12:28 下午
liyu_218416@163.com
qq:84690267
11月 18th, 2008 at 10:37 下午
能否整合 svn 的帐号和权限管理。我目前用的 svnmanager
http://svnmanager.sourceforge.net/
11月 27th, 2008 at 3:24 下午
你post-commit的脚本都写错了!!!
12月 16th, 2008 at 4:42 下午
我整合成功了
但是diff却答不到比对效果,直接进ViewVC的主页
URL是http://ip/viewvc/tankwar/trunk/src/Test.java?r1=13&sortdir=down&r2=14&sortby=log
请帮忙看一下什么原因导致的
12月 16th, 2008 at 4:43 下午
补充:
ViewVC的diff的URL是http://192.168.152.128/viewvc/trunk/src/Test.java?root=tankwar&view=diff&r1=12&r2=1&diff_format=h
12月 16th, 2008 at 6:03 下午
看看与常量“VIEWVC”相关的代码,做相应的修改就好了~
1月 12th, 2009 at 4:07 下午
我已经把svn和bugfree结合在一起了,可以正常工作。
可我想把svn提交时的注释在bugfree的注释中看到,比如提交的时候,写的注释是:‘fix bug #2 更改按钮功能’,想在bugfree的注释中能看到“更改按钮功能”,请问我该怎么改啊,在此先谢过!!!
1月 14th, 2009 at 5:21 下午
我在Windows2000下配置不成功。那位高手把Windows下的配置详细的写出来好么?
我这边的现象是:配置完毕,重新启动APACHE或者重启Windows,提交文件后,BugFree没有一点儿反应,原来的bug信息并没有改变。
感觉是钩子没起作用。是不是还有哪里需要设置?
2月 20th, 2009 at 4:30 下午
quanshi cuo de能加我qq吗 给我一份正确的脚本 我实在是执行不下去了
2月 20th, 2009 at 4:31 下午
qq:191833769
2月 20th, 2009 at 5:46 下午
Changeset [10] by admin, 2009-02-20 17:51:54 +0800 (������, 20 ���� 2009)
U COPYING.txt
(������, 20 ���� 2009)这个乱码如何解决?谢谢!
2月 22nd, 2009 at 4:41 下午
visual svn 和 bugfree整合 怎么弄啊 我弄的不成功啊
3月 6th, 2009 at 4:03 下午
1、日期里面的中文会导致log信息显示中断,搞不定啊
2、注释里面有多行,只能获得一行信息,好像这个也不行
4月 27th, 2009 at 1:48 下午
BugFree和SVN的整合 for windows 带调试输出版,帮助不能成功整合的同好
http://blog.csdn.net/WuErPing/archive/2009/04/21/4097206.aspx
顺带解决“日期里面的中文会导致log信息显示中断”问题
6月 10th, 2009 at 10:02 上午
我把svn和bugfree整合成功了,是借助xammp的,借助了“andrew.wu Says:
4月 27th, 2009 at 1:48 下午
BugFree和SVN的整合 for windows 带调试输出版,帮助不能成功整合的同好
http://blog.csdn.net/WuErPing/archive/2009/04/21/4097206.aspx
顺带解决“日期里面的中文会导致log信息显示中断”问题
”这里的资料,但我的问题是,在命令行中commit时(svn ci -m “fix bug#3″),可以更新bugfree,但是用tortoise提交时(填写BUGID,填写Messages:fix bug #3),就不能跟新了,这个是为什么?
7月 21st, 2009 at 10:34 上午
是这样的.我现在的环境呢.bugfree2.03是用nginx0.7+php 5.2.10来跑的.subversion-1.6.3单独和apache-2.2.11来.然后出口用nginx做反向代理80端口.
现在我不知道这几个文件应该放到bugfree的虚拟目录还好死svn的虚拟目录.因为svn后面是不支持php的.所以这就是我困惑的地方
7月 22nd, 2009 at 2:20 下午
请教一下weiwei.我也想做这样的整合.只是还没看懂.这几个PHP文件放到什么地方?是和svnroot放到一起还是和bugfree的rootdoc放到一起呢?
8月 19th, 2009 at 3:48 下午
有谁真的整合成功没?linux环境下,整了1个月还没成功。
不知道代码有问题吗
8月 23rd, 2009 at 2:20 下午
执行 post-comment的时候出现如下的问题
Repository argument required
Type ‘’svnlook help” for usage.
Repository argument required
Type ‘’svnlook help” for usage.
Repository argument required
Type ‘’svnlook help” for usage.
Repository argument required
Type ‘’svnlook help” for usage
11月 26th, 2009 at 3:13 下午
分享一下问题解决方法
配置好之后,svn提交没反应,后来发现时php的问题
post-commit 中有一句$PHP_EXE -r ”echo chr(0×04);”
但是redhat自带的php中没有-r这种参数,下载了最新的5.3版本的php,更改post-commit中php的路径,顺利解决。
另外当svn更新的文件路径和文件名是中文时,会出现乱码,网上另一个高人给出了解决办法:
在post-commit 文件中,加入 export “LANG=zh_CN.UTF-8″ 这个就行了, 俺在linux 成功的。
12月 23rd, 2009 at 4:44 下午
这个功能我好像听过……