http://naotu.baidu.com/file/939cc7e10d98c9732f7b2cd10bdb1306?token=b51334feec1cc68b
假如你的某个APP项目(例如1.0版本)已经完成开发、测试并已经上线了。
接下来接到新的需求,新需求的开发需要修改多个文件中的代码,当需求已经开始开发一段时间的时候,突然接到用户或测试人员的反馈,项目中有个重大bug需要紧急修复,并且要求bug修复后要立即上线。
此时应该怎么修复bug呢?是在当前已经开发新需求的基础上进行修复吗?
答案是否定的
原因是:如果是在已经开发新需求的基础上进行修复bug,那么新需求还没开发好,更没有测试,怎么立刻(或最可能快的)上线?!
再次如果新功能的开发和bug修复的代码都涉及到同一段代码冲突了怎么办 。
很显然不能在当前开发的代码基础上进行bug修复工作
完美的解决方案是:在当时完成的那个版本中进行bug fix
这样带来的好处是:
1:bug修复好之后可立即上线,不会因为新需求还没有完成或测试而延迟上线时间
2: bug修复是在原来上线的那个版本进行修复的,引起新bug的风险小,如果是在新需求的基础上修复bug, 那么新功能可能会带来新的bug
trunk(主干|主线) branchs(分支) tags(标记)
windows下svn服务搭建工具
VisualSVN Server Manager
下载地址:
成功提交代码到主分支(trunk)
开发了一段时间,完成了某一个功能或者完成了某一个阶段或者某一个版本的开发,就需要新建一个分支
选择branches分支地址,输入分支名称
注意:分支名称的命名(项目名称日期功能点或版本号)
刷新svn就可以看到最新的分支了
再开发一段时间后,就需要发布版本了,那么就需要打tags了
刷新svn就可以看到最新的tags了
上次发布的V1.0.0版本有BUG需要修复,那么就需要从主分支代码切换到分支代码。
上次修改完的V1.0.0分支BUG的代码如何合并到主分支呢?
提示文件合并的状态
合并代码后,可能会有一些冲突文件,需要逐个去解决即可。
https://shimo.im/sheet/L7DIHD13tjEEGAzs/「版本记录」
需要配置svn接口为JavaHL(JNI)即可
工具-->选项
如何在mac下搭建svn服务
http://www.jianshu.com/p/44cf36789c92
mac下svn版本管理工具
versions
同windows
同windows
同windows
同windows
同windows
https://shimo.im/sheet/L7DIHD13tjEEGAzs/「版本记录」
需要配置svn接口为JavaHL(JNI)即可
注意:一定要安装1.12.x版本(其他版本JavaHL无法使用)
http://subclipse.tigris.org/update_1.12.x/
这样就可以正常使用分支合并了。
SVN trunk(主线) branch(分支) tag(标记) 用法详解和详细操作步骤
http://blog.csdn.net/vbirdbest/article/details/51122637
对merge的理解
http://www.mamicode.com/info-detail-1372522.html
JavaHL是什么?
JavaHL is a part of the Subversion project.具体地说,它是Java语言绑定的Subversion API。 Subversion提供了一个分层的API设计,交付作为本地库(DLL)
Mac下安装JavaHL说明
brew install subversion --with-java