現在のビューに表示されているが、特定のラベルが適用されていないすべての要素を一覧表示する ClearCase コマンドを探しています。
たとえば、ビューに表示されているほとんどの要素にLABEL_Xが適用されているとします。LABEL_Xを持たない要素のリストが必要です。
明らかに を使用する必要がありますcleartool find
が、使用法と ClearCase の man ページは、このようなクエリを作成する方法に関して私を困惑させます。
現在のビューに表示されているが、特定のラベルが適用されていないすべての要素を一覧表示する ClearCase コマンドを探しています。
たとえば、ビューに表示されているほとんどの要素にLABEL_Xが適用されているとします。LABEL_Xを持たない要素のリストが必要です。
明らかに を使用する必要がありますcleartool find
が、使用法と ClearCase の man ページは、このようなクエリを作成する方法に関して私を困惑させます。
これはうまくいくはずです:
ct find -all -ele '! lbtype_sub(LABEL_X)' -print
ct find -ele '! lbtype_sub(LABEL_X)' -print
ノート:
!
との間のスペースに注意してくださいlbtype_sub
(windows ではスペースは必要ありません)。-ele
特定のファイルの 1 つのオカレンスのみを取得することが非常に重要です (条件に一致するファイルのすべての異なるバージョンを取得するわけではありません)。-ele
検索をバージョンではなく要素に制限します(これにより、関連するバージョンでより多くの結果がトリガーされます...)
-all
「削除された」(つまり「参照されていない」)ものに含まれるすべての要素をリストします。
2 行目は、(現在のビューで) 表示されている要素のみを一覧表示します。
指定された ClearCase (スナップショットまたは動的ビュー) 内の選択したサブディレクトリでこれらの 2 番目のコマンド ラインを実行する必要があります。条件に一致するそのサブディレクトリ (およびサブサブ ディレクトリ...) 内のすべてのファイルが一覧表示されます。
警告:
ファイルとディレクトリがリストされます。ファイルのみが必要な場合は-type f
、クエリに追加します。
ct find -type f -ele '!lbtype_sub(LABEL_X)' -print
表示されるのは要素の拡張パスです。つまり、ファイル名の後に@@
.
なしで名前だけをリストするには、' ' (extendedpathname オプションなし@@
) を使用します。-nxn
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"'
LABEL_X というラベルが付いていないファイルとディレクトリの日付と名前を (Windows または UNIX 構文で) 表示します。
その ' descr -fmt
' ディスプレイを使用すると、結果に必要なあらゆる種類の情報とプレゼンテーションを組み合わせることができます。
Linux clearcase のインストールで以下を使用する必要がありました。
cleartool find -cview -all -version '\!lbtype(LABEL_X)' -print
VonC の投稿の構文は、「!」で正しく機能しませんでした。逃がされていません。