Как бы вы использовали распределенную систему контроля версий, такую как Mercurial или Bazaar, для управления большими двоичными файлами?
В частности, я думаю о том, что у вас есть большой актив, такой как.psd, который составляет 200 МБ. Художник идет и меняет несколько пикселей и проверяет их. Предполагая, что дельты не сохраняются, это составляет 200 МБ, что у любого, кто обновляет свой клон / ветвь, будет отключена история. Учитывая полный цикл разработки, это много информации для каждого клиента.
Что мне хотелось бы, так это возможность помечать такие файлы как "хранить историю на сервере", как традиционные централизованные VCS, такие как SVN или Perforce. Вы можете потерять преимущества DVCS для этих файлов, но я готов принять это, пока я могу использовать одну VCS (вместо 1 для активов и 1 для кода).
Будем весьма благодарны за любые предложения о том, как это сделать (если возможно).
2 ответа
Для Mercurial вы можете использовать расширение bfiles (или одно из других, перечисленных на этой странице). Тогда внутри репо хранятся только метаданные файла, а содержимое больших файлов хранится на центральном сервере. Я не использовал ни одно из этих расширений, поэтому не могу сказать, какое из них будет лучшим выбором.
Даже если это не DVCS, вы можете посмотреть на Dropbox. В основном вы работаете с последней версией каждой плитки, но она хранит информацию о версиях для каждого файла, чтобы при необходимости вы могли вернуться к предыдущей версии. Они также используют двоичные дельты, которые могут сократить время загрузки / выгрузки.
Одним из больших преимуществ Dropbox является очень естественный пользовательский интерфейс, который удобен практически каждому пользователю компьютера. В прошлом я пытался заставить дизайнеров и других нетехнических людей использовать инженерные системы контроля версий, и им не всегда было легко.