パラレル開発と共有プロジェクト

パラレル開発には 2 つのタイプがあります。同時パラレル開発と、異なるプラットフォームまたはリリースに対応するためのパラレル開発です。

共有プロジェクトの使用時には、以下のタイプのパラレル開発が一般的に行われます。

同時パラレル開発

開発者は、パラレル開発を実行したり、プロジェクトの分離バージョンで作業したりするために、共有プロジェクトの working バージョンをチェックアウトすることができます。プロジェクトの working バージョンを使用すると、開発者が必要とする分離状態を実現できます。shared バージョンを使用すると、他の開発者がプロジェクトに対する作業を引き続き行えます。

例えば、共有プロジェクトで作業しており、完了するのに数日かかる変更を行っている場合、他の開発者による変更が自分の作業に干渉しないようにしたいと考えます。共有プロジェクトで作業する代わりに、その共有プロジェクトの working バージョンをチェックアウトします。プロジェクトのチェックアウト操作によって、元のプロジェクトと同じメンバーを含む working プロジェクトが作成されます。新規にチェックアウトされた working プロジェクトには、visible オブジェクトおよび shared オブジェクトが含まれています。分離された領域を維持するため、変更可能なオブジェクトを working プロジェクトから削除する必要があります。

共有プロジェクトの作業バージョンをチェックアウトするには、以下のステップに従います。

  1. プロジェクトをチェックアウトします。
  2. 割り当てられたタスクを収集するためのフォルダーを作成します。
  3. 該当するフォルダーをプロジェクトに追加します。
  4. プロジェクトを更新します。

これらの 4 つのステップにより、確実に working プロジェクトが変更から分離されます。更新を実行すると、visible オブジェクトと shared オブジェクトはプロジェクト内に存在しなくなります。

ユーザーが working プロジェクトですべての変更を完了したら、ビルド・マネージャーが共有プロジェクトを更新してその変更を取り込みます。

異なるプラットフォームまたはリリースに対応するためのパラレル開発

共有プロジェクトに対して、それぞれ状態が異なるいくつかのパラレル・バージョンが存在しており、それらのバージョンが複数のプラットフォームまたはリリースをサポートしている場合があります。

例えば、共有プロジェクト airplane-hp_2.0s (HP プラットフォーム上の airplane のリリース 2.0) に、airplane-hp_3.0s (将来のリリース)、airplane-hp_1.0p1 (旧リリースへのパッチ)、および airplane-aix_2.0s (現行リリースの異なるプラットフォーム) というパラレル・プロジェクトがあるものとします。バージョン hp_2.0s は共有されますが、他のパラレル・プロジェクトを共有する必要はありません。この例では、airplane-hp_1.0p1prep 状態であり、配信されるパッチのリストが含まれているはずです。

共有プロジェクトの階層は、platform 属性および release 属性を使用して保守されます。前の例を引き続き使用し、airplane プロジェクトが wingfuselage、および rudder というサブプロジェクトから構成されているものとします。airplane-hp_2.0s が更新されると、wing-hp_3.0s ではなく wing-hp_2.0s が選択されます。release 属性は、各サブプロジェクトの、一致するバージョンを識別します。

ただし、同じプラットフォームおよびリリース用の共有プロジェクト階層が複数ある場合は、誤ったサブプロジェクト・バージョンが更新操作で選択されるおそれがあります。固有のプロジェクト目的を使用することにより、そのような動作を回避して、同じプラットフォーム値およびリリース値を持つ階層をチェックアウトしてください。

例えば、以下のプロジェクト目的リストは、airplane プロジェクトにおける、共有プロジェクトの 3 つの別個の階層 (汎用共有プロジェクト、構造技術者のチーム用の共有プロジェクト、および電気技術者用の共有プロジェクト) をサポートしています。

Shared: shared:

Shared - structural: shared: structural

Shared - electrical: shared: electrical

3 つのチームのそれぞれに対して airplane プロジェクトのバージョンを作成するのではなく、3 つのチームが 3 つの別個の共有プロジェクトで作業します。3 つのプロジェクト階層すべてを定期的に更新して同期した状態を維持することができます。あるいは、他のチームの変更をどの程度の頻度で取り込むかを各チームが決定することもできます。


フィードバック