可能重複:
How do I embed Mercurial tags into my C/C++ code?寫作版本信息爲註釋塊
我可以添加版本控制信息從水銀進入第一個註釋塊在.c和.h文件的回購正在追蹤?
我相信它會涉及添加一些東西到Makefile文件,以便在源文件中註釋行被取代爲最新版本信息
我已經儘量了在使用#define通過從每個編譯編譯器(如GCC-D),並增加了以下我的Makefile:
HGVERSION:= $(shell hg parents --template 'hgid: {node|short}')
CFLAGS += -g -Wall -DHGVERSION="\"${HGVERSION}\""
不過雖然這使得現有的預處理器變量給我,我不知道這有助於將一些文本註釋塊。
爲了詳細說明,我可以看到如何使用HGVERSION來實現一個標誌來獲得exe來打印它的版本信息,但我看不到如何將該信息放入源的實際文本中文件
詳細說明,我可以看到我可以如何使用HGVERSION來實現某種程序版本信息,例如用-ver標誌或類似的東西運行exe文件時打印版本,但不是如何以某種方式將該信息導入實際的源文件文本
我想最終得到類似於我的每一個src文件的頂部:
/* some comments
*
* version x.y.z
*/
我是在正確的軌道上還是在這裏需要的其他技術?
我不確定它是一個確切的副本(我在我的研究中發現了與Mercurial wiki相同的鏈接)。我試圖將它寫入源文件中的註釋塊,而不是以編程方式使用它,即不是作爲C語句中使用的#define值。 – bph 2012-01-13 12:00:01
檢查[Keyword](http://mercurial.selenic.com/wiki/KeywordExtension)擴展名。但也讀[爲什麼你不需要它](http://mercurial.selenic.com/wiki/KeywordPlan#head-2007fad6f31bf6f1f1b5c3d5b02e5c6225de3ec5)。 – 2012-01-13 12:08:19
@JoachimPileborg我一直認爲,直到昨天,當我意識到我們可能有一個用例,其中一個客戶在任何克隆回購之外獲得一些頭文件(他們只是得到一堆文件),因爲它們沒有被重新編譯或做任何事情發展。在這種情況下,它將會有用(作爲腰帶和大括號的方法),以便能夠將他們所擁有的文件鏈接到我們的回購中的更新。當然,我們應該記錄下我們的運送時間和時間,但正如我所說的那樣,皮帶和大括號 – bph 2012-01-13 12:16:29