2012-11-30 17 views
5

私は2つのストリーム(Stream1、Stream2)を開発していて、これらの2つのストリームを1つのストリームにマージしたいとします。2つ以上のストリームをマージする方法

これは、私はそれを行う方法現在:

  1. が新しいストリームを作成します - Stream3。ストリーム3は、「保留中の変更」内STREAM1
  2. に作業領域の設定流量目標Stream3から(作業領域と呼ばれる)新しいrepositroyワークスペースを作成します
  3. STREAM2
  4. 使用可能であった変更セットのすべてを
  5. をSTREAM1 &のマージが含まれていますSTREAM1ではな​​く、STREAM2に今Stream3

を配信することができチェンジセットとして表示されます2つの以上のストリームをマージするか、よりエレガントな方法があるため、このベストプラクティスですか?

答えて

11

新しいストリームを作成しますか?必要なし。

リポジトリワークスペースを開くと、ストリームに含まれる「フローターゲット」というセクションがあります(「デフォルト」とみなされます)。

ストリームソース(マージしたいストリーム)を「現在」に設定すると、「保留中の変更」ビューにすべての変更セットまたは「受信」セクションが表示されます。ソースストリームからのベースライン。

これらの変更セットを受け入れ、ローカルのワークスペースにロードしてテスト(コンパイルとテスト)した後、をデフォルトのストリームに戻すことをお勧めします。

「受諾」フェーズは、マージが発生する場所です(自動または手動で競合が発生した場合)。 RTCにマージアルゴリズムは論理的に指定されたファイルの異なるバージョンを選択するのClearCaseに見出される、すなわち、所与の構成(ストリーム、ワークスペース)と同じである

、検索:
this threadで述べたように2つのバージョンの共通の祖先とし、3方向マージを行います。
ワークスペースの「フローターゲット」を変更することは、ワークスペースにマージするブランチ(ストリーム)を指定するRTCの方法です(cleartool findmergeは同じ柔軟性を提供します)。
ClearCaseとRTCは異なる共通祖先アルゴリズムを使用することに注意してください。

最後の手順では、「フローターゲット」セクションに戻り、デフォルトのストリームを「現在の」ストリームに戻すことを前提としています。

私はこの1つに、このワークフローを好む:

merge

ここブレントは、マージの結果をお届けするために、現在のストリームとして設定します。これは別のワークフローで、「How to keep your streams flowing smoothly in Rational Team Concert 3.0.1」にも記載されています。

+0

次に、リポジトリワークスペースから新しいストリームを作成しますか?私が新しいストリームを作成しているのは、ストリーム2(またはStream1のStream2)のStream1からの変更セットが欲しくないからです。したがって、新しく作成されたストリームにはマージが含まれます。これは悪い習慣ですか? –

+2

@ user470184 "悪い習慣":はい。 'ストリームA 'から'ストリームB'にマージすると、新しいストリームを作成しません。 'ストリームB 'はそれらの変更セットを受け取ることを意味します。それが、マージがすべてについてです。あなたが 'Stream3'を' Stream2'にマージする前に、いくつかの開発者との共同作業をしたい場合、マージが非常に複雑な場合にのみ新しいStreamを作成することになりました。可能な場合は避けてください。 – VonC

関連する問題