TL; DR: Зачем использовать что-то вроде Apache Archiva или Sonatype Nexus в качестве хранилища артефактов вместо Subversion?
Система сборки, которую я использую в настоящее время, содержит множество двоичных объектов (изображений, звуковых файлов, скомпилированных двоичных файлов и т. Д.), Как для ввода, так и для вывода в наших сборках. Наша система управления ими очень специальная; некоторые проверяются в нашем хранилище Subversion вместе с нашим кодом, некоторые хранятся в другом месте вне формального контроля версий.
Я смотрю на консолидацию этого, чтобы у нас было нечто более самосогласованное и простое в использовании, которое отделяет двоичные артефакты от кода.
Google говорит мне, что есть выбор доступных репозиториев артефактов ( Archiva , Nexus , Artifactory ,…), но, читая вокруг, я не вижу преимуществ в использовании этих по сравнению с Subversion. Это будет заботиться о двоичных файлах для нас - это уже делает это для некоторых из наших двоичных файлов, мы просто хотели бы изменить структуру хранилища, чтобы отделить их от кода - и имеет заметное преимущество в том, что у нас уже есть серверы и опыт Subversion.
Так. В чем преимущество использования выделенной системы управления артефактами по сравнению с использованием общего инструмента контроля версий, такого как Subversion?
Ответы:
Краткий ответ: как правило, вам не нужна история бинарных артефактов и изменений этих артефактов, вам просто нужны конкретные версии.
Более длинный ответ: каждый раз, когда вы вносите небольшое изменение в двоичный файл, системы контроля версий не имеют никакого способа создать дельту - разницу между двумя файлами - поэтому она создает совершенно новую копию.
В CVCS, как в SVN, это не такая большая проблема, потому что у вас есть только одна центральная копия вашего хранилища - ваша локальная копия - только одна версия. (Хотя даже в этом случае ваш репозиторий может стать очень большим, что замедляет процесс регистрации.) Но что произойдет, если вы позже переключитесь на DVCS, где каждая копия репозитория будет иметь полную историю каждого файла? Размер изменений становится очень актуальным там.
И что это дает тебе взамен боли? Единственное, что он предлагает, - это возможность вернуться к предыдущей версии вашего репозитория и знать, что у вас есть правильные двоичные файлы для этой версии.
Но вам нужен весь двоичный файл в вашем хранилище, чтобы сделать это? Или вы можете просто получить текстовый файл, сообщающий процессу сборки, какие версии извлечь из другого хранилища в другом месте?
Последнее - это то, что обычно предлагается хранилищами артефактов.
Кроме того, некоторые из более профессиональных, например, Nexus, также предоставят вам информацию о лицензировании сторонних артефактов, чтобы вы не рискнули оказаться в стороне от какого-то тонкого предложения, которое вы считаете библиотекой FOSS.
источник
Мы используем SVN в качестве хранилища для сборок релизов, и это очень хорошо. У нас в одном репозитории релизов лучше, чем 30 ГБ различных сборок релизов, и он хорошо выполняет сборку для развертывания.
некоторые из преимуществ этого являются ..
источник