その大部分は個人的な好みによるものです。
Gitのプロジェクトで行ったすべてを追跡します。特に、Gitはほとんどの種類のファイル(バイナリを含む)を十分に効率的に処理するためです。(組み込みのAltium SVNナンセンスの代わりに)
その主な理由の1つは、Dropboxが十分に安全であると顧客が感じていないことと、世界中でアクセスできるバックアップシステムが必要なことです。そこで、プライベートGitサーバーと暗号化されたバックアップシステムをセットアップしました。ボード、回路図、コード、ドキュメント、レポート、手動修正、すべてが追跡されます。
通常、ハードウェア用のリポジトリ、ソフトウェア用のリポジトリ、ファームウェア用のリポジトリを作成しますが、大規模で長時間実行される可能性のあるプロジェクトの場合は、小規模なサービスプロジェクト、例、または小さな実験の場合、すべてを1つのリポジトリに配置することがよくあります。カオスは大きくなりません。
Gitでは、サブリポジトリを使用して、ファームウェアをハードウェアプロジェクトに統合したり、個別に管理されているリポジトリであっても、その逆を行うことができます。
大規模なプロジェクトでは、バグ追跡システムを使用して問題と解決策を追跡することもよくあります。これもハードウェアとソフトウェアの場合、Mantisは無料で使用できる便利なツールです。
ハードウェアリビジョンの場合、Gerbers、またはそのリビジョンのGitハッシュでタグ付けされたものは何でも、それらのGerbersは、R01、02などによってフォルダー内の唯一の個別の「古い」バージョン管理されたものです。常にそれらを再生成しますが、結果ファイルであるため、Git自体でバージョン管理しないでください(実際、設計ソフトウェアは、プロダクションコンテンツの生成に関して決定的である必要があるため、または...)。
R02で起きていない(またはその逆)R01で興味深いことがある場合、ソースファイルを比較できる2つのGitハッシュがあり、心配はありません。
最後に、プロジェクトの概念的な例の1つに、「BoardPinout.h」ファイルをホストするハードウェアリポジトリがあります。このファイルは、リモートでバージョン管理されたファイルとしてファームウェアリポジトリに含まれています。ファームウェアリポジトリには、ソフトウェアリポジトリにリモートで含まれるいくつかのインターフェイス定義ファイルがあります。
広範な機能を変更せずにいくつかの信号を変更するたびに、HWプロジェクトはBoardPinoutを「更新」し、ファームウェアなどで更新および使用できるようになります。