在ClearCase中,由於幾個開發人員之間的工作流程不同,我們在兩個分支上結束了一些文件,即使它們是相同的;這在rebase/merge中會導致不必要的頭痛。首先,我需要找到BRANCH_1和BRANCH_2上相同的元素列表(文件/目錄)。有沒有辦法找到這個列表?在ClearCase中查找相同的元素
我知道如何使用Report Builder(和cleartool腳本)並找出兩個標籤之間的區別,但這似乎並沒有幫助。
任何幫助,將不勝感激!
在ClearCase中,由於幾個開發人員之間的工作流程不同,我們在兩個分支上結束了一些文件,即使它們是相同的;這在rebase/merge中會導致不必要的頭痛。首先,我需要找到BRANCH_1和BRANCH_2上相同的元素列表(文件/目錄)。有沒有辦法找到這個列表?在ClearCase中查找相同的元素
我知道如何使用Report Builder(和cleartool腳本)並找出兩個標籤之間的區別,但這似乎並沒有幫助。
任何幫助,將不勝感激!
就你而言,我們談論的是同一個文件,在不同的分支上有兩個相同的版本。
檢測那些最簡單的方法是通過2個快照視圖(快照因爲更快爲只讀訪問比動態視圖),並且通過使用一個簡單的比較工具(如kdiff3例如)
對於每個相同的文件中檢測,然後可以在兩個不同分支的兩個版本之間繪製合併箭頭。請參閱「Merge arrow in clear case」。
即合併箭頭,對於ClearCase足以不考慮(即忽略)在下一次定期ClearCase的合併過程中,這些相同的文件。
的OP指出:
兩種觀點有顯示爲相同的,因爲快照必須爲每個取景副本上
branch1
一些常見的文件。
我需要的僅僅是存在於不同分支但內容相同的文件。
同樣,cleartool descr -fmt
方法是有用的:它可以讓你描述一個元素與他們充分擴展路徑(與%n
:/main/x/branch1/y
):這種方式,對於存在於兩種觀點並已發現「文件相同」的比較工具,你可以,如果發現有2條不同的擴展路徑名查詢,或與同一個(在這種情況下,你沒有做任何事情來該文件)
原創回答:不同分支上的兩個相同的文件「在rebase/merge中造成不必要的頭痛」通常是邪惡雙胞胎。
official IBM documentation about Evil Twin確實建議一個簡單的cleartool find(你也有一個old 2010 video on it)。在視圖
branch1
branch2
這將顯示元素的全名:
與fmt_ccase相結合,可以發射2個搜索與descr -fmt "%En %On\n"
發現,連同他們的oid(object id):2個同名但不同oid的文件將是一個邪惡的雙胞胎。
你會發現在「What's the easiest way to detect 「evil twins」 in Rational ClearCase?」
感謝提示答案了類似的做法。我的情況可能不是邪惡的雙胞胎。假設foo.c存在於\ main,然後一個人在\ main \ 1 \ branch1上創建foo.c,他編輯並對其進行更改。稍後有人通過檢出branch1來創建分支2,如\ main \ 1 \ branch1 \ 3 \ branch2。此時,branch2元素被簽入並且與branch1(branch1 \ 3)上的第三個版本不同(branch2 \ 1)。稍後有人檢出branch2 \ 1並對其進行編輯並在創建branch2 \ 2時進行檢查,該branch2 \ 2與branch1 \ 3相同。我如何在分支1和分支2上發現foo.c是相同的? – user3328803
我剛剛通過運行您建議的命令進行了驗證,並且文件在兩個視圖上都有相同的OID(一個看着branch1,另一個看着branch2),所以它們根據定義並不是邪惡的。但是這兩個文件都有相同的內容,我需要在一個巨大的VOB上找到所有這些文件。任何幫助表示讚賞! – user3328803
@ user3328803好的,我編輯了我的答案,以解決您當前的情況。 – VonC