Злоупотребление контролем версий - PullRequest
4 голосов
/ 01 апреля 2009

Подходит ли управление версиями для проекта, в котором содержимое - это, по сути, файлы двоичных данных? Я думаю о пакете весом около 10 гигабайт с большим количеством файлов BMP и TGA.

Может ли Subversion обрабатывать что-то подобное? Можно ли сгенерировать какой-то бинарный патч, который позволил бы пользователям загружать только то, что было модифицировано. Rsync может быть вариантом, но тогда уже нет пути назад. Я бы очень хотел иметь возможность легко вернуться к более ранней версии.

Я тоже смотрел на этот вопрос , но не был удовлетворен ответом

Ответы [ 5 ]

4 голосов
/ 01 апреля 2009

Вы выпускаете управление релизами, которое включает в себя:

  • сборка: как и как быстро вы можете восстановить часть или весь контент доставки?
  • упаковка: сколько файлов присутствует в этой поставке?
    если ваш контент содержит слишком много файлов, его будет нелегко развернуть (например, скопировать или rsync) в любой удаленной среде, причем не столько из-за глобального размера, сколько из-за необходимого количества транзакций .
  • публикация: где вы храните свою доставку и как связать ее с исходной средой разработки, которая ее произвела?

Я бы сказал, что такая массовая доставка не предназначена для публикации в VCS, а скорее для хранения в репозитории на основе файловой системы с правильным именем (или version.txt), чтобы иметь возможность идентифицировать его версию и ссылку вернуться к содержимому разработки (хранится и помечается в subversion).
Maven является примером такого репо.

Я бы также отметил, что контент, который должен быть доставлен, должен включать ограниченное количество файлов, что означает:

  • сжал множество связанных файлов в один сжатый файл
  • запустить скрипт, который не только rsynch, но и распаковывает эти файлы
3 голосов
/ 01 апреля 2009
2 голосов
/ 02 апреля 2009

Краткий ответ - да.

Мы использовали subversion для относительно большого (40GB checkout) проекта разработки игр. Я скажу, что он справился с двоичными файлами на удивление хорошо. Недостатком является то, что пока вы будете получать только текстовую информацию для изменений, а именно: «Изменена текстура, чтобы соответствовать обновленной модели главного персонажа» Но даже эта небольшая информация может спасти вас, когда вы ищете проблемы с производительностью и просто убедитесь, что каждый использует одни и те же двоичные файлы для разработки. Насколько я знаю, для исправления потребуется полный файл.

2 голосов
/ 01 апреля 2009

Subversion отправляет различия только по строке, а не по всем файлам, при выполнении обновлений. Однако первоначальная проверка файлов требует загрузки всех файлов. Что в основном означает загрузку 10 ГБ. Также двоичные файлы - это кошмар для слияния, так как пока вы работаете в среде master / slave, где только 1 человек может фиксировать, а остальные являются рабами, которые только обновляют файлы, это будет работать очень хорошо. В противном случае вы можете столкнуться с конфликтом за конфликтом.

Разве невозможно разделить 10 ГБ по нескольким репозиториям? Они действительно должны быть версионированы в целом?

1 голос
/ 01 апреля 2009

Возможно, вы захотите взглянуть на какую-то выделенную актив управляющую систему, вместо того чтобы пытаться насильственно изогнуть систему управления версиями в соответствии с вашими потребностями. Единственный, о котором я слышал (но не имею ни опыта, ни принадлежности), это http://www.alienbrain.com/ - и он стоит $ t $.

...