2009-06-30 161 views
6

我正在尋找一個快速但不太髒的方法來完成大約80個演出的一組文件的快照。這裏的問題是許多文件大約有1 GB左右。大文件版本控制系統?

什麼是這種類型的最好的免費版本控制系統?

我知道ZFS是一個選項,但我寧願先嚐試別的。

+0

ascii還是binary? – Johan 2009-06-30 14:11:58

+0

二進制 - 雖然我不知道任何現代版本控制系統有算法區分ascii和二進制。 我會試試看,並在此發佈我的結果。 – 2009-07-01 05:03:54

+0

初始提交非常繁忙,並且使用file://協議,Subversion每秒平均傳輸1.5 MB。該死的很慢。 – 2009-07-01 10:54:07

回答

6

Subversion會處理與溫厚沉着你> 1GB的文件,在大多數情況下,但如果有很多大的變化預期的diff的產生需要一段時間...

Subversion Best practices對大型文件的部分:

Subversion的一個很好的功能是,在設計上, 可以處理的文件的大小沒有限制。文件在Subversion客戶端和服務器之間通過 兩個方向「流」地發送,在網絡的每一側使用一個小的,恆定的內存量。

當然,還有一些實際問題需要考慮。雖然 沒有必要擔心在千字節大小範圍內的文件(例如 典型的源代碼文件),但提交較大的文件可能需要大量的時間和空間(例如,數十個 或數百兆字節大)。

首先,請記住,你的Subversion工作拷貝存儲所有版本控制文件的原始 副本中的.svn /文基/ 區域。這意味着您的工作副本至少佔原始數據集磁盤空間的兩倍以上。除此之外,Subversion 客戶端遵循用於提交 文件的(當前不可調整的)算法:

。將文件複製到.svn/tmp /(可能需要一段時間,並且臨時使用 多餘的磁盤空間))

。在tmpfile和 原始副本之間執行二進制比較,如果新添加 ,則在tmpfile和空文件之間執行二進制比較。 (可能需要很長時間來計算,即使最終可能通過網絡發送少量數據)

。發送 DIFF到服務器,然後移動到TMPFILE的.svn /文基/

所以 儘管沒有理論上的限制文件的大小,你會 需要注意的是非常大的文件可能需要相當多的病人等待,而您的客戶突然離開。但是,您可以放心, 與CVS不同,您的大文件不會損壞 服務器或影響其他用戶。

3

雖然你可能真的想嘗試Monotone,但只是檢查出來。你可能會發現你在找什麼。

相關問題