2012-11-30 93 views
5

如果我有兩個流(稱爲Stream1,Stream2)的開發,我想將這兩個流合併成一個流。如何合併兩個或多個流

這是目前我如何做到這一點:

  1. 創建一個新的流 - 流3。流3將包含流1 &流2的合併
  2. 從流3
  3. 工作空間1的
  4. 集流目標流1
  5. 在「待定更改所有的變更集是能獲得的創建一個新的repositroy工作區(稱爲工作空間1)在Stream1中但不在Stream2中現在應該顯示爲可以傳送到Stream3的變更集

這是合併2個或更多流的最佳實踐還是有更優雅的方法?

回答

11

創建一個新的流???沒必要。

當您打開回購工作區時,您有一個名爲「Flow targets」的部分,其中包含您的Stream(表徵爲「Default」)。

將流源(您想要合併的流)添加到它,將其設置爲「當前」,您將在「待定更改」視圖中看到包含所有更改集的「傳入」來自源流的基線。

這個想法是讓你接受這些變更集,將它們加載到你的本地工作區並測試它們(編譯和測試),然後將它們送回它們回到默認流。

「接受」階段是合併發生的地方(自動或手動發生衝突)。
this thread提到:

在RTC合併算法是邏輯上相同的ClearCase,即發現,在給定的配置(流,工作區),其選擇一個不同的版本給定文件的,發現這兩個版本的共同祖先,然後做3路合併。
更改工作空間的「流動目標」只是RTC的一種方法,可讓您指定要合併到工作空間中的分支(流)(cleartool findmerge爲您提供相同的靈活性)。
請注意,ClearCase和RTC使用不同的通用祖先算法。

最後一步假設您返回到「Flow目標」部分,並將默認Stream設置爲「current」。

我喜歡這個工作流程,這一個:

merge

這裏布倫特會,以提供合併的結果設置爲當前的目的地流。這是另一種工作流程,也在「How to keep your streams flowing smoothly in Rational Team Concert 3.0.1」中進行了描述。

+0

然後從存儲庫工作區創建一個新的流?我創建新流的原因是我不希望Stream1中的Stream1(或Stream1中的Stream2)中的更改集。所以新創建的流將包含合併。這是一種不好的做法嗎? –

+2

@ user470184「不良做法」:是的。您從「流A」合併到「流B」時不*創建新的流。 「流B」是*表示接收這些變更集。這就是合併的全部內容。如果合併過於複雜,您希望與多位開發人員協作完成合並,然後將「Stream3」合併到「Stream2」,那麼您只能創建一個新的Stream。如果可能,避免這種情況。 – VonC