Подтвердить что ты не робот

Управление версиями для больших двоичных файлов и репозиториев> 1 ТБ?

Извините, что придумал эту тему еще раз, так как есть soo many другие уже связанные вопросы, но ни одна из них не затрагивает мою проблему напрямую.

То, что я ищу, - это хорошая система управления версиями, которая может обрабатывать только два простых требования:

  • хранить большие двоичные файлы ( > 1 ГБ)
  • поддерживает репозиторий, который > 1 ТБ (да, этот ТБ)

Почему? Мы занимаемся переупаковкой нескольких тысяч программных приложений для нашего следующего развертывания большой ОС, и мы хотим, чтобы эти пакеты следили за контролем версий.

До сих пор у меня есть некоторый опыт работы с SVN и CVS, однако я не вполне доволен производительностью как больших двоичных файлов (несколько файлов MSI или CAB будут > 1 ГБ). Кроме того, я не уверен, хорошо ли они масштабируются с объемом данных, которые мы ожидаем в ближайшие 2-5 лет (например, я сказал, оцененный > 1 ТБ)

Итак, есть ли у вас рекомендации? Я также просматриваю SVN Externals, а также Git Submodules, хотя это будет означать несколько отдельных репозиториев для каждого пакета программного обеспечения, и я не уверен, что мы хотим.

4b9b3361

Ответ 1

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

То, о чем вы говорите, это процесс, известный как управление конфигурацией. Если у вас есть тысячи уникальных программных пакетов, в вашем бизнесе должен быть менеджер конфигурации (человек, а не программное обеспечение;-)), который управляет всеми конфигурациями (aka builds) для разработки, тестирования, выпуска, выпуска за клиентом и т.д..

Ответ 2

Посмотрите Boar, "Простой контроль версий и резервное копирование фотографий, видео и других двоичных файлов". Он может легко обрабатывать огромные файлы и огромные репозитории.

Ответ 3

Когда вы действительно должны использовать VCS, я буду использовать svn, так как svn не требует копирования всего репозитория в рабочую копию. Но он все равно нуждается в дублировании объема дискового пространства, поскольку он имеет чистую копию для каждого файла.

При таком количестве данных я бы искал систему управления документами или (низкий уровень), используя общий доступ к сети только для чтения с определенным процессом ввода.

Ответ 4

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

(В этом вопросе также упоминаются файлы .cab и .msi: обычно программное обеспечение CI по вашему выбору имеет некоторый метод архивирования сборок. что вы в конечном итоге после?)

Ответ 5

Есть несколько компаний с продуктами для "Общий доступ к файлам". Они могут копировать большие файлы в разные местоположения, но имеют распределенные механизмы блокировки, поэтому на любой из копий может работать только один человек. Когда человек проверяет обновленную копию, которая реплицируется на другие сайты. Основное применение - файлы CAD/CAM и другие большие файлы. См. Программное обеспечение Peer (http://www.peersoftware.com/index.aspx) и GlobalSCAPE (http://www.globalscape.com/).

Ответ 6

Это старый вопрос, но один из возможных ответов - https://www.plasticscm.com/. Их VCS может обрабатывать очень большие файлы и очень большие репозитории. Они были моим выбором, когда мы выбирали пару лет назад, но руководство подтолкнуло нас в другом месте.

Ответ 7

Git может фактически рассматриваться как жизнеспособный VCS для больших данных, Git Большое хранилище файлов (LFS) > (по GitHub, апрель 2015 г.).

git -lfs (см. git-lfs.github.com) можно протестировать на сервере, поддерживающем его: lfs-test- сервер (или непосредственно с помощью github.com):
Метаданные можно хранить только в репозитории git, а большой файл - в другом месте.

https://cloud.githubusercontent.com/assets/1319791/7051226/c4570828-ddf4-11e4-87eb-8fc165e5ece4.gif

Ответ 8

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

(Отказ от ответственности: я работаю в Perforce)

Ответ 9

  • хранить большие двоичные файлы ( > 1 ГБ)
  • поддерживает репозиторий, который > 1 ТБ (да, этот ТБ)

Да, это один из случаев, когда Apache Subversion должна полностью поддерживать.

До сих пор у меня есть некоторый опыт работы с SVN и CVS, однако я не вполне удовлетворены работой как с большими двоичными файлами (несколько файлов MSI или CAB будут > 1 ГБ). Кроме того, я не уверен, что они а также объем данных, которые мы ожидаем в следующих 2-5 лет (как я сказал, оцененный > 1 ТБ)

Современные серверы и клиенты Apache Subversion не должны иметь проблем с контролем такого количества данных, и они отлично масштабируются. Кроме того, существуют различные подходы репликации репозитория, которые должны повысить производительность, если у вас есть несколько сайтов с разработчиками, работающими над одними и теми же проектами.

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

svn:externals не имеют ничего общего с поддержкой больших двоичных файлов или многоядерных проектов. Subversion отлично масштабирует и поддерживает очень большие данные и базу кода в одном хранилище. Но Git делает не. С Git вам придется разделить и разделить проекты на несколько небольших репозиториев. Это приведет к множеству недостатков и постоянной PITA. Вот почему Git имеет много дополнений, таких как git -lfs, которые пытаются сделать проблему менее болезненной.

Ответ 10

Перки, которые поставляются с системой управления версиями (changelog, простой доступ к rss и т.д.), не имеют ничего общего с простым файловым архивом.

Если вы только заботитесь о функциях метаданных версии и не заботитесь о старых данных, то решение, использующее VCS без сохранения данных в VCS, может быть приемлемым вариантом.

git-annex - это первый, который пришел мне на ум, но из что git -annex не является странице, кажется, есть другие похожие, но не совсем одинаковые альтернативы.

Я не использовал git -annex, но из описания и пошагового руководства это звучит так, как будто это может сработать для вашей ситуации.