2012-04-13 57 views

回答

8

我们用这样的线在我们的Makefile:

REPO_REV := $(shell svnversion -n) 

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

4

SVN book

新用户往往被$Rev$关键字是如何工作的混淆。由于存储库具有单一的全球增加的修订版本号,因此很多人都认为这个数字反映了$ Rev $关键字的值。但$Rev$展开显示文件更改的最后修订版本,而不是它更新的最后一个修订版本。理解这一点可以消除混淆,但经常会遇到挫折 - 如果没有Subversion关键字的支持,那么如何自动将全局修订号码存入您的文件?

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