Как вы организуете свой репозиторий контроля версий?
Во-первых, я знаю об этом:Как бы вы организовали хранилище 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
Чтобы очистить словарь: «Решение» означает один продукт, «Проект» - это проект Visual Studio (в результате получается один .dll или один .exe).
Вот так мы планируем выложить хранилище. Основная проблема в том, что у нас есть несколько решений, но мы хотим делиться проектами между решениями. Мы подумали, что на самом деле нет смысла переводить эти общие проекты в собственные решения, и вместо этого мы решили использовать svn: externals для обмена проектами между решениями. Мы также хотим хранить общий набор инструментов и сторонних библиотек в одном месте в хранилище, и они ссылаются на них в каждом решении с помощью svn: externals.
Что вы думаете об этом макете? Особенно про использование SVN: Externals. Это не идеальное решение, но учитывая все плюсы и минусы, это лучшее, что мы могли придумать. Как бы вы это сделали?