ストリームのタイプは、想定されるその使用法、安定性、および変更フローに従って割り当てます。
ストリームタイプにはほかに、バーチャルタイプとタスクタイプがあります。 これらのタイプについて詳しくは、「タスクストリーム」および「バーチャルストリーム」を参照してください。
安定性に関しては、開発ストリームはそのメインラインストリームの親より低く、リリースストリームはそのメインラインストリームの親より高いことが想定されます。 変更フローは、マージの場合は下方(マージダウン)、コピーの場合は上方(コピーアップ)であることが想定されます。 「マージダウン、コピーアップ」というこの手法により、マージは必要なときにのみ実行され、その2つのストリームが含まれる処理では必ず実行されます。
マージとは、別のストリームの変更を使用中のストリームに組み込むことであり、ストリーム間の衝突解決が必要となる場合があります。 コピーとは、反映元のストリームを複製し、それを反映先のストリームへ伝播することです。 次の図は、基本的なストリーム階層を示しています。安定性のより低いストリームには変更がマージダウンされ、安定性のより高いストリームにはコピーアップされます。
ストリームのタイプ | 安定性 | マージ | コピー |
---|---|---|---|
|
ポリシー(例: すべてのコードビルド)に従えば安定 |
子から(リリースストリームから、または開発ストリームへ) |
子へ(リリースストリームへ、または開発ストリームから) |
|
適用外、ストリームのフィルタリングに使用 |
適用外 |
適用外 |
|
不安定 |
親から |
親へ |
|
不安定 |
親から |
親へ |
|
安定性が高い |
親へ |
親から |