所谓的patch strategy,就是软件发布后出现bug时打补丁的方式 - 主要是关于源代码branch如何组织的方式

针对项目的开发阶段、开发状态、维护方式不同,可以有不同的patching strategy

一、trunk - release

  • 新版本从release branch发布
  • 适合只需维护最新版本的情况 - 一般工具类型的项目
  • 适合有较多的开发者在trunk上check-in代码的情况,因为trunk可能不太稳定,而且包含一些不想release的代码
  • 需要release时,从trunk分支选择需要的feature,integrate到release分支并发布
  • 同时,开发者继续在trunk上开发新feature
  • 如果新的发布版本有bug,在release分支上fix并重新发布,然后将fix integrate回trunk
  • 每次release,都要折腾release分支

二、trunk - patch

  • 新版本从trunk分支发布
  • 适合只需维护最新版本的情况 - 一般工具类型的项目
  • 适合开发者较少,代码改变不太大的情况,trunk的状态相对比较稳定。
  • 需要release时,直接从trunk分支release出去,最好打个label
  • 同时,开发者继续在trunk上开发新feature
  • 如果新的发布版本有bug,将代码从trunk分支integrate到patch分支,以上次发布的label为准,在patch分支fix并发布,然后将fix integrate回trunk
  • 如果没有production breakage,你无需关心patch分支

三、trunk - trunk_<version>s

  • 新版本从一个新的branch出去
  • 适合需要维护多个版本的情况 - 你可能需要在之前发布的几个版本上fix不同的bug - 一般为library类型的项目
  • 需要release时,从trunk分支integrate到trunk-<version>,并从trunk-<version>分支发布
  • 同时,开发者继续在trunk上开发新feature
  • 如果某个版本有bug,在该特定分支上fix并发布,然后将fix integrate回trunk
  • 需要操心多个分支

最新文章

  1. [.net 面向对象程序设计深入](5)MVC 6 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux)
  2. Pyqt SpVoice朗读功能
  3. NodeJS中 package.json 解析
  4. SiteMesh, SpringMVC, Shiro 配置
  5. Linux的Cgroup&lt;实例详解&gt;
  6. 推荐:一个个人开发者搞app赚钱之后的总结!有图有真相。
  7. jquery.blockUI.2.31.js 弹出层项目介绍
  8. WordPress WP-Realty插件‘listing_id’参数SQL注入漏洞
  9. UVA 11624 Fire! (bfs)
  10. ADO简单封装(MFC)
  11. in_array 判断问题的疑惑解决。
  12. html 作业1
  13. HDU 5446 Unknown Treasure(Lucas定理+CRT)
  14. [Usaco2008 Nov]Guarding the Farm 保卫牧场[DFS]
  15. 一次FCK拿bc全过程
  16. 028 kafka面试小节
  17. PHP超全局变量$_SERVER分析
  18. java利用反射动态加载方法
  19. 个人笔记本安装多个jdk(jdk1.7,jdk1.8,jdk1.9,jdk10.0)出现的问题
  20. 2018.4.23 《深入理解Java虚拟机:JVM高级特性与最佳实践》笔记

热门文章

  1. php示例代码之使用list函数和mysql_fetch_row函数
  2. git merge git pull时候遇到冲突解决办法git stash
  3. MS SQL Server2014链接MS SQL Server 2000
  4. pentaho cde 选择性的显示多列数据
  5. 优化SQLServer&mdash;&mdash;表和分区索引(二)
  6. jquery checkbox操作
  7. CPU卡与M1卡的区别
  8. date
  9. 配置nginx好了,html能打开,index.php打不开?
  10. C语言中链表任意位置怎么插入数据?然后写入文件中?