ストリームの新しいスナップショットを作成しました。この結果、ストリームのコンポーネントの 1 つが新しいベースラインを持つようになりました。この新しいベースラインは、新しく作成されたスナップショットと同じ名前です。なぜこれが起こったのですか?
3 に答える
スナップショットは、ストリームで配信された最新の変更セットのスナップショットを取得します。
「スナップショットとベースラインの違い」で述べたように:
ワークスペースまたはストリームのいずれかの状態のスナップショットを作成できます。
これにより、必要に応じてベースラインが自動的に作成されます。つまり、そのワークスペース/ストリーム内のコンポーネントの現在の構成が現在ベースラインに取り込まれていない場合です。ワークスペース コンポーネントでベースラインを作成すると、そのコンポーネントからワークスペースによって現在選択されているソース バージョンがベースライン化されます。
スナップショットまたはベースラインが作成されると、任意の場所で使用できます (つまり、スナップショットが作成されたワークスペースまたはストリームに「関連付けられる」ことはありません)。
ワークスペースからストリームへの「配信」操作によって、そのワークスペースのベースラインがストリームのベースライン履歴に表示されることは事実です。
ワークスペースとストリームのベースライン履歴が分岐したときに発生する可能性がある混乱のため、「配信」操作はベースラインではなく変更セットのみを配信する必要があると考える人もいます。
(特に、必要に応じて、ストリーム内にベースラインを明示的に作成することをお勧めします)。
このアプローチの利点の 1 つは、スナップショットとベースラインが一貫したセマンティクスを持つことです (現在、ベースラインは配信操作の影響を受けますが、スナップショットは影響を受けません)。
私はこれに対する答えを知っていると思います。新しいベースラインが作成されたストリーム内のコンポーネントに変更セットが配信されました。したがって、新しいスナップショットを作成すると、このコンポーネントの新しいベースラインが作成されました。これは、新しい変更セットが含まれていたため、元のベースラインとは異なっていたためです。
この場合、すべてのベースラインが作成され、一度だけ使用されます。数年後、多くの開発者が Jenkins を使用して dev/int/prod のバリエーションを構築し、それらの単体テストを行った結果、スナップショットを 1 つずつ生成する以外には使用されなかった数十万のベースラインができました。二度と見ず、それ以上の価値を提供することはなく、テラバイトのディスク容量を食いつぶすだけです.
正しい答えは別の SCM ツールを使用することですが、管理は技術的ではなく、Rational の営業担当者は優れた製品を販売しましたが、これは私たちの開発ニーズに完全には適合しませんでした。毎回新しいベースラインなしでストリームからスナップショットを作成すると、これが私たちのニーズにより適したものになります。