2009-07-17 159 views

回答

0

您可以構建這樣做腳本和其他地方之前,你做EXE,安裝文件等 -

我所做的將它添加到我的資源/版本信息是爲我的rc文件,使用宏替代,然後添加一個調用模板文件到我的EXE項目預建階段的SubWCRev。

this

SubWCRev是一個工具,你可以利用這一點。

$ WCREV $是被當前svn修訂版所取代的宏。

每個模板文件都在SVN存儲庫中,但是從這些文件生成編譯/解釋的實際文件。因此,在構建每個生成的輸出(exe,安裝程序,發行說明等)之前,您需要運行subwcrev工具並替換宏。

0

將某些東西整合到構建過程中,該構建過程將當前SVN修訂版寫入源版本文件(例如revision.h中只包含一個「const int revision = xxx;」),該版本不受版本控制(svn:ignore)將其包含在構建中。

這裏是一個非常簡單的代碼段的想法:

echo "const int revision = `svn info | grep Revision | cut -d":" -f 2`;" > revision.h 
+0

不會是從資源文件訪問或安裝腳本找到更多的關鍵字以這種方式工作。次要的是你想要的。 – Tim 2009-07-17 14:16:49

+0

我不會說subwcrev不是正確的選擇 - 它可能是OP的問題。但我的建議可以從資源文件或安裝腳本中訪問。你也可以使用「sed」來替換像subwcrev那樣的佔位符。另外,它將是跨平臺的(Cygwin),可用於沒有安裝圖形SVN客戶端的CI構建從站。 – digitalbreed 2009-07-17 15:20:29

1

您可以使用修訂標記。

選擇一個文件,其中包含一些變量/常數與修訂號。將svn:關鍵字SVN屬性修改爲這個文件(文件中的人民幣,TortoiseSVN->屬性 - >新建,「svn:關鍵字」作爲名稱,「版本」作爲值)。現在在這個文件中,例如「$ Revision $」標籤的每一處都會被替換爲「$ Revision:7 $」。 不幸的是,這只是該文件的版本,所以每次構建編號增加時都必須「觸及」它。

可以在SVN Book