Здесь я прочитал несколько ответов, которые осуждают использование svn: externals. Я понимаю, как ими можно злоупотреблять, и это делает нас более зависимыми от Subversion, но я действительно не вижу, чтобы наша группа уходила от этого в ближайшее время.
В любом случае, вот моя дилемма. У нас есть Решения, которые ссылаются на несколько проектов, которые находятся в своем собственном разделе хранилища. Многие из этих проектов совместно используются несколькими решениями, и мы также не хотим исключать возможность совместного использования наших проектов. У нас также есть несколько фиксированных зависимостей версий, проверенных в нашем репозитории (фреймворки модульного тестирования, библиотеки и т. Д.).
Я бы хотел настроить несколько «рабочих пространств», которые используют ТОЛЬКО внешние объекты (поскольку Subversion это просто пустые каталоги или может содержать один файл решения) для настройки Решений для наших разработчиков. Проверка большинства проектов сама по себе не будет достаточной для их создания, но проверки его рабочей области будет достаточно для его создания, потому что все его зависимости будут поставляться с ним. Кто-нибудь еще реализовал подобное решение, и будет ли svn: externals хорошим способом сделать это? Какие слова предостережения вы мне сделаете, если мы пойдем по этому пути?
В основном структура будет выглядеть следующим образом (ствол / ветви / теги для краткости опущены):
/projects
/project1
/project2
/dependencies
/xUnit
/1.5
/1.4
/NHibernate
/2.1.0
/2.0.1
/workspaces
/project1
/project1 (external to ^/projects/project1)
/xUnit (external to ^/dependencies/xUnit/1.5)
/NHibernate (external to ^/dependencies/NHibernate/2.0.1)
/project2
/project2 (external to ^/projects/project2)
/xUnit (external to ^/dependencies/xUnit/1.4)
/NHibernate (external to ^/dependencies/NHibernate/2.1.0)