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