2011-08-30 84 views
0

我想爲大型文件(視頻文件)使用版本控制器。我想修改文件並多次檢查。如果我使用git,它會在每次登錄時存儲文件內容。是否有任何工具可用於存儲修改文件的差異,以便我可以節省存儲空間(我不想存儲完整文件當我每次檢查時)哪個版本控制軟件適合存儲大型視頻文件

我已經通過git - 媒體。它會存儲完整的內容,每次當我在做檢查。 我想git附件也將工作類似於git - 媒體。

謝謝

+0

我不確定,但github是否有空間限制?無論如何,你可以強制文件的管理類型(將二進制文件作爲文本進行管理並對它們進行區分)。也許你可以找到另一種方式,而不是把它們放入git中。它會減慢很多(因爲git做sha1散列以檢查文件...) – ykatchou

+0

感謝您的回覆。我可以知道如何將二進制文件作爲文本進行管理,並對它們進行差異 –

+0

當你執行'git gc'時,git存儲diff。 –

回答

0

您可以簡單地使用SVN,它可以處理開箱即用的二進制文件。

2

如果要存儲頻繁改變(這似乎是你的情況下)的二進制文件,我會建議SVN過了Git。它只存儲三角洲。我對Git的觀察一直認爲它不能處理經常變化很大的大型二進制文件。回購的規模增加了,你花了大量的時間克隆等等。儘管有包裝文件,在這一點上,git存儲了三角洲,並且回購了回購。

話又說回來,請記住,這些設計主要是作爲源代碼控制軟件,雖然SVN(和Git)處理的二進制文件,它是不是真的他們的使用情況。

2

這將取決於系統是如何能夠代表兩個視頻文件,而這又是要依賴於視頻文件如何存儲之間的差異。

大多數版本控制系統能夠處理二進制文件;它們在處理它們的方式上有所不同。有些可能只是放棄和存儲每個版本的整體。

假設你使用了一些壓縮格式(即並非每一幀的每個像素都被明確地存儲)。如果你有一個視頻X,和你做一個小的變化,以它來製作視頻Y,被XY將有相同的字節序列的長段,或壓縮方案要搶的一切嗎?如果前者,任何體面的二進制差異算法應該能夠找到(而不是存儲)相同的序列;如果沒有,那麼這樣的算法就不能這樣做,除非它明確知道視頻格式的內部。

你實際上可能得​​到與不壓縮數據非常積極的格式更好的效果,所以給人們留下的東西比較算法上下工夫。 [編輯:這是我的猜測;我沒有實際的數據進行備份,但它似乎是一個合理的猜測。]

我知道這實際上並沒有回答這個問題,但也許它可以爲你或其他人提供了一個起點。