簡體   English   中英

如何使用SVN管理項目版本?

[英]How do you manage project version with SVN?

Delphi 2007中的項目,存儲在SVN中。

“項目設置 - 版本信息” - 存儲項目版本。 更改項目版本* .dproj文件和* .res文件時正在更改。 每當項目版本發生變化時,我都必須將它們提交給SVN。

我想用SVN管理項目版本。 例如,當從名為“1.12.2”和修訂版12993的svn標記構建項目時,我想獲得版本為1.12.2.12993的二進制* .exe文件。

為了實現它,我應該創建一個* .rc文件,其中包含版本信息的文本顯示。 然后創建一個* .res文件並將其包含在{$ R version.res}的項目中

我寫給* .rc文件的內容是什么? 它的結構應該是什么樣的? 請舉個例子。

謝謝。

VERSIONINFO資源記錄在MSDN上 典型的此類資源腳本如下所示:

1 VERSIONINFO
FILEVERSION 1,12,2,12993
PRODUCTVERSION 1,12,2,12993
FILEOS 0x40004L
FILETYPE 0x1L
BEGIN
  BLOCK "StringFileInfo"
  BEGIN
    BLOCK "000004E4"
      BEGIN
        VALUE "CompanyName", "My Company\0"
        VALUE "FileDescription", "My Program\0"
        VALUE "FileVersion", "My Program\0"
        VALUE "LegalCopyright", "My Company 2012\0"
      END
  END
  BLOCK "VarFileInfo"
  BEGIN
    VALUE "Translation", 0x0000 0x04E4
  END
END

我們是這樣做的:

我們有一個專用的構建機器來構建我們的“官方”二進制文件,然后將它們檢入svn。 然后使用特殊注釋標簽[Add Project File] [Add Res File]將二進制文件以及.res和.bdsproj檢入svn。

除非已進行功能更改,否則指示開發人員不檢查.bdsproj和.res文件,在這種情況下,他們需要使用特殊標記。

SVN使用預提交掛鈎來阻止.res和.bdsproj簽名而不使用特殊標記。

當我們創建一個新的項目分支時,我們有一個實用程序(我認為它是FindAndReplace.exe),它更新.bdsproj文件中的所有版本信息以匹配。

這不是您正在尋找的,因為我們沒有將SVN構建作為其中的一部分。 但這可以做,作為這種方法的延伸。

我們也使用VERSIONINFO,但是我們使用SVN修訂號而不是內部版本號,可以使用SubWCRev實用程序通過關鍵字替換來提供。 有關詳細信息,請參閱Tortoise dox 它允許您從SVN獲取與特定.exe相對應的正確源快照

暫無
暫無

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

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