Моя команда рассматривает возможность перехода от Clearcase к Subversion, и мы думаем об организации репозитория следующим образом:
\trunk\project1
\trunk\project2
\trunk\project3
\trunk\staticlib1
\trunk\staticlib2
\trunk\staticlib3
\branches\..
\tags\..
Проблема здесь в том, что у нас много проектов (1000+) и каждый проектэто DLL, которая связывает в нескольких общих статических библиотеках.Поэтому проверка всего в транке не является началом, так как это займет слишком много времени (~ 2 ГБ) и является громоздким для ветвления.
Использование svn: externals для извлечения соответствующих папок для каждого проекта не 'Это кажется идеальным, потому что в результате получается несколько рабочих копий - по одной для проекта и по одной для каждой папки статической библиотеки.Мы также не можем сделать атомарный коммит, если изменения охватывают проект и некоторые статические библиотеки.
Разреженные извлечения звучат очень подходящими для этого, так как мы можем написать сценарий для извлечения только необходимых каталогов.Однако, когда мы хотим объединить изменения из ветви обратно в магистраль, нам нужно сначала проверить полную магистраль.
Интересно, есть ли какой-нибудь совет относительно 1) лучшей организации хранилища или 2) пути кобъединить изменения ветви в рабочую копию магистрали, которая является разреженной?