[英]Including SVN revision of a project in C source code
如何在C源代碼或Makefile中包含我的項目的SVN修訂版(不是文件修訂版)?
我們在makefile中使用這樣的一行:
REPO_REV := $(shell svnversion -n)
它將工作副本的修訂號存儲到make變量中。 要在C代碼中使用它,您可以讓makefile使用該值在編譯器命令行上定義宏-DREPO_REV=$(REPO_REV)
對於gcc,類似-DREPO_REV=$(REPO_REV)
)。
來自SVN書 :
新用戶經常對
$Rev$
關鍵字的工作方式感到困惑。 由於存儲庫具有單個全局增加的修訂版號,因此許多人認為這個數字由$ Rev $關鍵字的值反映。 但$Rev$
擴展為顯示文件更改的最后修訂版,而不是更新它的最后修訂版。 理解這一點可以解決這個問題,但是經常會感到沮喪 - 如果沒有Subversion關鍵字的支持,你怎么能自動將全局修訂號放到你的文件中呢?為此,您需要外部處理。 Subversion附帶了一個名為
svnversion
的工具,它專為此目的而設計。 它會抓取您的工作副本並生成它找到的修訂的輸出。 您可以使用此程序以及一些其他工具將該修訂信息嵌入到您的文件中。 有關svnversion
更多信息,請參閱第9章Subversion完整參考中的“svnversion-Subversion工作副本版本信息”一節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.