使用TortoiseSVN进行分支管理
SVN中的Branch/tag在一个功能选项中,在使用中很容易产生混淆。 分支(Branch)管理和标记(Tag)管理,版本管理系统有两个基本的功能。 分支用于在并行开发,这里的并行是指和trunk(主分支)的并行。 而tag是用来做一个里程碑(milestone),不管是不是release,都是一个可用的版本。 那么什么时候用到tag管理?什么时候用到Branch管理? 我举两个场景: 场景一,有客户想对产品做定制,但是我们并不想修改原有的svn中trunk的代码。 场景二,我们正在开发产品下阶段的任务,但上阶段的工作发现问题 以场景二为例,项目某一阶段开发完成后,这个时候要做一个tag,tag_mfcai_V1.01.00, 然后基于这个tag发布一个新的版本,假设项目是web项目,那么基于这个tag发布一个war包。 然后trunk进入下阶段继续开发,但是很不幸发布的版本被检测出来了bug,有人会提议,把bug放到下阶段的任务中去。假设下阶段的任务才刚开始,用户可等不起.他们会认为一个小的bug解决要这么长时间,效率太低了. 那么就需要基于tag_mfcai_V1.01.00做一个branch,branch_bugfix_V1.01.00,基于这个branch进行bugfix, 等到bugfix结束,做一个tag,tag名称假设为:tag_mfcai_V1.01.01