2014-05-01 13 views
2

我有一個靜態視圖,檢查出我正在處理的一些文件。其他人檢查了一些我想添加到我的視圖中的更改。所以,我在我的觀點上運行更新。事實證明,他們更改了我檢出的文件。現在我的視圖只剩下部分更新,甚至可能不會編譯,直到我找出哪個簽出的文件需要手動合併。爲什麼清除靜態視圖不會更新簽出的文件?

我知道我可以保留我的結帳,但是阻止其他開發者檢查他們已完成的東西。

據:http://publib.boulder.ibm.com/infocenter/cchelp/v7r0m1/index.jsp?topic=/com.ibm.rational.clearcase.cc_ref.doc/topics/ct_update.htm

update does not apply to files or directories that are checked out to the current view.

因此,它似乎工作如心房/理性/ IBM民間想要的工作。我不明白它爲什麼這樣工作。

有什麼方法可以更新我的靜態視圖,並自動將更改合併到我的檢出文件?

回答

1

Is there any way to update my static view and also automatically merge changes into my checked out files?

不是真的,因爲簽出的文件是文件在本地修改,cleartool update嘗試很難不觸及任何本地文件。

您簽出的文件是由element * CHECKEDOUT選擇規則選擇的,這意味着任何更新都不會更新它(它已經選擇了正確的版本)。

您需要檢入這些文件(觸發合併,類似於「To merge the latest version to a hijacked file」),然後再次檢出它們。

但是,這並不總是可行的,因爲它會使正在進行的工作可見(簽入)到同一分支中的其他視圖。

唯一的另一種解決方案是計算簽入版本和簽出文件之間的補丁,並應用該補丁cleartool lsco -all -s -cview | xargs cleartool diff -diff,難以區分簽出版本和最新版本。

+0

我明白你在說什麼,但我不明白該命令應該如何工作。我讓lsco找到簽出的文件,但我沒有得到diff命令來進行合併。我認爲xargs命令會在diff命令的末尾放置一個文件?差異需要2個文件名才能區別?我在windows中工作,所以沒有xargs,但我可以做'for/f%i in('cleartool lsco -all -s -cview')do @cleartool diff -diff%i「。該差異命令吐出「cleartool:錯誤:至少有兩個對象必須提供比較。」有沒有一個命令做檢查完成的同樣的事情? –

+0

@DanielKnueven「我沒有得到差異命令做合併」:它不是在那裏做一個合併,它是在那裏計算一個補丁,你將不得不應用。難點在於找到合適的版本(CHECKEDOUT vs. LATEST)以區分它們。關於xargs,你可以在Windows上使用GNU所有的Unix命令(不需要Cygwin):https://github.com/bmatzelle/gow/wiki – VonC

相關問題