标签与分支

转载 2018年04月17日 16:15:07

原文:http://www.cnblogs.com/ym123/p/4326721.html

最近在写《IOS性能调优系列》,今天偷个懒,写写SVN与TortoiseSVN实战的第二篇,标签与分支。

第一篇详见《SVN与TortoiseSVN实战:从入门到精通

SVN与TortoiseSVN实战系列中很多知识点来源于《版本控制之道》这本书,我写的内容主要结合了TortoiseSVN工具,更多侧重于实际操作。

很多项目人员没有正确运用SVN,仅仅作为源代码的团队共享来用,而没有充分利用标签、分支这些强大的特性。

要正确使用SVN的标签和分支特性,就要先建立起合理的项目仓库结构。

正确的SVN项目仓库结构


 

很多项目人员往往在创建项目仓库以后,直接将整个项目的源代码提交到仓库的根目录,这往往是由于对SVN没有系统的了解。

引用书里的图片,正确的项目仓库目录结构如下图:

在根目录下首先建立三个目录:

1、trunk:又称为主干,这个子目录才是应该将项目源代码提交到的位置。

trunk目录代表着开发的主线,大部分的开发工作涉及到的更新、提交都在这个目录里,就跟“原始”的SVN使用一样。

2、branches:这个目录就是分支目录,所有新建的分支都应放在这个目录。

每一个branches下的分支代表了一条并行的开发过程,如果不明白可以继续往后看。

3、tags:这个目录是标签目录,所有建立的标签都应放在tags目录下。

每一个tags下的标签代表了一个项目的时间节点,或者说是事件、里程碑。

这三个目录之所以如此命名,完全是约定俗成,而非SVN规定。

什么是分支?


 

分支的基本概念:一条基于另外一条开发线存在的分支,并共享在分离之前的日志,一个分支就象一个拷贝的存在,并从那里离开,并具有自己的历史。

没有找到关于分支很简洁的解释,我的解释是分支相当于对于开发中的主干进行了复制,从此在分支上后续的所有操作与主干上的所有操作互不影响。

 

使用分支前:

你开发的IOS App已经测试完毕,提交到APPStore审核,在APPStore审核过程中你可能又开发了些功能但还没通过测试,这时APPStore把你的应用退回了,可能是你的Welcome图片不合格需要换一下,很简单的修改可能完全不需要经过测试流程,但这时你只有两种选择:

1、把代码回滚到提交时的状态,修改后提交;

2、把手头的功能开发完成,经过完整的测试、发布流程提交。

合理使用分支后:

你开发的IOS App已经测试完毕,提交到APPStore审核,根据你提交的版本号建立一个分支,在APPStore审核过程中你可能又开发了些功能但还没通过测试,这时APPStore把你的应用退回了,可能是你的Welcome图片不合格需要换一下,到这里你完全可以轻松应对,只需要把之前建立的那个分支签出到本地,修改后提交。

使用分支后整个过程So easy~

分支里保存的实际上是你建立分支时代码的快照,在分支上进行的修改还可以合并到主干中。

什么是标签?


 

标签和分支的本质是一样的,可以看到TortoiseSVN中,标签和分支实际上在一个菜单:

 

分支与标签的使用也是约定俗称的,混用分支与标签SVN也不会禁止。

标签用来记录项目中的事件或里程碑,可以让你给项目中的事件起一个名字,比如发布2.0.0版本,以后你可以使用这个名字来签出它。

标签与分支对比


 

还是继续上面的例子:

APPStore审核通过,这时你应该为分支建立一个标签,然后将分支的修改合并到主干,然后删除分支。

更直白的说,你可以在分支上进行并行开发,而不应该修改标签里的内容,标签仅应当作为一份代码的快照。


github入门和git功能分支工作流

介绍github使用入门和git功能分支开发流程以及实操演示
  • 2018年03月05日 11:36

[GIT] 分支与标签

学习笔记,可能有错,欢迎指正。 参考:廖雪峰的官方网站一. 分支 git branch 查看所有分支 git checkout -b branchname 创建并直接切换到分支 git branch...
  • xiaohaoyao
  • xiaohaoyao
  • 2016-05-16 16:38:59
  • 2643

【Git/Github学习笔记】Git分支使用场景和标签管理、总结

【1】开发多个项目任务,比如说我有两个任务都比较紧急,任务1需要两天完成,任务2需要一天完成,而任务1是之前就已经开始进行的,任务二是中间加的新任务,所以需要第一天就完成任务2. 【2】master分...
  • u013035197
  • u013035197
  • 2016-08-02 01:14:23
  • 1427

Git分支和标签介绍

  • 2014年08月19日 10:33
  • 599KB
  • 下载

jsp脚本和<logic:iterate>标签:实现循环和分支逻辑

  • 2011年11月17日 12:18
  • 103KB
  • 下载

TFS上分支和标签的用法

什么时候用分支:  例如为某个客户定制的专用版本,和主干的特性有很大差别.不具通用性的需求.                        大的版本修改,例如2.0 到3.0 加了很多特性,但2.0...
  • cxzhq2002
  • cxzhq2002
  • 2013-01-18 18:42:45
  • 5285

SVN分支和标记用法

使用SVN+Eclipse做软件版本控制,介绍分支和标记用法   1,SVN目录结构 Trunk : 主干目录,此目录下的文件为基准文件 Branches : 用于开发的分支目录 Tags ...
  • hytfly
  • hytfly
  • 2014-12-23 14:13:57
  • 18687

分享SourceTree的分支创建切换合并删除和标签管理等操作

今天为大家带来一篇关于“SourceTree的分支创建切换合并删除”等操作的详细图文介绍,如需转载,请标明出处: SourceTree是一款非常好用的Git版本管理控制工具,良好的图形化界面为开发者管...
  • java_android_man
  • java_android_man
  • 2017-12-03 15:02:18
  • 1551

Git必须掌握的基本操作

包含Git完整基本操作,并提供进阶学习的资料。 1-基本操作 1-创建仓库 2-提交修改 3-diff比较不同 4-别名设置简化log 2-Git操作区域 3-Git回退 1-回退版本 2-操作历史 ...
  • feather_wch
  • feather_wch
  • 2017-11-28 17:30:20
  • 79

git tag 标签完全用法(如何更好的管理你的分支)

打标签同大多数 VCS 一样,Git 也可以对某一时间点上的版本打上标签。人们在发布某个软件版本(比如 v1.0 等等)的时候,经常这么做。 本节我们一起来学习如何列出所有可用的标签,如何新建标签,...
  • philos3
  • philos3
  • 2017-05-30 22:01:41
  • 2123
收藏助手
不良信息举报
您举报文章:标签与分支
举报原因:
原因补充:

(最多只允许输入30个字)