2012-03-12 96 views
0

我正在使用SVN,但此問題與任何版本控制系統有關。庫和媒體文件應該存儲在存儲庫中嗎?

當開發一個使用媒體文件(圖像,視頻,xml文件等)的應用程序不斷更改,幾乎每個應用程序版本(或修訂版)都使用一組與以前不兼容的媒體文件或未來)版本的這些文件。當此應用程序使用某些版本的第三方庫時,它們與先前版本或未來版本不兼容。將所有這些二進制文件存儲在存儲庫中是常見的做法,例如SVN?

我想是的。

優點:

  • 如果項目大,一些功能在其損壞或錯誤已經出現,你總是可以做一個「更新至版本」,找到那個地方的bug出現。並修復它。
  • 製作結賬和構建應用程序是很容易的,因爲你擁有了一切,你在你的工作副本需要構建的應用程序

缺點:

  • SVN服務器將需要多大的硬盤空間來存儲所有版本。有人說,它變得緩慢
  • SVN更新很慢

是否有存儲在倉庫中唯一的源代碼文件的任何其他優勢?

回答

0

這可能不適用於圖像,視頻和XML文件,但我們將第三方庫存儲在單獨的SVN存儲庫中,並將所有內容存儲在主幹中。它效果很好。

開發人員可以將它簽出到本地機器,或者在編譯時通過網絡獲取他們需要的文件。我們修改了我們的Visual Studio項目文件以指向一個本地環境變量,它將SDK中的二進制文件鏈接到它們碰巧發生的任何位置。

假設文件是​​在一個名爲OURSDK本地工作副本,環境變量是:

>set OURSDK 
OURSDK=C:\Source\OURSDK 

然後我們修改C#和C++項目文件使用這些宏,而不是相對路徑:

AdditionalIncludeDirectories=""$(OURSDK)\log4cxx\src\main\include"$(OURSDK)\xerces-c\include";"$(OURSDK)\TSE-RegExp\Include"" 

我們以這種方式維護我們產品的三個版本,並且與第三方庫的鏈接幾乎不存在問題。唯一微不足道的是,回購實際上是「只寫」的,圖書館進入並留在那裏,所以隨着時間的推移,它會逐漸變大。完全值得的。 :)

相關問題