Я отвечаю за несколько (довольно маленьких) программ, которые используют много кода через разные библиотеки. Мне интересно, какой лучший макет репозитория должен разрабатывать различные прорграммы (и библиотеки) и поддерживать синхронизацию библиотек во всех программах.
Для аргумента предположим, что есть две программы с двумя библиотеками:
- Program1
- Library1
- Library2
- Program2
- Library1
- Library2
Естественно, исправления ошибок и улучшения для библиотек должны (в конечном итоге) сливаться со всеми программами. Поскольку библиотеки работают во время работы над различными программами, использование ветки поставщика, но я не уверен, что лучший макет для этого быть.
Я думал что-то вроде:
- Библиотеки
- Библиотека1 (предок)
- Библиотека2 (предок)
- Program1
- Код программы 1
- Библиотека1 (ветвь поставщика)
- Библиотека2 (ветка поставщика)
- ...
Тогда скажем, при разработке Program1 некоторые изменения внесены для Library2, я объединю их обратно в часть Libraries в репозитории и объединим их оттуда ко всем другим программам по желанию.
Слияние с другими программами не всегда может произойти немедленно, люди, работающие над Program2, могут быть близки к выпуску и, скорее, закончить это, создать тег и только затем обновить все библиотеки.
Я немного обеспокоен тем, что через некоторое время произойдет много слияний и немного головной боли в обслуживании, но на самом деле я не вижу гораздо лучшего решения.
И снова это кажется довольно распространенным случаем для меня, поэтому я подумал, что просто попрошу сообщество stackoverflow, какой лучший макет репозитория достигнет этого?