两个功能分支齐头并进时版本号怎么管理?

2021-01-06 10:53:17 +08:00
 ljpCN

比如有两个分支 feature a 和 feature b,两个功能互相独立。

当前版本号是 1.0.0,feature a 此时开发完成一部分后,发布了一个测试版本供测试人员测试,版本号是 1.0.1 。

然后 feature b 此时也提测,于是发布一个版本 1.0.2,因为他们知道 feature a 已经提测了,于是他们在发布之前 rebase 了 feature a 的代码,所以这个版本号没有问题。

但接下来 feature a 修复了一些 bug 后直接发布了 1.0.3 交给测试人员测试,因为是回归测试担心引入新的 bug,他们没有去 rebase feature b 。这时的 1.0.3 这个版本号就有些问题,它比 1.0.2 大,却不具备 1.0.2 已经实现的一些功能。

老哥们有这方面的实践经验吗?

1708 次点击
所在节点    程序员
8 条回复
msg7086
2021-01-06 10:59:08 +08:00
不进开发分支的时候版本号没意义啊,本来就不是递增的。可以考虑尾巴上加 tag ?
heliang
2021-01-06 11:05:15 +08:00
为什么要改变版本号呢,build number 不能用吗?同一个 feather 不应该是同一个版本号吗?修复 bug 之类的只需要修改 build number 就好了呀!
swulling
2021-01-06 11:06:22 +08:00
你这个时典型的分支开发分支发布模型,传统的三位版本号不适用这个模型。

要么你改成分支开发主干发布,即只允许 merge 到主干分支才能发版
要么就是版本号进行修改,保留分支信息。推荐用 https://semver.org/lang/zh-CN/ 规范,比如你这个就可以发布为
1.0.0-branch_a-xxxxx
1.0.0-branch_b-xxxxx

分别递增 xxxxx,甚至可以用时间来做 xxxxx,等最终 merge 到主干后,再发布 1.0.1 版本
gayluote
2021-01-06 17:05:14 +08:00
先创建两个远程分支 featureA 和 featureB,和追踪分支 A1 对应 featureA,B1 追踪 featureA 。开发人员在 A1 和 B1 上开发,A1/B1 可以随时提交合并到 featureA/featureB 。但是测试人员只测试 featureA 和 featureB2 个分支。确认 featureA 测试完成后再合并 master 。featureB 注意回合代码就行了
gayluote
2021-01-06 17:05:55 +08:00
@gayluote 笔误,B1 追踪 featureB
ljpCN
2021-01-06 21:33:50 +08:00
@msg7086
@heliang
@swulling
@gayluote 的确,现在这个开发分支也会影响版本号的确不太好。主要是因为部署到测试环境前打包代码系统需要填写一个版本号。现在看来直接用分支代码部署,不走打包环节比较好。
SmiteChow
2021-01-07 10:10:13 +08:00
测试只能在主干上进行,因为只有主干会部署到生产环境。
ljpCN
2021-01-07 10:56:30 +08:00
@SmiteChow 目前我们的主干只允许部署到生产环境前修改。测试完成前不允许 merge 到 master

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/742100

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX