git поддерево против подмодуля - встроенный код - общие драйверы и промежуточное ПО между печатными платами - PullRequest
0 голосов
/ 14 января 2020

Мне интересно, буду ли я использовать git субмодулей или поддеревьев в этом конкретном c сценарии использования:

Мы иметь много устройств (семейств продуктов), которые содержат несколько печатных плат с микроконтроллерами (код c), которые управляют двигателями и измеряют различные физические значения через датчики, и они подключены через сетевую связь (CAN). В одном продукте мы используем несколько разных печатных плат, но нередко одна и та же печатная плата встроена в машину с другим кодом приложения.

Мы не хотели бы использовать одно монорепо, потому что кодовая база велика. По сути, идея состоит в том, чтобы организовать код на уровне печатной платы, потому что мы обычно работаем на одной плате одновременно, а спецификация приложения и кода печатной платы c других плат не имеет значения, когда мы работаем с этой указанной c платой. Другое преимущество состоит в том, что таким образом история хранилища может быть более чистой.

Если у нас есть только хранилище PCB Speci c, тогда это будет проблемой, потому что мы будем дублировать много кода. Пример: каждая плата обменивается данными через CAN или использует SPI для чтения данных датчика. Поэтому имеет смысл собрать эти общие части в одно или несколько дополнительных хранилищ. Вопрос: как поделиться содержимым этих общих репозиториев в git? (например, репозитории драйверов или промежуточного программного обеспечения)

Примечание: многие люди рекомендуют поддерево, но в основном в тех случаях, когда вам просто нужна библиотека из github и вы на самом деле не планируете возвращать содержимое sh назад в исходный удаленный репозиторий.

...