Code Review での検索
このトピックの内容: |
Code Review での検索
Code Review では、フィードページのリビジョン、アクション、およびコメントに対して全文検索やキーワード検索を実行できます。検索条件に一致した項目は、最新の日付でリストの上部に返されます。検索では、(kwscm の --revision オプションを使用して、またはオンデマンドで) ロードされているリビジョンからのみ情報が取得されます。
キーワード、全文検索、またはその組み合わせを使用できます。全文検索は、ファイル名、リビジョンコミットメッセージ、コメント、およびアクションに適用されます。サポートされている基本的な検索パターンの例を以下で説明します。
単純なキーワードと複雑なキーワードを使用したコードレビューの検索については、以下のセクション「キーワードを使用した検索結果のフィルター処理」を参照してください。
除外するアイテム (-)
検索条件 (キーワードまたはテキスト) の前にマイナス記号を付けると、指定した条件からそのアイテムが除外されます。たとえば、次のようになります。
message:"needs research" -file:foo.c
foo.c 以外のファイルで「見直し」に一致するコメント、アクション、およびコミットメッセージが返されます。
Klocwork ではテキストキーワードにマイナス記号を付けることはできません。
語句検索 ("")
二重引用符を使用して、スペースまたは句読点を含んでいる語句または式を示します。
例:
message:"needs more research"
ワイルドカード (*)
ワイルドカードは、すべての文字列検索に暗黙的に適用されます。たとえば、次のパターンの検索を行う場合:
message:"test5"
message:"test*5"
"testserver5" や "test server 5" などのすべてのパターンが返されます。
完全一致 (+)
プラス記号を使用して、キーワードまたは全文検索で完全一致が必要であることを示します。
例:
file:+moo.c
moo.c に完全に一致するファイルのみが返されます
または、次のように (プラス記号を使用しないで) 指定します。
file:moo.c
smoo.c のように、moo.c が含まれているファイルまたはパスが返されます。
注意: キーワードの前には、プラス記号ではなく、マイナス記号を付けることができます。例: -file:foo.c は使用できますが、+file:foo.c は使用できません。
OR 演算子
デフォルト検索の動作では、すべてのキーワードまたはテキストを考慮し、すべての条件に一致する指摘をリストします。OR または | を使用してこの動作をオーバーライドします。
例:
PPR2777 OR PR2778
上記のクエリでは、PR2777 または PR2778 を含んでいるリビジョンコミットメッセージ、アクション、またはコメントに一致する項目が返されます。
これは次のようにも表現できます:
PR2777 | PR2778
OR 演算子もグループ検索結果に使用できます。たとえば、ある特定ユーザーの担当項目をすべて検索する場合、次を実行します。
actions:open responsible:+'John Doe' OR commits:any reviews:pending reviewer:+'John Doe'
この検索では、John Doe が現在担当しているタスクをすべて表示します。
外部ツールからリビジョンを開く
http(s)://<host>:<port>/codereview/CodeReview.htm#search_goto:q=<url encoded search>,openCommit=true
<url encoded search> は、URL でエンコードされている検索クエリです。たとえば、次のようになります。
revision%25253A%25252B%252522107841%252522%252520project%25253A%25252B%252522win_all_sources%252522
openCommit=true;を指定して、ユーザーをクエリで指定されたリビジョンに直接リダイレクトします。複数の結果が返された場合、すべての検索結果が含まれるリストが表示されます。
キーワードを使用した検索結果のフィルター処理
キーワードと一致するキーの値を使用して検索フォーカスを絞り込みます。
例:
<keyword>:<string>
- コロンの後にスペースを挿入しないでください。
- キーワード検索では大文字と小文字の区別はありませんが、'+' 記号を先頭に付けると、検索パターンの大文字と小文字が区別されます。たとえば、
COMMITTER:+JDOE
というクエリを行い、ユーザーの実際の userid が jdoe であった場合、結果は返されません。 - 1 つのキーワードに対する複数の値はカンマで、複数のキーワードはスペースで区切る必要があります。例:
comment:"needs more research" file:cruise.java,outsinks.c user:jleeたとえば、次のように入力します。
file:foo.c moo.c noo.c検索エンジンは "foo.c" に一致するファイルを探して、リビジョンコミットメッセージ、アクション、またはコメントで "moo.c" と"noo.c" に対する全文検索を実行します。
簡単なキーワードによる検索
次の簡単なキーワードを使用して、コードレビューと既存のリビジョンから情報を返すことができます。
サポートされているキーワード | 検索パラメーター | 形式 | 例 |
---|---|---|---|
リビジョン | リビジョン番号またはコードレビュー ID このキーワードは、指定された ID とともにリビジョンとプリコミットを返します。結果を絞り込む場合は、'コミットタイプ' を '前' または '後' と指定します。 |
リビジョン:<revision_number>, <revision_number>... |
revision:4,6 |
message | 指定したテキストを含んでいるリビジョンコミットメッセージ、コメント、およびアクション | メッセージ:<"message">,<"message">... 注意: スペースまたは句読点を含む式には、引用符を使用します。 |
message:"check with bob", windows |
text | 特定のコメント、メッセージ、タグ、作成者、またはファイル名のテキスト検索。 | text:<"comment">,<"message">,<tag>, <author>, <filename>... | text:"please revise", jlee |
file | 指定したファイルを含んでいるリビジョン、アクション、またはコメント | file:<filename>,<filename>... | file.htmparser |
プロジェクト | 指定したプロジェクトに対するリビジョン、アクション、およびコメント | プロジェクト:<project_name>,<project_name>... 注意: スペースまたは句読点を含む式には、引用符を使用します。 |
project:my_project |
user | リビジョンをコミットするか、コメントを作成するか、アクションを作成するか、アクションを割り当てたユーザー有効な役割のリストについては、ユーザーの役割による検索を参照してください。 | ユーザー:<user_name>,<user_name>... | user:jlee |
タグ | 特定のコードレビューに適用されるタグ | タグ:<tag>,<tag>... | tag:myTag |
たとえば、JDoe という名前のユーザーが使用する以外のコメントとアクションをすべて返すには、検索キーワードの前にハイフンを追加します。
type:actions,comments -author:JDoe
キーワードを否定できます。次の例では、現在の週のすべてのアクティビティ (承認済みのコメントを除く) が返されます。
changed:'this week' -commits:approved
エンティティとステート (複雑なキーワード) を使用した検索
commits:pending file:/branches/BR_9_6フィールドcommits はエンティティ、pending はステートを表します。
サポートされているキーワード | 検索パラメーター | 形式 | 例 |
---|---|---|---|
タイプ | 指定したタイプに対するコメント、アクション、またはコミット。値のタイプは次のとおりです。
|
タイプ:<type>,<type>... | type:actions,comments author:JDoe |
コミット | 任意のステートでのコミット。使用できるステートは次のとおりです。
完全に明確でない場合は、次の条件を使用してステートを定義します。
|
コミット:<state>,<state>... コミット:<state>,<state>... |
commits:any to:JDoe |
レビュー | 特定のステートでのレビュー。使用できるステートは次のとおりです。
|
review: <state>,<state>... review: <state>,<state>... |
reviews:pending from:JDoe |
コミットタイプ | リビジョンまたはチェックイン前のコードレビューのコミットタイプ。次のいずれかのステートを使用します。
|
コミットタイプ:<state>,<state>... | reviews:pending from:JDoe commit_type:post |
コミットステータス | リビジョンまたはチェックイン前のコードレビューのコミットステート。次のいずれかのステートを使用します。
|
コミットステータス:<state>,<state>... | commit_state:fixed commit_type:pre commits:rejected |
コメント | ステートが与えられたコメント。使用できるステートは次のとおりです。
|
コメント:<state>,<state>... コメント:<state>,<state>... |
comments:unread to:JDoe |
アクション | ステートが与えられたアクション。使用できるステートは次のとおりです。
|
アクション:<state>,<state>... アクション:<state>,<state>... |
actions:open reviews:pending |
ユーザーの役割による検索
1 つ以上のユーザーの役割が与えられている場合は、検索結果をフィルターできます。ユーザーの役割は、ユーザーが実行するアクティビティを表します。たとえば、作成者や送信者などが含まれます。
サポートされているキーワード | 検索パラメーター | 形式 | 例 |
---|---|---|---|
担当 | チェックイン前のコードレビューのレビュー担当者、またはアクション担当ユーザー。 | 担当:<user>,<user>... フィールドユーザーは有効なユーザーのユーザー名です。 |
commits:unreviewed responsible:JDoe |
作成者 | コメントおよびアクションの作成者、またはコミット者 (プリコミット者)。 | 作成者:<user>,<user>... フィールドユーザーは有効なユーザーのユーザー名です。 |
comments:unread author:JDoe |
作成者 | 上記と同じ | 作成者:<user>,<user>... フィールドユーザーは有効なユーザーのユーザー名です。 |
comments:read by:JDoe |
コミット者 | コミット者またはプリコミット者。 | コミット者:<user>,<user>... フィールドユーザーは有効なユーザーのユーザー名です。 |
committer:JDoe date:this_week |
レビュー担当者 | コミットタイプまたはプリコミットのレビュー担当者。 | レビュー担当者:<user>,<user>... フィールドユーザーは有効なユーザーのユーザー名です。 |
date:'this week' reviewer:JDoe |
to | コメントで指定された人物、コミットまたはプリコミットのレビュー担当者、またはアクション担当ユーザー。 | 様へ:<user>,<user>... フィールドユーザーは有効なユーザーのユーザー名です。 |
date:'this month' to:JDoe by:JBlow |
日付でフィルター
type:commit reviews:pending created:'January 1, 1970'すべての日付値は一重引用符または二重引用符で囲む必要があります。日付範囲の結果を返すには、2 つの有効な <datespec> 値の間にハイフンを挿入します。
type:commit reviews:pending created:'January 1, 1970'-'last month'
サポートされているキーワード | 検索パラメーター | 形式 | 例 |
---|---|---|---|
日付 | 1 つまたは 2 つの <datespec> 値。'03-07-2013' や ' January 1, 1970' などの標準日付形式を使用するか、またはサポートされている次のいずれかのリテラルを使用します。
'今週' や '今年' などの引用符を使用すると、アンダースコアを使用せずにリテラル値を指定することもできます。 |
日付:<datespec>[-<datespec>] | date:'January 1, 1970'
次の例では、日付範囲を指定します。 created:'January 1, 1970'-'last month' 年値を使用してある年のすべてのデータを取得することもできます。例: date:'2013' |
作成済み | 有効な <datespec> 値。作成日を表します。 | 作成済み:<datespec> | actions:any author:JDoe created:yesterday |
更新済み | 有効な <datespec> 値。最終更新日を表します。 | 更新済み:<datespec> | actions:any updated:last_month |
変更済み | 有効な <datespec> 値。最終変更日を表します。 | 変更済み:<datespec> | author:JDoe modified:'January 1, 1970'-'last month' |
変更済み | 有効な <datespec> 値。最終変更日を表します。 | 変更済み:<datespec> | review:pending author:JDoe changed:yesterday |
"yyyy", "MM yyyy", "MM, yyyy", "MMM yyyy", "MMM, yyyy", "MM/dd/yy", "MM/dd/yyyy", "yy-MM-dd", "yyyy-MM-dd", "dd MMM yyyy", "dd MMMMM yyyy", "EEE, dd MMM yyyy HH:mm:ss Z", "dd MMM yyyy HH:mm:ss Z", "dd MMM yyyy HH:mm", "dd MMM yyyy hh:mma", "dd MMM yyyy hh:mm a", "EEE, MMM dd, yyy", "MMM dd yyyy", "MMM dd, yyyy", "MMM dd'st', yyyy", "MMM dd'nd', yyyy", "MMM dd'rd', yyyy", "MMM dd'th', yyyy", "yyyy dd MMM", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd hh:mm:ss a", "yyyy-MM-dd hh:mma", "MMM dd, yyyy hh:mm a z", "MMM dd, yyyy HH:mm:ss Z",
ロケールが日本語の日付形式は次のとおりです。
"y年M月d日(EEE) H:mm:ss", "y年M月d日 H:mm:ss", "yyyy年MM月dd日(EEE)", "yyyy年MM月dd日"