1

我是唯一的开发人员,使用 GIT 对用 C 编写的嵌入式软件进行版本控制。软件需要知道它的版本,目前是通过包含一个带有单个 #define 的头文件来完成的:

#define SOFTWARE_VERSION "1.021"

该头文件由预构建 Python 脚本自动创建,该脚本试图从 GIT 存储库中获取最新标记(我使用当前版本字符串标记所有已发布版本)。这是我用来获取最新版本字符串的命令。

git describe --tag HEAD

整个链按预期工作,但它似乎并不健壮(我希望它会随着存储库变得更加复杂/分支而中断)。另外,我认为我可能遗漏了一些重要的东西,因为必须有更简单的方法来做到这一点。

任何人都可以提供工作流程或实施细节的改进吗?(如果有人感兴趣,我可以发布解析 git describe 输出的 python 脚本)

4

2 回答 2

2

将软件发布版本号与 CM 系统版本号分开。

是的,您需要知道与给定版本号对应的 CM 系统中的版本或标记,但不要使用 CM 系统版本号来定义版本号。

使用简单的 VCS,如 RCS 或 SCCS,以及简单的(一个文件)程序,您可以使用 VCS 提供程序版本 - 我自己做。但是我所有的复杂程序都使用完全独立的版本编号方案,与 VCS 中的版本号完全分离。

于 2009-03-31T13:59:59.993 回答
1

正如在这个SO question中提到的,git describe您可能需要引用一个中间“版本”,它既是:

  • 基于最新的应用版本(即“标签”)
  • 基于内部提交(即 sha1)
于 2009-03-31T14:10:09.673 回答