我是唯一的开发人员,使用GIT进行C语言编写的嵌入式软件的版本控制。软件需要知道它的版本,目前通过包含带有单个#define的头文件来完成:
#define SOFTWARE_VERSION "1.021"
此头文件由预构建Python脚本自动创建,该脚本尝试获取GIT存储库的最新标记(我使用当前版本字符串标记所有已发布的版本)。这是我用来获取最后一个版本字符串的命令。
git describe --tag HEAD
整条链按预期工作,但它看起来并不健全(我希望它随着存储库变得更加复杂/分支而中断)。此外,我想我可能会遗漏一些至关重要的事情,因为必须有更简单的方法来做到这一点。
任何人都可以对工作流程或实施细节进行改进吗? (如果有人感兴趣,我可以发布解析git describe输出的python脚本)
答案 0 :(得分:2)
将软件版本号与CM系统版本号分开。
是的,您需要知道CM系统中与给定版本号对应的版本或标签,但不要使用CM系统版本号来定义版本号。
使用简单的VCS(如RCS或SCCS)和简单的(一个文件)程序,您可以使用VCS提供程序版本 - 我自己这样做。但我所有的复杂程序都使用完全独立的版本编号方案,完全脱离了VCS中的版本号。
答案 1 :(得分:1)
正如SO question中所提到的, git describe
可能是您需要引用中间“版本”的原因: