Как вы настраиваете свои репозитории, полностью зависит от вас и как это работает для вашей организации.Я видел несколько подходов к этому, и за эти годы не нашел твердого совета.
Редактировать
Эта последняя часть была написана плохо.Под «отсутствием твердого совета» я понимал, что ни один из советов не говорит: «Вы должны структурировать свой репозиторий следующим образом ...» Весь совет представлен как «это то, что работает для нас», и каждый из этих способоввыкладка репо работает для них , и макеты варьируются.Так что я действительно имел в виду «нет твердого совета, который применим к каждой организации».
end edit
Однако, ваш репозиторий структурирован очень близко к нашему.У нас есть сотни проектов и несколько узлов от корня.Все они находятся в одном репозитории.
Как и у вас, у нас есть общий каталог, в котором хранятся проекты с общими функциями, которые мы добавляем в качестве ссылки на проекты в решениях в других узлах.Это то, что мы придумали после многих реструктуризаций в процессе проб и ошибок, и это hth, который работает для нас, поэтому я бы дал вам большой обзор вашей структуры.
Чтобы ответить на вашконкретные точки
- Я думаю, что у вас должен быть один репозиторий со структурой, которую вы описали, выходящей из ствола.
- Это позволяет вам получить код за одну проверку, гарантируя, что все легкоподдерживать и поддерживать в актуальном состоянии.Просто добавьте ваши ссылки, поскольку все находятся в одном репо.
- Наконец, наше общее правило: всегда добавляйте вашу ссылку на проект, где это необходимо, и НЕ проверяйте в двоичных файлах, КРОМЕ ТОГО, где вам нужно общееdll и у вас нет источника (например, компонента 3-ей части).Например, у нас есть Microsoft.AntiXss dll и Idunno.Anti-Csrf dll в «общих dll» в нашей «общей» папке.
В качестве примечания, эта структура также привела кпростое время настройки сервера сборки.Когда мы настроили наш сервер сборки CruiseControl.NET, он сделал одну проверку и собрал все, указав на файлы .sln, как в Visual Studio.имея его в одном репо и следуя рекомендациям, которые я только что изложил, очень легко настроить наши сборки.