簡體   English   中英

使用Visual Studio 2008和SVN在C ++中進行自動轉換

[英]Autoversioning in C++ with Visual Studio 2008 and SVN

我正在使用MS Visual Studio 2008在C ++中進行一些開發工作,目前我們有一個版本函數,它返回一個代表版本號的硬編碼字符串。 我想找出一種方法,這樣它可以從1開始,而不是硬編碼的數字,每次我進行調試或發布版本時都會增加1(或者甚至更好,跟蹤調試版本和發布版本號)。 或者,如果無法做到這一點,請使用當前日期/時間作為版本號。

請注意,因為將有幾個人在使用該項目並使用SVN,所以代碼必須與計算機無關(這意味着如果我目前使用的是版本100,我的同事的最后一次構建是在90版本,那么下一次(之后)我檢查代碼,我的同事拿出代碼),他下一次編譯的版本號應該是101而不是91.)

能否請你幫忙?

如果您使用的是TortoiseSVN,則可以在預構建事件中使用subwcrev.exe將當前修訂號寫入源文件。

因此,請檢查文件version.template.hpp並添加類似的內容

  const string version = "13.12.0.$WCREV$";

添加項目預構建事件

subwcrev.exe "$(SolutionDir)." "$(ProjectDir)version.template.hpp" 
             "$(ProjectDir)version.hpp"

並包含生成的文件#include "version.hpp"

如果您想在構建解決方案時自動執行操作(調試,發布或兩者),Visual Studio可以使用自定義構建事件/步驟來啟動程序或腳本以執行任何操作。 hansmaad的答案可能並不完全是你想要的,因為沒有“每個構建的自動增量”,而是我認為這個想法是將SVN的某個文件的版本號放入編譯進來的源文件中。這使得對我來說很有意義,因為它允許你將構建綁定到SVN中的某個源快照。

我認為合並這兩個想法(自動構建增量和源代碼控制版本文件)有點問題......當兩個開發人員從版本X開始並且構建和更新版本到X + 1時會發生什么? 提交時應優先考慮哪一個。 我認為它會最后承諾他們的改變,但在我看來,這沒有任何意義。 換句話說,我的機器上的版本Y與我的同事機器上的版本Y不同。

對我來說更有意義的是有一個發布過程,該過程用自動遞增版本標記構建,而不是讓它為每個開發人員的構建自動增加。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM