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