最近在项目中发现,软件版本管理较为混乱,框架的修改常常牵一发而动全身,严重影响研发效率。为此,结合过往经验及业界成熟的版本管理实践,以 Sparrow
(https://gitee.com/LinuxTaoist/Sparrow) 项目为例,对常用的版本管理进行总结。
版本管理涵盖以下几个关键方面:
v1.0.0-rc
的格式标识版本,便于快速识别版本用途。master
/dev
/feature-*
等命名不同分支,避免不同项目的修改相互干扰。commit
按照模板,明确修改的问题;
版本发布时,更新 CHANGELOG
,记录重点变更。dev
推荐使用merge
,确保开发分支保留最完整的修改;
合入主干分支 master
推荐使用覆盖,确保主干分支干净稳定。分支名 | 说明 |
---|---|
master | 主版本。永远支持量产能力 |
Sparrow-dev | 开发迭代分支。源自master, 用于所有功能开发的起点。 |
feature-* | 功能分支。源自Sparrow-dev, 用于开发新特性。完成后合并至Sparrow-dev, 并评估是否删除。 |
Sparrow-* | 项目分支。源自Sparrow-dev, 用于立项后的项目开发。完成后合并至Sparrow-dev 和 master, 并评估是否删除。 |
bugfix-* | 修复分支。源自master, 修复量产分支问题,修复后合并至Sparrow-dev和master, 并评估是否删除。 |
示例:1.3.0-alpha, 路径 version.cmake
# 版本信息
set(VERSION_MAJOR 1)
set(VERSION_MINOR 3)
set(VERSION_REVISION 0)
set(VERSION_PRELEASE "alpha")
从功能开发到最终发布, 分支拉取规则如下:
Sparrow-dev
拉取分支 feature-xxx
分支。feature-xxx
中 version.cmake
分支次版本号 +1,编译版本号设为alpha
(例 1.2.0-rc -> 1.3.0-alpha)。feature-xxx
到 Sparrow-dev
, 删除 feature-xxx
。Sparrow-dev
拉取项目分支 Sparrow-Asia
。Sparrow-Asia
中 version.cmake
版本号不变,编译版本号为 Beta
(1.3.0-alpha -> 1.3.0-Beta)。Sparrow-Asia
分支到 Sparrow-dev
分支。Sparrow-Asia
分支覆盖到 master
分支,删除 Sparrow-Asia
分支。master
分支中 version.cmake
版本号不变,编译版本号为rc
(1.3.0-Beta -> 1.3.0-rc);更新 CHANGELOG
;打上tag(例: Tag_v1.3.0)。master
拉取分支 bugfix-xxx
分支。bugfix-xxx
分支中 version.cmake
修订号 +1,编译版本号设为 alpha
(例 1.3.0-rc -> 1.3.1-alpha)。Sparrow-dev
和 master
分支。master
分支中 version.cmake
版本号不变,编译版本号为rc
(1.3.0.1-alpha -> 1.3.1-rc);更新 CHANGELOG
;打上tag (例: Tag_v1.3.1)。分支管理
master
和开发分支 dev
,其他稳定版本同步至 master
,通过标签 tag
进行标记和管理。用心感悟,认真记录,写好每一篇文章,分享每一框干货。
更多文章内容包括但不限于C/C++、Linux、开发常用神器等,可进入“开源519公众号”聊天界面输入“文章目录” 或者 菜单栏选择“文章目录”查看。公众号后台聊天框输入本文标题,在线查看源码。 在聊天框输入“开源519资料” 获取Linux C/C++ 学习资料书籍。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有