版本控制总结

郑天寿
• 阅读 2700

作为一个程序员,一定要会使用版本控制.当代码出现问题时才知道版本控制的好处.

工具

常用的版本控制工具有:

  • SVN

  • Git

在这里我不叙述怎样使用版本控制工具,只是想总结一下自己在项目中关于版本控制的经验.

过程

实际项目中,代码的版本控制大概如下:

  1. 创建项目

  2. 开发功能

  3. 第一个内测版本

  4. 第N个内测版本

  5. 第一个公测版本

  6. 第N个公测版本

  7. 第一个正式版本

  8. 修复稳定版bug

  9. 开发新功能

其中3 ~ 7可能会有很多,也可能很少,视公司情况而定.

以下以SVN为例,来说明这一功能.

前提

项目名称:Chat
三端:Android,IOS,Server

创建根目录

源码根目录如下:

|-Chat
    |-trunk
        |-Android
        |-IOS
        |-Server
    |-branches
    |-tag

开发

各端在各自的Trunk分支下进行开发,直到第一个稳定的内测版本.

内测

当发布第一个内测版本时,此时应在tag分支下添加tag,如下:

|-Chat
    |-trunk
        |-Android
        |-IOS
        |-Server
    |-branches
    |-tag
        |-Android
            |-inner_test_1.0.0
        |-IOS
            |-inner_test_1.0.0
        |-Server
            |-inner_test_1.0.0

无论哪个端发布版本都应在tag分支下添加tag.

公测

内测几版之后,可以进行公测,测试继续在Trunk分支下开发,然后在发布公测版本时在tag分支下添加tag.如下所示:

|-Chat
    |-trunk
        |-Android
        |-IOS
        |-Server
    |-branches
    |-tag
        |-Android
            |-inner_test_1.0.0
            |-inner_test_1.0.1
            |-inner_test_1.0.2
            |-public_test_1.0.3
            |-public_test_1.0.4
        |-IOS
            |-inner_test_1.0.0
        |-Server
            |-inner_test_1.0.0

正式版

当发布正式版之后,要做的有:

  1. 在tag分支下添加tag

  2. 在branches分支添加开发版分支

如下所示:

|-Chat
    |-trunk
        |-Android
        |-IOS
        |-Server
    |-branches
        |-Android
            |-BaseDev
    |-tag
        |-Android
            |-inner_test_1.0.0
            |-inner_test_1.0.1
            |-inner_test_1.0.2
            |-public_test_1.0.3
            |-public_test_1.0.4
            |-release_1.0.5
        |-IOS
            |-inner_test_1.0.0
        |-Server
            |-inner_test_1.0.0

BaseDev分支的意义在于:在此版本上只做针对上一稳定版的bug修复以及短期迭代的任务.

迭代

迭代分为:快速迭代和长周期迭代.

快速迭代可能是:

  1. 针对上一版本的bug修复

  2. 针对已有功能细节上的优化

  3. 添加可以快速完成的功能

长周期迭代可能是:
1.某一功能在短期内无法完成,需要切分多个快速迭代版本

对于快速迭代,可以在BaseDev分支下开发,等到迭代完毕后将BaseDev更新至Trunk分支.

何时需要建立新的分支?

  1. 新功能暂时无法确定是否在下一版本发布

  2. 新功能开发周期长,分拆为多个版本后但体验不佳,不能独立发布

比如Chat项目新添加功能空间(Space),该功能无法在快速迭代中完成,开发周期可能较长.此时就需要在branches下添加分支.如:

|-Chat
    |-trunk
        |-Android
        |-IOS
        |-Server
    |-branches
        |-Android
            |-BaseDev
            |-Space
    |-tag
        |-Android
            |-inner_test_1.0.0
            |-inner_test_1.0.1
            |-inner_test_1.0.2
            |-public_test_1.0.3
            |-public_test_1.0.4
            |-release_1.0.5
        |-IOS
            |-inner_test_1.0.0
        |-Server
            |-inner_test_1.0.0

写在最后

要尽可能地少建立分支,因为合并代码的代价太高!!!

