获得版本

时间:2009-03-31 13:38:36

标签: git version-control version

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

#define SOFTWARE_VERSION "1.021"

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

git describe --tag HEAD

整条链按预期工作,但它看起来并不健全(我希望它随着存储库变得更加复杂/分支而中断)。此外,我想我可能会遗漏一些至关重要的事情,因为必须有更简单的方法来做到这一点。

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

正如SO question中所提到的, git describe 可能是您需要引用中间“版本”的原因:

  • 基于最新的应用版本(即'tag')
  • 基于内部提交(即sha1)