Я хочу отделить двоичные файлы (носители) от моих репозиториев кода. Стоит ли оно того? Если так, как я могу управлять ими? - PullRequest
1 голос
/ 21 октября 2010

Наши репозитории становятся огромными, потому что у нас есть тонны медиафайлов (сотни по 1 МБ в формате JPEG, сотни PDF-файлов и т. Д.).

Наши разработчики, которые проверяют эти репозитории, вынуждены ждать ненормально долгое время из-за этого для определенных репозиториев.

Кто-нибудь еще имел эту дилемму раньше? Правильно ли я делаю это, отделяя код от медиа? Вот некоторые проблемы / беспокойства, которые у меня были:

  • Если я перенесу их на медиасервер, то боюсь, что разработчику будет больно. Вместо того чтобы обновлять один сервер, ему / ей теперь придется обновлять два сервера, если они выполняют как логику программирования, так и обновления носителей.
  • Если я перенесу их на медиасервер, мне все равно придется пересматривать контроль носителей, нет? Таким образом, разработчик должен будет зафиксировать обновления кода и зафиксировать обновления медиа.
  • Как разработчик будет тестировать локально? Я мог бы заставить мой сайт использовать абсолютные URL-адреса, например src="http://media.domain.com/site/blah/image.gif", но это не будет работать локально. Я предполагаю, что мне придется изменить шаблон сайта, чтобы решить, будет ли он локальным / для разработки или для производства, и на основании этого изменить BASE_URL.
  • Стоит ли столько усилий делать это? Мы имеем дело со 100-150 сайтами, а не с дюжиной крупных сайтов, поэтому у нас есть около 100-150 хранилищ. У нас не будет времени или ресурсов для изменения существующих сайтов, и мы можем реализовать это только на новых сайтах.
  • Мне бы все равно пришлось хранить скрипты, которые генерируют медиа (генераторы pdf) и сгенерированные медиа, в репозитории кода, верно? Обновление всех этих pdf-генераторов до файлов POST на внешние медиа-серверы было бы огромной болью, а кеширование - с дополнительными трудностями.

Буду признателен за понимание вопросов, связанных с управлением мультимедиа и кодом.

1 Ответ

0 голосов
/ 22 октября 2010

Во-первых, да, хорошая идея - отделить мультимедиа и сгенерированный контент (например, сгенерированный pdf) от системы контроля версий.
Это связано с:

  • дисковым пространством и временем проверкикак вы описали в своем вопросе)
  • отсутствие функции CVS, фактически используемой этим типом файла (без различий, без слияния, только метки и ветви)

При этом любойтакой переход требует больших затрат.
Вам необходимо отделить процесс управления релизами (генерировать нужные файлы в нужных местах) от процесса разработки (получение из одного или двух ссылочных материалов нужного материала для разработки / обновления).ваши проекты)

Двоичные файлы обычно делятся на две категории:

  • не сгенерированные двоичные файлы :
    Их лучше всего хранить в хранилище артефактов (например, Nexus , например), под меткой, которая будет соответствовать метке, используемой для источников текста в VCS
  • сгенерированных двоичных файлов (как ваш pdf):
    в идеале, они не должны храниться в каком-либо репозитории, а должны быть сгенерированы только на этапе управления релизами для развертывания.
...