使用TortoiseSVN进行分支管理

SVN中的Branch/tag在一个功能选项中,在使用中很容易产生混淆。 web

分支(Branch)管理和标记(Tag)管理,版本管理系统有两个基本的功能。svn

分支用于在并行开发,这里的并行是指和trunk(主分支)的并行。blog

而tag是用来作一个里程碑(milestone),无论是否是release,都是一个可用的版本。ci

那么何时用到tag管理?何时用到Branch管理?开发

我举两个场景:产品

场景一,有客户想对产品作定制,可是咱们并不想修改原有的svn中trunk的代码。it

场景二,咱们正在开发产品下阶段的任务,但上阶段的工做发现问题io

以场景二为例,项目某一阶段开发完成后,这个时候要作一个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,基于这个tag再发布一个版本。

这样,又没有影响trunk(主分支)的开发。而后,根据须要决定branch_bugfix_V1.01.00是否并入trunk。

再介绍点打tag的知识。确认项目组成员的代码都commit后。

1)右击要打tag的目录--->TortoiseSVN--->branch/tag

2)再弹出来的对话框中,要求输入分支或标记的目标路径

3)建立分支或标记的时候,你有三个选项版本库中的最新版本,版本库中的指定版本,工做副本。

  • 最新版本(HEAD revision in the repository)——直接从版本库中最新建立,因为不须要从你的工做拷贝中传输数据,建立过程会很快。
  • 版本库中的指定版本(Specific revision in the repository)——一样是从版本库中建立,不一样的是你能够指定一个版本号。若是你忘了版本号,能够经过显示版本记录来找到你想要的版本号(以下图)。这种方式一样不须要从你的工做拷贝中传输数据,建立过程也很快。
  • 工做副本——这种方式会依据当前工做拷贝的版本情况(不管是你作了本地的修改,或是将其中的某些文件更新到了一个历史版本)来建立分支拷贝。这种建立方式会根据工做副本中每一个文件的版本状况来决定是否要从工做拷贝向版本库中传输数据。

4)最后一个选项就是“切换工做副本至分支/标记”选项,若是选中这个选项,顾名思义你用来建立分支或标记的工做拷贝就会自动切换到指定建立的版本或标记的。固然你能够经过Switch(从新定位)和Checkout(检出)功能来完成切换的工做。

本文欢迎转载,转载请注明出处与做者

出处:http://blog.sina.com.cn/staratsky

做者:流星

相关文章
相关标签/搜索