Как бы вы использовали распределенную систему контроля версий, такую ​​как Mercurial или Bazaar, для управления большими двоичными файлами? - PullRequest
3 голосов
/ 29 апреля 2011

Конкретно я думаю о том, что у вас есть большой актив, такой как .psd, размером 200 МБ. Художник идет и меняет несколько пикселей и регистрирует их. Предполагая, что дельты не сохраняются, это составляет 200 МБ, что у любого, кто обновляет свой клон / ветвь, будет отключена история. С учетом полного цикла разработки, который представляет собой МНОГО информации для каждого клиента.

Что мне хотелось бы, так это возможность помечать такие файлы как «хранить историю на сервере», как традиционные централизованные VCS, такие как SVN или Perforce. Вы можете потерять преимущества DVCS для этих файлов, но я готов принять это, если я могу использовать одну VCS (вместо 1 для ресурсов и 1 для кода).

Буду очень признателен за любые предложения о том, как это сделать (если возможно).

Ответы [ 2 ]

7 голосов
/ 29 апреля 2011

Для Mercurial вы можете использовать расширение bfiles (или одно из других, перечисленных на этой странице).Тогда внутри репо хранятся только метаданные файла, а содержимое больших файлов хранится на центральном сервере.Я не использовал ни одно из этих расширений, поэтому не могу сказать, какое из них будет лучшим выбором.

3 голосов
/ 29 апреля 2011

Даже если это не DVCS, вы можете посмотреть на Dropbox . В основном вы работаете с последней версией каждой плитки, но она сохраняет информацию о версиях для каждого файла, чтобы вы могли вернуться к предыдущей версии, если это необходимо. Они также используют двоичные дельты, которые могут сократить время загрузки / выгрузки.

Одним большим преимуществом Dropbox является очень естественный пользовательский интерфейс, который удобен практически каждому пользователю компьютера. В прошлом я пытался заставить дизайнеров и других нетехнических людей использовать инженерные системы контроля версий, и им было не всегда легко.

...