tl; dr:TFS旨在優雅地處理大文件。您必須面對的最大障礙是上傳/下載文件的網絡帶寬。第二個問題是服務器上的存儲空間。假設你已經考慮了這兩個問題,你不應該有任何其他問題。
網絡帶寬:檢查或獲取文件的開銷很小,它應該像典型的HTTP上傳或下載一樣快。如果你的客戶端遠離服務器,在網絡方面,他們可能受益於在他們的本地網絡上有一個TFS源代碼控制代理來加速下載。
請注意,與某些版本控制系統不同,TFS在上傳或下載新內容時不計算和傳輸變化量。也就是說,如果客戶端具有大型文本文件的版本4,並且版本5在最後添加了幾行,則一些版本控制工具優化了這種體驗以僅發送更改的行。 TFS不會執行此優化,因此如果您的文件頻繁更改,客戶端將需要每次下載整個文件。
服務器存儲:服務器上的磁盤空間相當簡單 - 您需要足夠的空間來存放文件,除此之外幾乎沒有額外的開銷。 TFS不會因爲您的存儲庫包含大文件而放慢速度。
如果這些文件經常被修改,您還需要考慮修訂版所使用的磁盤空間。 TFS在文件修訂版之間存儲「deltas」 - 即兩個版本之間的二進制差異。因此,如果文件內容在典型使用情況下與文本文件之間的修訂間的變化最小,則存儲成本應該便宜。但是,如果整個內容會像二進制文件(如圖像或DLL)那樣變化,那麼您將需要足夠的磁盤空間來存儲每個修訂。 (當然,你可以通過destroy
以前的版本來重新獲得這個空間。)
關於TFS中deltas的一個注意事項:爲了減少在簽入時間的開銷,修訂之間的增量不是立即計算的,有背景「 deltafication「作業每晚運行以計算修訂空間的變化量。在此之前,每個修訂都完整地存儲在數據庫中。因此,如果每天都有大量修訂版本很大的文本文件,則您的磁盤空間需求將需要考慮到這一點。
客戶端存儲:客戶需要有足夠的磁盤空間也包含這些文件(雖然只在他們已經下載的版本。)你可以在你的工作空間的映射得到緩解,使得大型文件是隱形(或者不包括在你的工作區中),如果他們不需要的話。
警告:獲取歷史版本:如果你發現自己要求的大文件的歷史版本頻繁(例如:我想一個ISO鏡像7次變更前),那麼你打算讓服務器應用增量鏈回到那個版本。如果您有多個客戶同時進行此操作,這可能會導致您的記憶力下降。
啊,這是非常棒的,確實是完整的信息。我認爲TFS將是最好的選擇,因爲我們現在正在做的是不斷地從網絡位置訪問文件,由於上面提到的帶寬原因,這些文件需要FOREVER。 –
要添加的一件事,對於16 MB以上的文件禁用afaik分離(對於您的情況,這是真實的)。我在http://blogs.msdn.com/b/billheys/archive/2011/05/05/how-tfs-stores-files-and-calculated-deltas-on-versioned-files.aspx發現了關於它的信息。 – MichalMa
@MichalMa:好點,我完全忘記了這一點。 –