在发布分支中修正BUG:在发布分支中发现的BUG,我们必须跟踪所有的改动,然后确保这些改动应用到主线和所有发布分支中。所幸的是Subversion使用版本号来跟踪所有的改动,因此我们可以使用某些版本号来表示修改或者修改区间。甚至有些情况下我们需要新建分支来跟踪修改过程。
修正简单的BUG
本例以在分支修改代码后同步到主干为例
1.签出bug代码到本地svn co svn://sa/hello/branches/RB-2.0,记住版本号227。
2.编写测试验证bug,修改代码,通过测试,通过自动构建
3.提交到项目仓库中svn commit –m “debug the bug 0263”, 记住新的版本号228。
4.使用新版本号把改动合并到其它受影响的分支中(可能还有主干),这是在主干里提交RB-2.0修改的代码的命令svn merge -r227:228 svn://192.168.195.54/hello/branches/RB-2.0。
5.主干提交修改后的代码。
复杂BUG的修改
1.bug代码分支到新的bug修正分支中svn copy-m "create bugfix branch" svn://192.168.195.54/hello/branches/RB-2.0svn://192.168.195.54/hello/branches/BUG-10512表示为了解决512号bug而新建的修正分支BUG-10512。
2.新分支打标签标记bug修正开始,为当前分支打上标签,标记修改开始。参考文章1,我们修正bug前标签命名为PRE-512即svn copy -m "tag bugfix start" svn://192.168.195.54/hello/branches/BUG-10512svn://192.168.195.54/hello/tags/PRE-10512。此时PRE-10512标签内容为开始修改时的状态。
3.编写测试验证bug,修改代码,通过测试,通过自动构建。
4.提交修改到代码仓库
5.重复34步骤内容。
6.给当前修改分支打一个标签svn copy -m "debug for 10512" svn://192.168.195.54/hello/branches/BUG-10512svn://192.168.195.54/hello/tags/POST-10512此时POST-10512标签内容为修改完成时的状态。
7.提交两个标签见的修改到受到影响的分支svn merge svn://192.168.195.54/hello/tags/PRE-10512 svn://192.168.195.54/hello/tags/POST-10512。
复杂BUG修改流程如下图所示:
参考文章