В общем, я рекомендую один проект для каждой модели хранилища.
Потенциальная ошибка, с которой сталкиваются некоторые люди, требует нескольких проверок, обмена кодом и т. Д.
Использование кода, размещенного в другом хранилище, очень просто в svn с использованием ключевого слова svn: externals. Это позволяет вам извлекать каталог из другого репозитория в любой заданный каталог вашего репозитория.
Прибыль, которую вы получаете с несколькими репозиториями, кратна.
В частности, SVN замедляется при работе с большим оформлением заказа. Все обычные команды будут занимать заметно больше времени при очень большой проверке.
Если вы начнете делиться работой с другими разработчиками, затраты на обслуживание могут увеличиться, поскольку вам может потребоваться заблокировать их в одних «каталогах проектов», предоставляя им доступ к другим.
Если вы когда-либо распродаете часть своей работы, покупатель может запросить историю источника. Разделение большого репозитория SVN - это очень утомительное усилие, а в некоторых случаях может оказаться несостоятельным.
Простота. Несколько репозиториев могут дать вам очень четкое руководство о том, как разделить ваш код. Это приводит к более чистому разделению, если используется правильно, и, следовательно, может действовать как расширение инкапсуляции вашего кода.
Поскольку сервер стоит, что было упомянуто Дейвом, очень легко настроить сервер таким образом, чтобы войти в него и запустить svnadmin create
в нужной директории достаточно для создания нового репо.
Личный опыт
Подкрепляя все эти мысли, я поделюсь с вами немного своим личным опытом по этой теме.
Меня также называют Кельтен, и я основал WowAce.com. До недавнего времени мы работали с одним из крупнейших общих svn-репозиториев в Интернете. В нем было более 82 тыс. Ревизий и более 1,5 тыс. Проектов, представленных в разные моменты его истории для более чем 3 млн. Строк кода.
Использование дискового пространства в хранилище такого размера является существенным, номера ревизий теряют смысл, поскольку все они используются во всех проектах. В конце концов нам пришлось придумать систему, чтобы разделить ее, нарезать гигантское гигантское репо на несколько гигабайт на что-то маленькое и удобное в использовании.
В конце концов, это заставило меня гораздо больше работать, чтобы заставить его работать разумно и разделиться, чем для установки новой системы, которая работала разумно. WowAce.com и CurseForge.com по-прежнему представляют собой один из крупнейших наборов хранилищ аддонов для WoW и нескольких других игр, за исключением того, что теперь все они разделены в хорошем и нормальном стиле.