複数ストリーム プロジェクトでアクティビティをデリバーすると、アクティビティ変更セット内のバージョンがターゲット ストリーム内のバージョンにマージされます。マージされるのは、チェックインされたバージョンだけです。
複数の開発者が作業を並行してデリバーすることは可能です。ただし、あるエレメントがほかのチーム メンバーのデリバー操作によってチェックアウトされている場合、そのエレメントのデリバー操作が完了するか取り消されるまで、そのエレメントへの変更をデリバーできません。
アクティビティ オブジェクト
アクティビティ オブジェクトが開発ストリームからターゲット ストリームに移動することはありません。代わりに、マージの結果作成されたバージョンを識別するために、統合アクティビティが作成されます。
デリバー操作
デリバー操作は次の順序で進行します。
- デリバー操作を開始すると、開発ストリームが[デリバーが実行中]の状態になります。
- まだターゲット ストリームにデリバーされていないアクティビティの変更セット内のバージョン間の依存関係をチェックします。
- 順次、各開発ストリーム内のディレクトリを評価します。バージョンをチェックアウトし、必要に応じて変更内容をターゲット ストリームにマージします。ターゲット ストリームで予約済みのディレクトリ チェックアウトを検出した場合、デリバー操作を中止します。マージに成功したディレクトリは、そのまま保持されます。
- マージを必要とする各エレメントをチェックアウトします。(たとえば、ほかのチーム メンバーのデリバー操作によってすでにチェックアウトされているために) チェックアウトできないエレメントを検出した場合、そのエレメントをスキップして、残りのエレメントのチェックアウトを試みます。
- エレメントをチェックアウトできない場合、デリバー操作は次のステップに進みません。この場合、2 つの選択肢があります。
- 他の開発者がデリバー操作を完了するか取り消すまで待ってから、デリバー操作を再開します。ただし、進行中のデリバー操作がある場合、開発ストリーム内で作成した新しいバージョンは、次のデリバー操作までデリバーされません。
- デリバー操作を元に戻し、アクティビティの処理を続行します。
- チェックアウト可能なすべてのエレメントを正常にチェックアウトしてから、各エレメントをマージします。マージの競合が検出された場合は、差分マージが開始し、入力内容を依頼します。
- すべてのマージが完了すると、インテグレーション ビューで作業のビルドとテストを行うように指示するメッセージを表示します。
- 操作を正式に完了するまで (complete コマンドを発行するまで)、デリバー操作は[デリバーが実行中]状態のままです。
デリバー操作を完了するために、次の処理を実行します。
- マージ結果をターゲット ストリームにチェックインします。
- ストリームの状態は [完了] に変更になります。