在UCM中,有時我們可能需要爲了實驗目的而進行活動。如何創建示例活動並在它不起作用時拋出它?
它可能包含也可能不包含在最終交付中。
如果我們不想交付,我們不會將其交付給整合流。
但這裏的問題是依賴性,有時候實驗活動會依賴於其他活動,我們被迫提供它。
有沒有什麼辦法可以安全地做實驗而沒有任何副作用?
是否可以刪除活動及其相應的更改集,就像它不是以明文本身的方式添加一樣?
在UCM中,有時我們可能需要爲了實驗目的而進行活動。如何創建示例活動並在它不起作用時拋出它?
它可能包含也可能不包含在最終交付中。
如果我們不想交付,我們不會將其交付給整合流。
但這裏的問題是依賴性,有時候實驗活動會依賴於其他活動,我們被迫提供它。
有沒有什麼辦法可以安全地做實驗而沒有任何副作用?
是否可以刪除活動及其相應的更改集,就像它不是以明文本身的方式添加一樣?
最安全的方法是在自己的UCM流中分離出實驗。
因爲如果你不這樣做,你可以做部分從同時提供了之前被強迫交付所有你的活動:見「Clearcase UCM - Cross delivering vs. delivering upwards?」。
其他依賴性問題是基於文件的(當您的活動要基於在實驗活動中創建的版本進行交付時)。這是另一個在其自己的Stream中分離所述實驗的理由。
而這會使刪除一個相當危險的活動。
刪除一個活動只有在它爲空時纔有可能,這意味着如果你已經將所有版本移動到另一個活動中(這不會解決任何問題),或者它們是rmver
。
你應該避免刪除一個版本(在ClearCase UCM中太危險了)。
通過專門的Stream,您一定會提供所有活動,或者交付任何活動。
通過塔米爾肯定提到的subtractive merge是不是一個解決方案,尤其是當你有很多活動取消(即當你已經被迫提供許多活動)。
您確實有腳本取消某個活動(請參閱「Reverse Changset of an activity in Clearcase」),但這會污染您的歷史記錄,並且會有許多版本的附加版本。
此外,你可以做減法合併。然而這很危險,你應該非常小心地做。你可以在這裏找到更多的信息: http://www-01.ibm.com/support/docview.wss?uid=swg21123001
見http://stackoverflow.com/questions/4257402/how-do-i-undo-a-checkin-in-clearcase-remote-client/4259212#4259212所有我詳細說明爲什麼'rmver'是一個壞主意的鏈接。 – VonC
我不想提及cset.pl腳本,因爲它很容易破壞代碼和歷史記錄。 –