Во-первых, я знаю об этом: Как бы вы организовали репозиторий Subversion для проектов домашнего программного обеспечения? Затем, актуальный вопрос: Моя команда реструктурирует наш репозиторий, и я ищу советы о том, как его организовать. (SVN в этом случае). Вот что мы придумали. У нас есть один репозиторий, несколько проектов и множественные перекрестные ссылки svn: externals
\commonTools /*tools used in all projects. Referenced in each project with svn:externals*/
\NUnit.v2.4.8
\NCover.v.1.5.8
\<other similar tools>
\commonFiles /*settings strong name keys etc.*/
\ReSharper.settings
\VisualStudio.settings
\trash /*each member of the team has trash for samples, experiments etc*/
\user1
\user2
\projects
\Solution1 /*Single actual project (Visual Studio Solution)*/
\trunk
\src
\Project1 /*Each sub-project resulting in single .dll or .exe*/
\Project2
\lib
\tools
\tests
\Solution1.sln
\tags
\branches
\Solution2
\trunk
\src
\Project3 /*Each sub-project resulting in single .dll or .exe*/
\Project1 /*Project1 from Solution1 references with svn:externals*/
\lib
\tools
\tests
\Solution2.sln
\tags
\branches
Чтобы очистить словарь: решение означает отдельный продукт, Project - это проект Visual Studio (который приводит к созданию одного DLL или одного .exe)
Как мы планируем выложить репозиторий. Основная проблема заключается в том, что у нас есть несколько решений, но мы хотим поделиться проектами между решениями. Мы думали, что нет смысла переводить эти совлокальные проекты в свои собственные решения, и вместо этого мы решили использовать svn: externals для совместного использования проектов между решениями. Мы также хотим сохранить общий набор инструментов и сторонних библиотек в одном месте в репозитории, и они ссылаются на них в каждом решении с помощью svn: externals.
Что вы думаете об этом макете? Особенно об использовании svn: externals. Это не идеальное решение, но, учитывая все плюсы и минусы, это лучшее, что мы могли бы придумать. Как вы это сделаете?