p4 jobs
概要
Perforceバージョン化サービスに既知のジョブをリスト表示します。
構文
p4 [g-opts] jobs [-e jobview] [-i -l -r] [-m max] [file[rev] …]
p4 jobs -R
解説
p4 jobsは、引数なしで実行されると、Perforceに保存されているすべてのジョブをリスト表示します。このコマンドの出力は、オプションや引数で様々な基準を指定することにより、制限することができます。ファイルパターンを指定すれば、リスト表示されるジョブは特定のファイルに影響を及ぼすチェンジリストにリンクされたものだけに制限されます。-eオプションを使用すれば、リスト表示されたジョブをさらに特定の語を含むものだけに制限することができます。
ジョブは、その名前をキーとして、英数字の昇順(あるいは、-rオプションを使えば、降順)に、1行に1つずつ表示されます。各行の形式は次のとおりです。
jobname on
date by user
*status*
description
descriptionは、-l(long)オプションが使用されていない限り、先頭から31字までに制限されます。
date、user、status、またはdescriptionのフィールドのいずれかが、Perforceスーパーユーザによりp4 jobspecで削除されている場合、そのフィールドの値は各ジョブの出力に表示されません。
ジョブのリストを、特定ファイルに関連するチェンジリストによって修正されたものだけに制限するには、p4 jobs
filespecを使用します。ファイルまたはファイルパターンの指定には、リビジョン指定子またはリビジョン範囲を含めることができます
オプション
|
|
|
|
|
指定ファイルに反映されたファイルに関連するチェンジリストによって修正されたジョブも含めます。 |
|
|
各ジョブの完全な記述を出力します。 |
|
|
英数字の昇順にソートし、先頭から |
|
|
ジョブを、その名前をキーとして、アルファベット順の降順で表示します。 |
|
|
ジョブテーブルを再構築し、各ジョブにあらためてインデックスを付けます。 この操作は、バージョン98.2より前のバージョンからのアップグレード、および99.1から2001.1より新しいバージョンへのアップグレードを行う際に必要となります。また、既存のジョブを検索する際に、句読法(区切り文字やスペース)を使用したいときにも必要となります。 |
|
|
「“グローバルオプション”」を参照してください。 |
使用上の留意点
|
ファイル引数にリビジョン指定子を使えるか? |
ファイル引数にリビジョン範囲を使えるか? |
最低限必要なアクセスレベル |
|---|---|---|
|
使用可 |
使用可 |
|
ジョブビュー
p4 jobs -e jobviewを使用すれば、リスト表示するジョブを特定の語を含むジョブだけに制限することができます。検索する語は特定のフィールドについて指定することもできますし、ジョブのテキストについて指定することもできます。また、テキストに検索語を指定する場合ほど多くのオプションは使えませんが、日付のフィールドの値を検索語に指定することもできます。bulkタイプのジョブフィールドには検索用のインデックスは付けられません。
検索語の適合は大文字/小文字の区別なく調べられます。スペースによって区切られた文字列は、(句読法が埋め込まれていても)すべて単語としてインデックスされます。
ジョブビューを'と記述すれば、word1
word2 …
wordN'word1からwordNまでのすべてをいずれかのフィールドに含んでいるジョブが検索されます。
ジョブビューの検索語の間のスペースは、論理演算子ANDとして機能します。前記の検索語のいずれかを含むジョブを検索するには、検索語を“|”で区切ります。
アンパーサンド(&)も論理演算子ANDとして使えます。論理演算子は(優先権の高い順に)&、|、スペースの順に結合します。結合の優先度を変えたい場合には、( )を使用します。
検索結果は、ジョブビューシンタックス“fieldname=value”を用いて特定のフィールドの値を指定することにより、絞り込むことができます。valueは英数字および句読記号を含む単一の字句でなければなりません。
ワイルドカード"*"により、語の部分マッチングが可能です。ジョブビューに“”と記述すると、指定したフィールドに“fieldname=string*string”、“stringy”、“stringlike”などの文字列を含むジョブを検索することができます。
日付のフィールドは、あるいはyyyy/mm/ddyyyy/mm/dd:hh:mm:ssの形式で記述することができます。特定の時刻が与えられていない場合、等価演算子(=)はその日付に一致します。
通常の比較演算子(=、>、<、>=、<=)も使用可能です。
さらに、NOT演算子(^)を使用して、一部の比較の意味を打ち消すことができます。(詳しくは、下記「制約」を参照してください。)
正規表現マッチングは、正規表現マッチング演算子(~=)によりサポートされています。
検索で使用する演算子を文字として含む単語を検索するときは、バックスラッシュ(\)でその文字をエスケープしてください。バックスラッシュ文字を照合するには、もう1つのバックスラッシュでエスケープします(\\)。
これらの演算子の働きは、比較するジョブフィールドのタイプによって異なります。
|
フィールドタイプ |
比較演算子の働き |
|---|---|
|
|
等価演算子( 関係演算子は、ASCIIコード順に比較を行います。 |
|
|
等価演算子( ここでは関係演算子の用途は限定的で、指定フィールド内のいずれかの語が、与えられた値と一致する場合にジョブと一致します。
例えば、あるジョブに |
|
|
上記のフィールドタイプ |
|
|
等価演算子( |
|
|
日付は年代順に比較されます。特定の時刻が与えられていない場合、演算子 |
フィールドタイプがよくわからない場合は、サイトで使用中のジョブ仕様を出力するp4 jobspec -oを実行します。p4 jobspecの[Fields:]フィールドには、ジョブフィールドの名前とデータタイプが含まれています。フィールドのタイプについては、p4
jobspecを参照してください。
その他の使用上の留意点
-
p4 userのフォームには[
JobView:]フィールドがあり、ジョブビューを特定のユーザにリンクさせることができます。ユーザがこのフィールドにジョブビューを入力すると、そのユーザが生成するチェンジリストにおいて、このフィールドのジョブビューと一致するジョブが自動的に表示されます。そのチェンジリストによって修正するジョブをこのフォームに残しておき、そうでないジョブは削除する必要があります。 -
p4 jobsは、その出力を英数字順にジョブ名で並べ替えますが、これはジョブが入力された時間順でもあります。ただし、Perforceで使用される標準的なジョブ名と異なるジョブ名を使用している場合には、この限りではありません。
-
-mmax-rは、英数字順で最後からmaxの数のジョブを表示するのであって、新しいものからmaxの数のジョブを表示するわけではありません。しかし、Perforceにおけるデフォルトのジョブの名前付け規則(例えば、job001394のような名前が付く)を使用していれば、英数字順と入力日付の古い順が同じになります。 -
テキストタイプのフィールドが値を含んでいるかどうかは、ワイルドカード「
*」を使ってジョブビューを“”と記述することによって確認できます。field=*fieldが空でないジョブがすべて検索されます。 -
-eオプションを用いてジョブを検索する場合、特にワイルドカード、論理演算子、括弧を使用する場合には、オペレーションシステムおよびコマンドシェルの構文解析、引用、特殊文字のエスケープの動作に注意してください。jobview
制約
-
ジョブビューは、null値のフィールドを含むジョブの検索には利用できません。言い換えれば、既存のジョブからあるフィールドが削除されたとすると、該当フィールドはインデックスが付いていないことになり、その“削除済フィールド”の値に一致するジョブビューは存在しません。
-
ジョブビュー内では、NOT演算子(
^)はAND演算子の後にしか使えません。つまり、“gui ^name=joe”、“gui&^name=joe”というジョブビューは有効ですが、“gui|^name=joe”、“^name=joe”というジョブビューは有効ではありません。 -
上記の制約を回避するには、ワイルドカード「
*」が有効です。例えば、文字列“
unwanted”を含まないすべてのジョブを検索するには、ジョブビューを“job=* ^unwanted”と記述します。スペースより前の部分ですべてのジョブが選択され、文字列“unwanted”を含まないすべてのジョブとの論理積ANDがとられます。同様に、ジョブビュー“
”は、field=*fieldが空でない(つまり、jobフィールドは空ではないと考えられる)あらゆるジョブと一致するので、空のフィールドを持つジョブは“job=* ^”で検索することができます。field=* -
現時点では、スペースで区切られたフィールドの条件検索は実行できません。例えば、p4 jobs -e "field=word1 word2"の代わりにp4 jobs -e "field=word1 field=word2"を使用しなければなりません。
例
|
p4 jobs //depot/proj/file#1 |
|
|
p4 jobs -i //depot/proj/file |
|
|
p4 jobs -e gui |
いずれかのフィールドに単語 |
|
p4 jobs -e "gui Submitted-By=joe" |
いずれかのフィールドに単語 |
|
p4 jobs -e "gui ^Submitted-By=joe" |
いずれかのフィールドに単語 |
|
p4 jobs -e "window*" |
いずれかのフィールドに単語“ |
|
p4 jobs -e window.c |
いずれかのフィールドで |
|
p4 jobs -e "job=* ^unwanted" |
どのフィールドにも単語 |
|
p4 jobs -e "(fast|quick)&date>1998/03/14" |
いずれかのフィールドに単語 |
|
p4 jobs -e "fast|quick" //depot/proj/... |
いずれかのフィールドに単語 |