如何将 Mercurial 标签嵌入到我的 C/C++ 中代码?
我想知道是否有办法将 Mercurial 标签嵌入到我的 C/C++ 代码中。
基本上,我希望将最终成为版本号 (major.minor.rev) 的标记字符串作为静态字符串自动插入到我的 C 代码的确定位置。
总体目标是,当使用“-v”命令行参数执行时,可以查询应用程序的版本号。任何不涉及尝试嵌入 Mercurial 标签的替代方法也将作为答案受到欢迎。
我在 Linux 环境上使用 Code::Blocks,因此该解决方案不能依赖 Visual Studio 功能。
I would like to know if there is a way to embed Mercurial tags into my C/C++ code.
Basically I would like the tag string, which will end up being a release number (major.minor.rev), to be automatically inserted in a determined location of my C code as a static string.
The overall objective is that the application could be queried about its version number when executed with say a '-v' command line argument. Any alternative approach that doesn't involve trying to embed a Mercurial tag will be also welcomed as an answer.
I am using Code::Blocks on a Linux environment, so the solution can not rely on Visual Studio features.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您将需要 关键字扩展 来允许扩展关键字条目,它与 Mercurial 捆绑在一起。
例如,要获得对
$Id$
的支持,您可以为您的存储库编辑 hgrc (.hg/hgrc
) 并添加:然后运行
相关文件中的关键字,或者
以扩展 缩小关键词。您甚至可以通过添加
[keywordmaps]
条目来创建自己的关键字,例如注意:这会禁用内置关键字
有关扩展程序的更多详细信息,请参见维基。
You will need the keyword extension to allow expansion of keyword entries, it is bundled with mercurial.
For instance to get support for
$Id$
you could edit hgrc for you repo (.hg/hgrc
) and add:Then run
to expand keywords the relevant files, or
to shrink keywords. You can even create your own keywords by adding the
[keywordmaps]
entry, e.g.Note: This disables the builtin keywords
More details on the extension can be found in the wiki.
我们使用一个宏来让
CVS 自动扩展 $Id$。我认为这也是 Mercurial 标签的工作原理。
然后我们可以使用 strings 命令来查找可执行文件/库等中每个文件的确切版本。
您可以使用类似的命令。
We use a macro for this
CVS automagically expands $Id$. I assume this is what mercurial tags work as well.
Then we can use the strings command to find the exact version of each file in the executable / library etc.
You could use something similar.