【问题标题】:Including SVN revision of a project in C source code在 C 源代码中包含项目的 SVN 修订
【发布时间】:2012-04-13 15:10:49
【问题描述】:

如何在 C 源代码或 Makefile 中包含我的项目的 SVN 版本(不是文件版本)?

【问题讨论】:

    标签: c svn project revision


    【解决方案1】:

    我们在 makefile 中使用这样的一行:

    REPO_REV := $(shell svnversion -n)
    

    将工作副本的修订号存储到 make 变量中。要在 C 代码中使用它,您可以让您的 makefile 使用该值在编译器命令行上定义一个宏(类似于 gcc 的 -DREPO_REV=$(REPO_REV))。

    【讨论】:

      【解决方案2】:

      来自SVN book

      新用户经常对$Rev$ 关键字的工作方式感到困惑。由于存储库有一个单一的、全局递增的修订号,许多人认为 $Rev$ 关键字的值反映了这个数字。但是$Rev$ 会展开以显示文件更改的最后一个修订版,而不是文件更新到的最后一个修订版。理解这一点可以消除困惑,但常常会感到沮丧——如果没有 Subversion 关键字的支持,您如何自动将全局修订号放入您的文件中?

      为此,您需要外部处理。 Subversion 附带了一个名为svnversion 的工具,它就是为此目的而设计的。它会抓取您的工作副本并生成它找到的修订作为输出。您可以使用这个程序,加上一些额外的工具,将修订信息嵌入到您的文件中。有关svnversion 的更多信息,请参阅第 9 章,Subversion 完整参考中名为 “svnversion—Subversion Working Copy Version Info” 的部分。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-27
        • 1970-01-01
        • 2011-01-20
        • 2016-07-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多