How do folks develop PCBs, firmware, host-software, maybe even ASICs and track versions of each? Can these various components be effectively tracked in a single repository? Specifically:
The timelines for design cycles vary greatly – it can range from mere minutes for host software changes, builds, and tests, to hours for FPGA synthesis, and days to weeks for PCBs. ASIC development can span months to years.
Artifacts: in software we have mostly text (we can diff), we can build quickly or cache builds or run incremental builds; none of that works in the physical world. Is it advisable to check in a mechanical or electrical engineering design project into a git repository?
What do folks do, what is your experience, what works, what does not?