Sebagian besar tergantung pada preferensi pribadi.
Saya melacak semua yang saya lakukan untuk proyek di Git. Terutama karena Git menangani sebagian besar jenis file, bahkan biner, cukup efisien. (Sebagai pengganti built-in Altium SVN omong kosong)
Salah satu alasan utama saya untuk melakukannya adalah bahwa pelanggan saya tidak semua merasa Dropbox cukup aman dan saya membutuhkan sistem cadangan yang dapat saya akses di seluruh dunia, dengan juga beberapa konteks versi pada sebagian besar dari apa yang saya lakukan. Jadi saya mengatur server Git pribadi dan sistem cadangan terenkripsi dan berfungsi dengan baik. Papan, Skema, Kode, Dokumentasi, Laporan, Modifikasi Manual, semuanya dilacak.
Saya biasanya akan membuat Repositori untuk Perangkat Keras, satu untuk Perangkat Lunak dan satu untuk Firmware jika itu adalah proyek besar yang berpotensi berjalan lama, tetapi untuk proyek layanan kecil, contoh atau eksperimen kecil, saya sering memasukkan semuanya ke dalam satu repositori, karena hasilnya kekacauan tidak akan besar.
Di Git Anda dapat menggunakan sub-repositori juga untuk mengintegrasikan Firmware ke proyek Perangkat Keras atau sebaliknya, bahkan jika repositori dikelola secara terpisah.
Untuk proyek yang lebih besar saya juga biasanya menggunakan sistem pelacakan bug untuk melacak masalah dan resolusi, sekali lagi untuk HW dan juga SW, Mantis adalah yang bagus yang dapat digunakan secara gratis.
Untuk revisi perangkat keras yang saya hasilkan Gerbers, atau apa pun yang Anda, ditandai dengan Git Hash untuk revisi itu, Gerbers kemudian adalah satu-satunya hal yang diskrit "kuno" versi dalam folder oleh R01, 02, dll. Karena Anda tidak ingin regenerasi mereka sepanjang waktu, tetapi mereka menghasilkan file sehingga tidak boleh diversi dalam Git sendiri, sungguh (karena perangkat lunak desain Anda harus deterministik dengan menghasilkan konten produksi, atau yang lain ...).
Jika ada sesuatu yang menarik di R01 yang tidak terjadi di R02 (atau sebaliknya), Anda memiliki dua Git Hash yang dapat digunakan untuk membandingkan file sumber, jangan khawatir.
Sebagai catatan akhir, salah satu contoh konseptual proyek, akan memiliki repositori Perangkat Keras, yang juga menampung file "BoardPinout.h". File ini dimasukkan sebagai file versi jauh ke dalam repositori Firmware, yang memiliki beberapa file definisi antarmuka yang dimasukkan dari jarak jauh ke dalam repositori Perangkat Lunak.
Berarti setiap kali saya mengubah beberapa sinyal tanpa memodifikasi fungsionalitas luas proyek HW "memperbarui" BoardPinout, yang kemudian dapat diperbarui dan digunakan dalam Firmware, dan seterusnya.