Code Review での検索

Code Review での検索

Code Review では、フィードページのリビジョン、アクション、およびコメントに対して全文検索やキーワード検索を実行できます。検索条件に一致した項目は、最新の日付でリストの上部に返されます。検索では、(kwscm の --revision オプションを使用して、またはオンデマンドで) ロードされているリビジョンからのみ情報が取得されます。

キーワード、全文検索、またはその組み合わせを使用できます。全文検索は、ファイル名、リビジョンコミットメッセージ、コメント、およびアクションに適用されます。サポートされている基本的な検索パターンの例を以下で説明します。

単純なキーワードと複雑なキーワードを使用したコードレビューの検索については、以下のセクション「キーワードを使用した検索結果のフィルター処理」を参照してください。

除外するアイテム (-)

検索条件 (キーワードまたはテキスト) の前にマイナス記号を付けると、指定した条件からそのアイテムが除外されます。たとえば、次のようになります。

message:"needs research" -file:foo.c

foo.c 以外のファイルで「見直し」に一致するコメント、アクション、およびコミットメッセージが返されます。

Klocwork ではテキストキーワードにマイナス記号を付けることはできません。

語句検索 ("")

二重引用符を使用して、スペースまたは句読点を含んでいる語句または式を示します。

例:

message:"needs more research"

ワイルドカード (*)

ワイルドカードは、すべての文字列検索に暗黙的に適用されます。たとえば、次のパターンの検索を行う場合:

message:"test5"
スペースなどの他の文字でインスタンスが囲まれている場合でも、"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 が現在担当しているタスクをすべて表示します。

外部ツールからリビジョンを開く

URL およびリビジョン番号を指定すると、JIRA や Bugzilla などの外部ツールから特定のリビジョンにリンクできます。例:
 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
コミット 任意のステートでのコミット。使用できるステートは次のとおりです。
  • すべて
  • 保留
  • 受け入れ済み
  • 承認済み
  • 除外
  • 未割り当て
  • レビュー済み
  • 未レビュー
  • 任意
完全に明確でない場合は、次の条件を使用してステートを定義します。
  • レビュー担当者が割り当てられていない場合、リビジョンは未割り当てであるとみなされます。
  • 少なくとも 1 人のレビュー担当者がリビジョン (コードレビュー) を拒否した場合は、拒否済みとみなされます。
  • すべてのレビューが承認されると、リビジョン (コードレビュー) は承認済み (受け入れ済み) とみなされます。
  • それ以外の場合、リビジョンのステータス (コードレビュー) は保留とみなされます。

コミット:<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
アクション ステートが与えられたアクション。使用できるステートは次のとおりです。
  • すべて
  • open
  • 終了
  • 完了
  • 任意

アクション:<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

日付でフィルター

日付で検索をフィルターすると、個々の日付または日付範囲に従って結果を返すことができます。1 つの日付で結果をフィルターするには、date キーワードを有効な <datespec>値と共に指定します。
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日"
注意: 検索エンジンでキーワードが認識されない場合、(":"の後に) 指定した値はテキスト検索として処理されます。