【发布时间】:2020-08-31 22:23:35
【问题描述】:
我一直在想一种方法,如何将Major.minor.build形式的软件版本号插入到源代码中,而无需手动修改源代码。
我有一个想法,版本号的所有部分都将来自 来自版本控制软件的信息(在我的例子中是 Mercurial)。 专业和 minor 将自动填充标签的编号(M.m),build 将填充 修订号。就是这个想法。
就实现而言,我认为我可以编写一个由某个钩子触发的脚本
(可能是 pretag 钩子)。这个脚本的目标是创建一个 C 语言头文件
具有以下内容的文件(例如Version.h)
#define MAJOR M
#define MINOR m
#define BUILD b
Version.h 标头将包含在负责软件版本号的模块中
发布(在我的情况下,通过在通信表中填写几条记录)。实际上
将软件版本号填写到源代码中,这将是必要的
step - 编译,其中链接器确保上述符号的扩展
常数。
每当我发布新软件时,我都会先创建一个标签(分配实际数字 到上面的符号常数)。然后我运行编译过程,将之前检索到的数字推送到源代码中的正确位置。
您认为建议的方法可用吗?感谢您的任何建议。
【问题讨论】:
标签: version-control mercurial versioning mercurial-hook