私は、git リポジトリに保持する予定の新しいプロジェクトに取り組んでいます。CVSでこれを行う方法は知っていますが、gitには少し慣れていないため、いくつかの提案を使用できます。
このプロジェクトは、互いに通信し、ペアとしてパッケージ化された 2 つの組み込みデバイス用のファームウェアです。両方のデバイスに、コードの生産バリアントと製造バリアントがあります。両方のデバイス プロジェクトには、ハードウェアのさまざまなビット (LED の点滅など)、またはハードウェア関連のコード (ドライバーなど) を実行するためのサブ/兄弟プロジェクトが多数あります。ほとんどのコードはすべて共通です。
また、検証によって一方の変更が他方に送り返されるのを防ぐために、本番用と製造用のファームウェアを互いに独立して改訂できるようにする必要があります。
以下は私の既存のディレクトリレイアウトです。それは有機的に成長し、私が git を使用することになる前に大部分が敷設されました。より良い方法があれば、全体を再編成することを嫌いません。
- プロジェクトルート
- 含む
- ソース
- デバイスA
- 製造
- 製造業
- まばたき
- ボタン
- ...
- デバイスB
- 製造
- 製造業
- まばたき
- ボタン
- ...
私はブランチにプロダクションとマニュファクチャリングを配置したいと思っていますが、通常、特定の日に両方の作業を行っており、git では一度に 1 つのブランチしかアクティブにできません。そして、まばたきやボタンなどは実際には製造や生産ではないため、どうすればよいかわかりません。提案?
説明:
コードの製造バージョンは、製造ラインでハードウェアをテストするために使用されます。製品コードは、ハードウェアがテスト ステーションを通過した後に読み込まれ、顧客に出荷されます。この 2 つは少なくとも 75% は似ていますが、製造ラインを停止することなく生産コードのバグを修正できるように、独立している必要があります。
DeviceA と DeviceB はペアであるため、両方のコード セットがタグ付けされ、同じリリース バージョン番号で同時にリリースされます。