持续交付、版本控制和功能分支混乱

Continuous Delivery, Versioning and Feature Branches confusion

我目前正在使用功能分支工作流程实施 CD。我不清楚的是什么时候增加版本号。

创建新功能时是否会增加?

假设我们有 1.1 版,我将实施新功能 FB-123。

创建FB时是否要增加版本?

       *---*--- increment build number, now on 1.2.456 
      / increment version to 1.2 
  ---* 1.1

并使用 Jenkins 内部版本号进行后续提交?

我会考虑使用以下版本控制架构:

  • 每个 major/minor 版本都带有 git 标签
  • 分支架构 - <major>.<minor>.<number of commits from latest minor>-<feature branch-name>-<sha1>
  • master schema - <major>.<minor>(它认为每个接受的拉取请求都是次要版本)

您可以通过

计算最新次要的提交数
git rev-list HEAD ^<latest minor tag> --ancestry-path <latest minor tag> --count

此架构将允许您从版本名称派生:

  • 基本版本
  • 分行名称
  • git 提交该版本是从
  • 构建的
  • 正确比较同一分支的两个版本