我一直在考虑一种方法,该方法无需手动修改源代码即可将格式为 Major.minor.build 的软件版本号插入源代码。
我知道版本号的所有部分都将从 来自版本控制软件的信息(在我的情况下为Mercurial)。 主要和 minor 将自动以标签号(M.m)填充,而构建将通过 修订号。那是主意。
就实现而言,我认为我可以编写由某个钩子触发的脚本
(可能是预标签钩)。该脚本的目标是创建一个C语言标头
具有以下内容的文件(例如Version.h
)
#define MAJOR M
#define MINOR m
#define BUILD b
负责软件版本号的模块将包含Version.h
标头
发布(在我的情况下,是通过在通讯表中填充几条记录)。到实际上
将软件版本号填写到源代码中,这将是必要的第二步
步骤-编译,其中链接程序确保扩展上述符号
常数。
每当我发布新软件时,我都会首先创建一个标签(用于分配实际编号) 到上面的符号常量)。然后,我运行编译过程,将先前检索到的数字推入源代码中的正确位置。
您认为建议的方法是否可用?感谢您的任何建议。
答案 0 :(得分:1)
0.8.1618
(跟踪{rev}
)看起来不错,但请考虑可能的历史记录重写(即使在相同的仓库中也可以更改本地版本)0.8.229f43b67c2a
(跟踪{{node|short}
)对眼睛不利,但在大多数情况下对历史探索有利。我有完整版作为标签,使用自己的模板别名
semver = "{latesttag}{ifeq(latesttagdistance,0,'','+{latesttagdistance}')}"
用于构建可用和易于理解的版本字符串,而不是在Wiki纯{node|short}
中建议,因此,我当前的 nice tip
显示为0.8.13+38
HTH