博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用TortoiseSVN进行分支管理
阅读量:7092 次
发布时间:2019-06-28

本文共 1378 字,大约阅读时间需要 4 分钟。

hot3.png

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,基于这个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

作者:流星

转载于:https://my.oschina.net/u/157503/blog/141671

你可能感兴趣的文章
android定位和地图开发实例
查看>>
Angular1.0和vue的区别
查看>>
通过ssh传输文件
查看>>
mac php solr扩展安装
查看>>
win32gui中操作任务栏托盘区的函数
查看>>
Struts2 漏洞分析及如何提前预防
查看>>
Python Pandas merge 的使用
查看>>
SVN版本库的迁移
查看>>
gRPC Windows编译应用
查看>>
设置 Linux 的 LD_LIBRARY_PATH 变量
查看>>
内核中的链表彻底分析与运用
查看>>
C#线程运行的机制和原理
查看>>
ecshop 导入自定义css
查看>>
Linux常用命令
查看>>
新版TeamTalk完整部署教程
查看>>
java实现泛域名解析,附SpringMVC源码示例
查看>>
mysql 导出 csv格式数据
查看>>
从Exchange 通往Office 365系列(十五)配置ADRMS与Exchange结合
查看>>
好用的软件之Xmind
查看>>
elasticsearch rpm安装以及配置修改
查看>>