Wydaje mi się, że osobne repo per projekt - branche nie są do tego. Rozumiem, że branche różniłyby się "plikami konfiguracyjnymi/makefilami"? Wtedy jakbyś chciał porównać jakieś branche zawsze w różnicach miałbyć dużo rzeczy właśnie od konfiguracji co nie jest potrzebne i tak samo przy mergowaniu zmian.
Jest jeszcze opcja, żeby ujednolicić system budowania na wspólny - nie wiem jaki macie system budowania itp - więc trudno mi to polecić - tu będzie sporo pracy. Wtedy np. w makefilu/CMake dajesz do kompilacji inne moduły pod konkretne procki, ale musisz zapewnić, że interfejsy są takie same.
Jeśli masz jakieś części wspólne/uniwersalne moduły dla kilku projektów - można je wydzielić do osobnego repozytorium (to bardzo polecam) - doczytaj o "git submodules" lub o "subtree" (oba mają różne cechy - trzeba dobrać pod projekt, co się lepiej sprawdzi) - dodatkowo to wymusi na was lepszą organizację katalogów/wydzielenie plików konfiguracyjnych itp.
Nie wspomniałeś, czy "różne mikrokontrolery" to są totalnie różne rodziny (np i AVR i STM32), czy mają taki sam system budowania, czy używasz CDT, czy własnych makefile/CMake itp. Może wyjść nawet tak, że jeśli jest to jedna rodzina STM32 wystarczy dobrze ogarnąć eclipsowe "build targety" i zamknie się to we wspólnym jednym projekcie dość łatwo (i żeby było "śmiesznie" wcale nie wyklucza się to z submodułami itp).
|