我创建了一个带语义版本的软件。
[1.0.0]<--[1.0.1]
在某些时候,我需要介绍一些重大变化。我决定添加分支2.0并维护1.0。
[1.0.0]<--[1.0.1]<--[2.0.0]<--[2.0.1]
而且发展仍在继续。
/-[2.0.0]<--[2.0.1]<--[2.0.2]
|
[1.0.0]<--[1.0.1]<--[1.0.2]
现在我需要在1.0中引入新功能,所以我决定启动分支1.1。
/-[2.0.0]<--[2.0.1]<--[2.0.2]
|
| /-[1.1.0]<--[1.1.1]<--[1.1.2]
| |
[1.0.0]<--[1.0.1]<--[1.0.2]<--[1.0.3]
现在,...现在我需要在版本1.1中引入BC,但verision 2.0已经存在。语义版本控制表示增加主要版本。但是,如果主要版本在过去增加了怎么办?是版本3.0的时间? 3.0和2.0有分歧吗?
进行更改时,必须增加主要版本。 SemVer spec中没有任何内容要求增量正好为1.如果你有一套BC必须应用于维护叉,而不是产品线的头部,你可能实际上有两个产品,应该只是使用自己的版本轨道创建一个新的。规范不要求3.x.x与2.x.x和1.x.x相关,但是不能保持谱系是不寻常的。
对于产品叉(分支),您也可以独立于另一个分支对每个分支进行版本控制,但是您不能发布多个Prod.x.y.z,因此您基本上会发布两个产品;也许是Prod.B1.x.y.z和Prod.B2.x.y.z.