Більшість це зводиться до особистих уподобань.
Я відслідковую все, що роблю для проекту в Git. Тим більше, що Git обробляє більшість типів файлів, навіть бінарних, досить ефективно. (Замість вбудованої дурниці Altium SVN)
Однією з моїх головних причин цього є те, що всі мої клієнти не вважають, що Dropbox є достатньо безпечним, і мені потрібна резервна система, до якої я можу отримати доступ по всьому світу, а також деякий контекст версій щодо більшості того, що я роблю. Тож я створив приватний сервер Git і зашифровану систему резервного копіювання, і це спрацює приємно. Дошки, схеми, код, документація, звіти, ручні зміни, все відстежується.
Я б зазвичай створив сховище для апаратного забезпечення, одне для програмного забезпечення та одне для прошивки, якщо це великий, потенційно тривалий проект, але для невеликих сервісних проектів, прикладів або невеликих експериментів я часто розміщую все це в одному сховищі, оскільки результат хаос не буде великим.
У Git ви можете використовувати підрепозиторії, а також для інтеграції вбудованого програмного забезпечення в проект апаратного забезпечення або навпаки, навіть якщо це окремо керовані сховища.
Для великих проектів я також часто використовую системи відстеження помилок, щоб відстежувати проблеми та рішення, знову ж таки для HW, а також SW, Mantis - це приємний, який можна використовувати безкоштовно.
Для апаратних версій я генерую Gerbers, або будь-який інший ви, позначений Git Hash для цієї редакції, ці Gerbers тоді є єдиними дискретними "старомодними" версіями в папках на R01, 02 тощо. Оскільки ви не хочете регенеруйте їх весь час, але вони отримують файли, тому насправді не слід впорядковувати у самій Git (адже ваше програмне забезпечення для дизайну повинно бути детермінованим із створенням виробничого контенту чи ще ...).
Якщо в R01 є щось цікаве, що не відбувається в R02 (або навпаки), у вас є два Git хеші, з якими ви можете порівнювати вихідні файли, без побоювань.
На завершення, один концептуальний приклад проекту мав би сховище апаратури, яке також розміщує файл "BoardPinout.h". Цей файл включений як файл з віддаленою версією у сховище прошивки, який має декілька файлів визначення інтерфейсу, які віддалено включаються у сховище програмного забезпечення.
Що означає щоразу, коли я змінюю декілька сигналів, не змінюючи широкої функціональності, проект HW "оновлює" BoardPinout, який потім може бути оновлений і використаний у прошивці тощо.