首页 > 解决方案 > 语义版本控制,用 2 个字节标识提交

问题描述

我有具有以下版本编号的嵌入式软件:

<产品编号>.<主要>.<SVN 提交编号>

  1. 产品编号任意设置,对应每个软
  2. Major 是任意设置的,它随着软件的主要演变而增加
  3. SVN 提交号随着每次提交而递增

问题是我们从 svn 交换到 git 并且我们丢失了被 SHA “替换”的 SVN 提交号。

因此,我们可以将 <SVN commit number> 替换为 <git commit SHA>。但是,我们不能这样做,因为最后一个版本号被限制为 2 个字节,并且 <git commit SHA> 通常被压缩为 3 个字节。

还有另一种考虑提交的版本编号方法吗?

标签: gitsvncommitversion-numbering

解决方案


如果您接受仅由 2 个字节组成的散列的可能性,则可以使用命令的选项--abbrev=<n>git describe其中n是您想要的 git 散列的字节数。在您的情况下,它将是:

git describe --always --abbrev=2

请记住,有可能只有 2 个字节,您的哈希就不再是唯一的,即使它也与您的版本号相关,这是一个遥远的机会。需要该--always选项才能仅显示哈希。


推荐阅读