2012-08-26 80 views
1

在我的項目中,我們有些情況下從主流中爲Beta和候選版本等重要里程碑分支。UCM Clearcase中的「交付到替代目標」和「合併」之間的區別

一旦我們將構建發佈給客戶,我們將代碼合併回主流。這是一個簡單的交付操作,沒有rebase。

現在,當我們需要將一些非常舊的流(幾乎已過時)合併到主流中時,也會出現這種情況。我已經發現了兩個方案可供選擇:

1)交付到替代目標

2)合併管理

選項1)是不允許在我們的項目。

我的問題是:

兩者有什麼和爲什麼要一個優於其他的有什麼區別?

回答

0

簡單:

  • deliver to alternate target(或deliver to default對這個問題)是一個UCM合併,它必須遵循的規則UCM,特別是關於活動的相關性,而且還涉及流(你不應該deliver從父流了孩子流,這應該是一個rebase

  • Merge Manager是一個普通的ClearCase的合併,兩個分支之間(而不是流),它可以從分支A傳送文件的任何子集分支B,而不必遵循任何merge workflow

我平時看到的「合併管理器」選擇了其中UCM防止因交付的神祕「活動依賴」的原因的情況下,即使是沒有的。
有關這種情況的示例,請參閱「Clearcase UCM - Cross delivering vs. delivering upwards?」。

說「deliver to alternate target」是不允許的,意味着只有deliver to default是,這意味着你必須遵循由層次結構建立的合併工作流。
UCM合併帶來了baselines之間的合併更好的可視化,這意味着您知道全部給定組件合併的文件。

但是,合併管理器是一個純合併,它可以涉及任何兩個分支和任何兩個(或更多)文件。該合併沒有更高的可見性:它是一個逐個文件的操作(而不是一個組件 - 或一組連貫的文件 - 一個)。

+0

你是說我們可以在合併管理器中忘記分支關係嗎? – msiyer

+0

@msiyer剛剛編輯我的答案,以解決這一問題 – VonC

+0

感謝VonC的幫助。 – msiyer