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