软件版本控制中的+是什么意思

What does the + mean in software versioning

在库或包中,我经常看到类似 0.5.4+6 或 1.12.4+2 等的东西。我知道第一个数字是主要版本,下一个是次要版本,下一个可能是构建版本编号或修订。但是 +2 或 +6 表示什么?

通常它用于提供一些元数据/版本元数据(例如版本号或日期)。

有关更多详细信息,请参阅 Semantic Versioning 规范。

MAYOR.MINOR.PATCH 之后的尾随部分在 SemVer (AFAICR) 中没有严格定义,因此 - 每个人都可以在其中添加 任何有用的 信息。最常见的用法 - 提供(在使用 VCS 的情况下)唯一(但可读)ID,它允许识别源中的确切变更集,用于构建 this 工件。

因为(主要)用于在 VCS 中为版本命名|编号的标签(或等效物)和标签(版本)之间的(内部)构建是可能的,所以出现了这样的 ID,用简单的话说,这意味着某些东西 "N commits after version X".

来自我的标签的示例(不要尝试 grok hg-templating,我会解释)

semver = "{latesttag}{ifeq(latesttagdistance,0,'','+{latesttagdistance}')}"
  • 查找历史中最新的标签
  • 如果后面有提交 - 添加“+”号和这个提交数

只是人性化的 id 类型,如果需要的话,它还允许(相当)快速地检测有问题的提交。而且它比 f.e 更易读、更难忘、更容易发音。 b800644fcbe2