그것은 대부분 개인 취향에 달려 있습니다.
Git에서 프로젝트를 위해 내가하는 모든 것을 추적합니다. 특히 Git은 대부분의 파일 형식, 심지어 바이너리까지도 충분히 효율적으로 처리하기 때문입니다. (내장 Altium SVN 넌센스 대신)
내 주된 이유 중 하나는 고객이 Dropbox가 충분히 안전하다고 느끼지 않고 전 세계에서 액세스 할 수있는 백업 시스템과 대부분의 작업에 대한 일부 버전 관리 컨텍스트가 필요하기 때문입니다. 그래서 개인 Git 서버와 암호화 된 백업 시스템을 설정하고 대우를했습니다. 보드, 회로도, 코드, 문서, 보고서, 수동 수정 등 모든 것이 추적됩니다.
나는 일반적으로 하드웨어, 하나는 소프트웨어, 하나는 펌웨어를 위해 잠재적으로 오래 실행되는 프로젝트 인 경우 작은 저장소를 만들지 만 소규모 서비스 프로젝트, 예제 또는 작은 실험의 경우 결과로 인해 종종 하나의 저장소에 모두 넣습니다. 혼돈은 크지 않을 것입니다.
Git에서는 하위 리포지토리를 사용하여 펌웨어를 하드웨어 프로젝트 또는 다른 방식으로 관리 리포지토리로 통합하더라도 펌웨어를 하드웨어 프로젝트에 통합 할 수 있습니다.
대규모 프로젝트의 경우 일반적으로 버그 추적 시스템을 사용하여 문제와 해결 방법을 추적합니다. 다시 SW뿐만 아니라 HW에서도 Mantis는 무료로 사용할 수있는 좋은 도구입니다.
하드웨어 개정판에 대해 Gerbers 또는 그 개정판에 대해 Git Hash로 태그가 지정된 모든 것을 생성 한 경우, Gerbers는 R01, 02 등으로 폴더에있는 유일한 "구식"버전 화 된 항목입니다. 항상 파일을 재생성하지만 결과 파일이므로 Git 자체에서 버전을 지정해서는 안됩니다. 실제로 디자인 소프트웨어가 프로덕션 컨텐츠를 생성하거나 결정해야하기 때문입니다 ...
R01에서 발생하지 않는 흥미로운 R01 (또는 다른 방법)이 있다면 소스 파일을 비교할 수있는 두 개의 Git Hashe가 있으며 걱정할 필요가 없습니다.
마지막으로, 프로젝트의 하나의 개념적 예는 "BoardPinout.h"파일을 호스팅하는 하드웨어 저장소를 갖습니다. 이 파일은 펌웨어 리포지토리에 원격으로 버전이 지정된 파일로 포함되며 여기에는 소프트웨어 리포지토리에 원격으로 포함되는 몇 가지 인터페이스 정의 파일이 있습니다.
광범위한 기능을 수정하지 않고 몇 가지 신호를 변경할 때마다 HW 프로젝트가 BoardPinout을 "업데이트"한 다음 펌웨어에서 업데이트 및 사용할 수 있습니다.