要尽可能地少建立分支,因为合并代码的代价太高!!!

要尽可能地少建立分支,因为合并代码的代价太高!!!

  1. 尽可能拆分迭代任务,使之为一个可以快速迭代的任务.

  2. 对于代码的编译最好使用自动编译,来控制安装包的版本.比如: Jenkins

如果有好的方法,请留言或者联系我哦.点此查看联系方式

更多文章请移步我的博客:DevWiki's Bolg

点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
svn版本控制
一、svn(后悔药)1、介绍SVN全名Subversion,即版本控制系统。它将数据放置在一个中央仓库(repository)中。这个仓库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把数据恢复到旧的版本,或是浏览文件
雷厉风行 雷厉风行
2年前
macOS SVN管理工具-Cornerstone for Mac 完美兼容版
CornerstoneforMac是一款Mac平台上的版本控制工具。作为一个软件开发者,我们经常需要管理代码库,防止代码丢失或错误版本被分发给其他人。因此,一个好的版本控制工具是很必要的。mac软件下载:CornerstoneforMac就是这样一款优秀的
Stella981 Stella981
3年前
ReviewBoard代码评审实践总结
代码评审代码评审(CodeReview),顾名思义是对代码进行评审,是软件工程的活动之一。通过代码评审可以保证代码质量,促进团队知识共享……好处多多。版本控制与代码评审软件工程的各个活动总是离不开工具的支持。代码评审工具首先必须和版本控制工具相结合的。现在主流的两种版本控制工具:SVN和GIT。GI
Stella981 Stella981
3年前
Git 版本控制管理(一)
  Git是一个分布式版本控制工具,它的作者 LinusTorvalds 是这样给我们介绍Git —— Thestupidcontenttracker(傻瓜式的内容跟踪器)关于Git的产生背景在此不做讲解,有兴趣的可以搜索一下。先介绍一下Git的特点,主要有两大特点:版本控制:可以解决多人同时开发的代码问题,也可以解决找
Stella981 Stella981
3年前
Android Studio版本控制
Git简介Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。特点:分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(gitclone),在本地机器上拷贝一个完整的Git仓库。下图是经典的git开发过程。!磨砺营(https://static.oschina.net/uploads/im
Stella981 Stella981
3年前
Git学习心得
首先,什么是git?我想对于业内人士再熟悉不过了,但是对于一个普通人或者几天前才认识Linux的我来说,在听到git这个单词的时候心里大概只会有这句话“这是什么鬼...“。在经过两天的学习之后,我了解到git就是一个用于Linux开发的版本控制工具,与常用的版本控制工具不同,它采用了分布式版本控制的方式。git具有交流方便,速度快的优点,这对于一个项目的开
Stella981 Stella981
3年前
Git和GitHub的基本操作
GIT版本控制系统版本控制系统功能:1.记录版本历史信息(记录每一次修改的记录)2.方便团队之间相互协作开发3.远程开发......常用的版本控制系统cvs/svn:集中式分布系统git:分布式版本控制系统1.GIT工作原
Stella981 Stella981
3年前
CentOS下使用yum安装Git具体步骤
Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。Git是用于Linux内核开发的版本控制工具。与常用的CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布
胖大海 胖大海
2年前
Git 原理
简介Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。Git与常用的版本控制工具CVS,
小万哥 小万哥
2年前
Git入门指南:从新手到高手的完全指南
Git是一种强大的分布式版本控制系统,广泛应用于软件开发中。它的使用不仅可以帮助开发团队更好地管理代码,还可以提高团队协作效率和代码质量。随着软件开发的不断发展,版本控制成为了程序员必备的一项技能。Git作为最流行的分布式版本控制系统,被广泛地应用于软件开
刚背兽 刚背兽
6个月前
Tower for Mac:Git 版本控制的终极工具
TowerforMac是一款专为开发者设计的强大Git客户端,旨在简化版本控制流程,提升团队协作效率。无论是个人开发者还是大型团队,Tower都能提供直观的操作界面和强大的功能支持,让Git管理变得轻松高效。核心功能:直观界面:Tower提供简洁直观的用户