2009-01-13 54 views
4

我正在查找一個ClearCase命令,該命令將列出在當前視圖中可見的所有元素,但是不是對它們應用了特定標籤。ClearCase:如何找到沒有特定標籤的元素

舉例來說,我認爲可見的大部分元素都有LABEL_X應用於它們。我想要列出那些沒有LABEL_X的元素。

我顯然需要使用cleartool find,但是用法和ClearCase手冊頁在我如何構造這樣的查詢方面困惑不解。

+0

感謝您的反饋意見:我完成了包含'nxn'(無擴展路徑名)選項的答案 – VonC 2009-01-14 15:50:35

回答

3

這應該工作:

ct find -all -ele '! lbtype_sub(LABEL_X)' -print 
ct find -ele '! lbtype_sub(LABEL_X)' -print 

注:

  • CT代表了cleartool
  • Unix的語法這裏(適用於Windows,用雙引號代替簡單的引號)
  • 提防空間在!lbtype_sub(在winodws你不需要空間)
  • -ele非常重要的,只有一次發生的指定文件(而不是所有不同版本的文件相匹配的條件)

-ele限制搜索到的元素,而不是版本(這將觸發很多結果與涉及的版本...)

-all列出所有元素包括「刪除」(即「unreferenced」)的。
第二行只列出可見元素(在當前視圖)

你應該執行一個給定的ClearCase中您所選擇的子目錄的第二個命令行(快照或動態視圖)中的所有文件將列出與cirteria匹配的子目錄(和子子目錄...)。

警告:

  • 文件和目錄上市。如果你只想要文件,添加-type f到查詢:

    CT發現型的F -ele「!lbtype_sub(LABEL_X)」 -print

  • 所顯示的內容是元素的擴展路徑,即該文件的名稱後跟@@

只列出名字不@@,使用「-nxn」(無extendedpathname選項)

ct find -nxn -ele '!lbtype_sub(LABEL_X)' -print 

另一個更復雜也更完整地列出只有名稱,沒有@@,是使用descr -fmt。例如:

ct find . -ele "!lbtype_sub(LABEL_X)" -exec "cleartool descr -fmt \"%En %d\n\" \"%CLEARCASE_PN%\"" 

ct find . -ele '! lbtype_sub(LABEL_X)' -exec 'cleartool descr -fmt "%En %d\n" "$CLEARCASE_PN"' 

會給你(在windows或unix語法中)未標記爲LABEL_X的文件和目錄的日期和名稱。

通過該'descr -fmt'顯示屏,您可以組合任何類型的信息和演示文稿以獲得結果。

+0

謝謝,-ele是個訣竅。我正在嘗試使用-ver。 此外,我可以通過添加-nxn(無擴展命名符號)獲得沒有擴展路徑(@@)的文件名: ct find。 -ele'!lbtype_sub(LABEL_X)'-nxn -print – barrymc 2009-01-14 15:21:25

2

上面的工作,但請記住指定-cview以獲取當前視圖,否則您將從所有其他視圖獲取文件。

1

我需要使用下列在我的Linux ClearCase的安裝:「」

cleartool find -cview -all -version '\!lbtype(LABEL_X)' -print 

從VonC的帖子的語法不與正常工作沒有逃脫。

相關問題