Одна из вещей, которые мне нравятся в том, как я настроил Subversion, - это то, что у меня может быть один главный репозиторий с несколькими проектами. Когда я хочу работать над проектом, я могу проверить только этот проект. Как это
\main
\ProductA
\ProductB
\Shared
затем
svn checkout http://.../main/ProductA
Как новый пользователь git, я хочу изучить передовой опыт в этой области, прежде чем переходить к конкретному рабочему процессу. Из того, что я читал до сих пор, git хранит все в одной папке .git в корне дерева проекта. Так что я мог сделать одно из двух.
- Создайте отдельный проект для каждого продукта.
- Создайте единый масштабный проект и храните продукты в подпапках.
Между продуктами существуют зависимости, поэтому единый масштабный проект кажется подходящим. Мы будем использовать сервер, на котором все разработчики смогут делиться своим кодом. У меня уже есть эта работа над SSH и HTTP, и эта часть мне нравится. Однако размер репозиториев в SVN уже составляет много ГБ, поэтому перетаскивание всего репозитория на каждой машине кажется плохой идеей - тем более, что нам выставлен счет за чрезмерную пропускную способность сети.
Я предполагаю, что репозитории проектов ядра Linux одинаково велики, поэтому должен быть правильный способ справиться с этим с помощью Git, но я просто еще не понял этого.
Есть ли какие-либо рекомендации или лучшие практики для работы с очень большими многопроектными репозиториями?