Контроль версий на больших файлах

Мы с радостью используем SVN для SCM на работе. В настоящее время у меня есть наши двоичные активы в том же хранилище SVN, что и наш код. SVN поддерживает очень большие файлы (он передает их "поточно", чтобы поддерживать работоспособность памяти), но это SLOOWWWWW.

Какое программное обеспечение по управлению активами вы рекомендуете для примерно одного миллиарда (и роста) активов? Мы предпочли бы разветвление и слияние (разные активы и файлы конфигурации переходят к разным клиентам).

Ответ 1

Пожалуйста, помните, что слияние двоичных файлов практически невозможно! По крайней мере, автоматически. По крайней мере, я никогда не слышал о программе, которая поддерживает трехстороннее слияние в двоичном формате. Не говоря уже о разрешении конфликтов.

Вот почему большинство инструментов управления активами не имеют ветвления, поскольку это имеет мало смысла, поскольку вы не можете снова объединиться. Блокировка и линейная история лучше. Если вы хотите "разветкить", сделайте копию файла с историей.

Ответ 2

Perforce - единственная система управления версиями, которую я слышал для огромных файлов и целых проектов. Он бесплатный для двух мест, но довольно дорогой для большего количества пользователей (около 900 долларов за место). Я слышал, что он может обрабатывать репозитории размером до терабайта.

git может быть другим вариантом. Он ведет себя несколько иначе, чем SVN, но предназначен для больших проектов (например, ядра Linux). Я не уверен, что это хорошо для больших двоичных файлов.

Ответ 3

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

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

Этот ответ больше того, что вы не должны делать, чем то, что вам следует делать... извините...

Ответ 4

Расширение дополнительных файлов Mercurial могло бы помочь. Он добавляет возможность отмечать файлы как "большие". Хранит эти файлы в центральном хранилище отдельно от остальной части репозитория. Использует хеши, чтобы определить, какие версии больших файлов вам нужны, и загружает только те, которые вам нужны прямо сейчас.

Ответ 5

Если вам нужно управлять ОГРОМНЫМИ файлами, попробуйте Plastic SCM (www.plasticscm.com). AFAIK Perforce также является опцией, но разветвление и слияние не так сильны.