2009-02-19 46 views
2

我們是一個4人團隊,幾年來一直沒有離開我們的舒適區,但我們正在成長,並希望趕上時代。我一直致力於尋找實現持續集成(自動構建,代碼維護分支和新功能等)的最佳方法。我們正在考慮從SourceSafe 2005切換到Subversion來處理我們的版本控制。從我讀過的內容來看,Subversion是進行代碼升級,分支和分支之間合併的更好選擇。我們可能會使用下列產品:Subversion中代碼升級和功能分支的最佳設置?

  • VisualSVN服務器
  • TortoiseSVN的(與Windows資源管理器的集成)
  • 的VisualSVN(用於與Visual Studio 2005集成)
  • SVNVB6(集成在Visual Basic 6 )
  • 的FinalBuilder

什麼是組織代碼的推廣和特徵庫的最佳途徑分枝?這是我們目前的SourceSafe結構的一個例子:

    • Visual Studio 2005個的項目
      • 項目名
        • 解決方案文件,項目文件和代碼文件在這裏
        • \ bin
          • \發佈
            • 編譯版本在這裏的二進制文件
    • 的Visual Basic 6項目
      • 項目名
        • 項目文件和代碼文件在這裏
        • 編譯的二進制文件(.dll,.exe文件,.OCX)這裏
    • 文檔
      • 文檔文件在這裏

我們應該像這樣構造嗎?

    • 分支(每個從主幹支鏈)
      • Development.FeatureA
      • Development.FeatureB
      • 測試(帶的FinalBuilder夜間內置???)
      • 生產(每晚用FinalBuilder ???內置)
      • Production.BugFixA(反向整合到生產分公司,測試分支,樹幹???)
    • 標籤
      • Development.v1(每次成功構建後的標籤)
      • Development.v2
      • Development.v3
      • Test.v1
      • Test.v2
      • Test.v3
      • Production.v1
      • Production.v2
      • Production.v3
    • 幹線(開發代碼 - 用的FinalBuilder夜間內置)
      • 視覺Studion 2005個項目
        • 項目名
          • 解決方案文件在這裏
          • 項目名
            • 項目文件和代碼文件在這裏
      • 的Visual Basic 6項目
        • 項目名
          • 項目文件和代碼文件在這裏

由於我們的軟件有很大一部分仍然是COM(VB6)和需要(使用REGSVR32)進行登記,應二進制是版本控制?當我們需要處理不同的分支(可能具有不同的COM兼容性)時,我們應該如何處理註冊/註銷組件?

我們是否脫離了商標?

回答

2

首先,不要使用頂級主幹分支的標籤,使用每個項目的主幹分支的標籤是這樣的:

/Projects 
    /CashCowProject 
    /branches 
    /tags 
    /trunk 
     /vs 
     /doc 

這意味着跟蹤工具可以看看http://svn/Projects/CashCowProject,看到的所有活動項目,並沒有在任何其他項目上進行任何活動。此外,它還會強制您控制項目之間的引用,這意味着您的頂級項目不會在沒有中繼入口的情況下更改。

當項目互相引用時,使用svn:externals從您需要的庫項目中提取一個標記。使用供應商分支機構在紅豆書中描述處理第三方庫,甚至二進制文件。

在SVN中保存庫二進制文件是可以的。可能想考慮一個單獨的存儲庫,雖然我們不這樣做。

對於代碼升級,爲特定版本保留一個穩定的分支,並且只有從樹幹合併到該分支中,然後從該分支標記。這將爲您提供每個版本內容的可審計記錄。

如果您不打算引入源代碼並構建它,則可以將COM二進制文件保留在那裏。你可以爲烏龜編寫一個升級後的腳本,它將圍繞註冊它找到的任何COM對象。