Привет всем!
Я python разработчик в небольшом стартапе, который занимается торговлей на крипторынках.
Разрабатываю на удаленных linux машинах(в терминале, используя vim и tmux в основном).
Как известно гит репозитории - это очень классная штука. И хорошо, когда их много)
Так вот, у меня есть проект, который вырос внутри себя так, что логически его можно разделить на несколько(больше чем три) отдельных гит репо. Однако все они используют общий код. Который должен быть общим, а не дублирующимся. Сейчас это выглядит как то так:
repo/
├── lib/
| └── codebase1/
| └── .../
├── progect1/
| ├── lib/ (symlink of lib)
| ├── modyle1.py
| └── .../
├── progect2/
| ├── lib/ (symlink of lib)
| ├── modyle11.py
| └── .../
└── progect3/
├── lib/ (symol link of lib)
├── modyle111.py
└── .../
Кажется правильным все разделить на отдельные репозитории: lib, progect1, progect2, …
Но как это сделать правильно?
Сейчас достаточно просто, разрабатывая какую то фичу в одном из проектов(или исправляя), каждый раз не нужно делать каких то действий для того, чтобы поддерживать весь код: ты исправляешь общий код в lib, и во всех проектах внутри ссылаешься на этот общий код. Написал, запустил, проверил, переписал, запустил… Все просто и быстро.
Но сейчас это все же кажется немного нелогично: зачем одному проекту жить под одной крышей со всеми другими, которые ему никак не нужны? Зачем мне клонировать все на новую машину, когда мне нужна только отдельная часть?
В общем, суть в чем: подскажите как правильно разделить подобную репу по отдельным проектам так, чтобы можно было бы не очень потерять в удобстве и скорости разработки.
Навярняка есть удобные инструменты и общие правила, о которых я просто не знаю)
Когда то пробовал submodules. Получилось не очень. Вероятность что-то забыть и запутаться крайне велика. Может не так использовал конечно.