p4 fstat

概要

ファイル情報をスクリプトによる構文解析に適したフォーマットにダンプします。

構文


p4 [g-opts] fstat [-F filter] [-L -r -U] [-T fields] [-m max] [-c|-e change]
                  [-Ox -Rx -Sx] [-A patternfile[rev]...

解説

p4 fstatコマンドは、個々のファイルに関する情報を項目ごとに別々の行に分けてダンプします。この出力は、各項目が変数としてアクセス可能なPerforce APIアプリケーションでの使用に最適ですが、スクリプトによる構文解析にも適しています。

ファイルの出力をmax個までに限定するには、-m maxオプションを使用します。

出力のソート基準となるフィールドを変更するには-Sxオプションのうち1つを使用し、ソート順序を逆にするには-rオプションを使用します。

フォームフィールドの一部の機能に基づいて出力を絞り込むには(例えば、一定の大きさを超え、固有のファイルタイプを持つすべてのファイルなど)-F filterオプションを使用します。

fields引数に指定されたフィールドの集合に出力を限定するには、-T fieldsオプションを使用します。フィールド名のリストはスペースまたはカンマで区切ることができます。

ヘッドタイプのフィールド、たとえばheadTimeは、ファイル引数に与えられたファイルリビジョンの情報を返します。特定のリビジョンが指定されていない場合、最新リビジョンの情報を返します。

フォームフィールド

表示されるフィールドは、選択したファイルによって異なります。

フィールド名

解説

例/備考

attr-name

名前に関する属性値

attr-myAttr critical

attrProp-name

attr-nameが伝播された属性である場合に設定

attrProp-myAttr

clientFile

ファイルのローカルパス。(デフォルトはローカルシンタックス。-Opオプションを付けるとPerforceシンタックス。)

/staff/userid/src/file.c

(または、Perforceシンタックスでは//workspace/src/file.c)

depotFile

ファイルのディポパス。

//depot/src/file.c

movedFile

移動元、移動先ファイルのディポ内での名前

//depot/src/file.c

path

ファイルのローカルパス

//workspace/src/file.c

isMapped

追加用にファイルが作業状態になって、現在のクライアントワークスペースにマップされている場合に設定。

isMapped

shelved

ファイルが保留されている場合に設定。

shelved

headAction

(ディポ内の)最新リビジョンで実行されたアクション。

addeditdeletebranchmove/addmove/deleteintegrateimportpurgearchiveのいずれか

headChange

(ディポ内の)最新リビジョンのチェンジリスト番号。

124

headRev

(ディポ内の)最新リビジョンの番号。

124

headType

(ディポ内の)最新リビジョンのタイプ。

textbinarytext+kなど(“ファイルタイプ”参照。)

headCharset

最新リビジョンの文字セット

unicodeファイル

headTime

(ディポ内の)最新リビジョンのチェンジリストの日付。時刻は1970年1月1日の00:00:00 UTCからの秒数で測定。

919283152は1999年前半の日付

headModTime

(ディポ内の)最新リビジョンの更新時刻(クライアントにおいてサブミット前にファイルが最後に更新された時刻)。

919280483は、1999年前半の日付

movedRev

移動されたファイルの最新リビジョン

157

haveRev

最後にワークスペースに同期した(ワークスペース上にある)リビジョン。

23

desc

チェンジリストのコメント(-e changelistが使用され、ファイルがchangelistに含まれていた場合)

Perforceのチェンジリスト

digest

ファイルのMD5ダイジェスト(-Olオプションが必要)

32桁の16進数

fileSize

ファイルのバイト数(-Olオプションが必要)

63488

action

(ワークスペースで)ファイルを作業状態にしたアクション。

addeditdeletebranchmove/addmove/deleteintegrateimportpurgearchiveのいずれか

type

(ワークスペース上で)作業状態になっているファイルのタイプ。

Perforceファイルタイプ

charset

作業状態になっているファイルの文字セット

(unicodeファイル)

actionOwner

ファイルを作業状態にしたユーザ(ファイルが作業状態になっている場合)

Perforceユーザ名

change

(ワークスペース上で)作業状態になっているチェンジリストの番号

75331

resolved

衝突解決済みの反映記録の数(該当の場合)

5

unresolved

衝突未解決の反映記録の数(該当の場合)。

2

reresolvable

再度衝突解決が可能な反映記録の数(該当の場合)

1

otherOpen

同じファイルを作業状態にしている他のユーザの数。該当するユーザがいない場合は空白。

1, 2, 3n、レコード数nに続けて、適宜otherOpennotherActionnotherLocknフィールドとあわせてユーザをリスト(0n-1)します。例:


... otherOpen 3 ...... otherOpen0 user1@ws1 ...... otherOpen1 user2@ws2 ...... otherOpen2 user3@ws3

otherOpenn

同じファイルを作業状態にしている個々のユーザに対し、そのファイルを作業状態にしているワークスペースとユーザを表示。

user123@workstation9

otherLock

他のユーザがファイルをロックしている場合に表示されて空文字に設定され、それ以外の場合は非表示。

otherLock

otherLockn

同じファイルをロックしている個々のユーザに対し、そのロックを保持しているクライアントとユーザを表示。

user123@workstation9

一度に1ユーザのみファイルのロックが可能であるため、nが設定されていればnは常に0となる。

otherActionn

同じファイルを作業状態にしている個々のユーザに対し、行われたアクションを表示。

addeditdeletebranchmove/addmove/deleteintegrateimportpurgearchiveのいずれか

otherChangen

ファイルを作業状態にしているすべてのチェンジリストに対し、そのチェンジリストを表示。

75612

openattr-name

ファイルが作業状態にされているすべてのチェンジリストについて、名前に関する属性値。

attr-name

openattrProp-name

attr-nameが伝播された属性である場合に設定。

attrProp-name

ourLock

現在のユーザがファイルをロックしている場合に表示されて空文字に設定され、それ以外の場合は非表示。

ourLock


resolveActionn resolveBaseFilen resolveBaseRevn resolveFromFilen resolveStartFromRevn resolveEndFromRevn

それぞれ作業中の、反映操作、ベースファイル、ベースリビジョン番号、反映元ファイル、開始リビジョン、終了リビジョン。

作業中の反映記録情報には、-Orオプションを使用。

totalFileCount

調べたファイルの数。

-m maxオプションをソートオプションの-Sxまたは-rのうち1つと共に使用した場合に、最初のファイルの出力に表示される。

オプション

-A pattern

表示される属性を、指定されたpatternに一致するものに限定します。例えば、ファイルを選択している場合、-A foo*はファイル名がfooで始まる属性のみを表示します。

-c change

指定のチェンジリスト番号以降に影響を受けたファイルのみを表示します。この操作は、影響を受けたファイルのリビジョン範囲を使用するより早く行うことができます。

-e change

指定のチェンジリスト番号により影響を受けたファイルのみを表示します。このオプションは、影響を受けたファイルのリビジョン範囲を指定するより早く行うことができます。

-F filter

filterにより指定された基準に一致するファイルのみをリストします。フィルタに関する説明は、「使用上の留意点」を参照してください。

-L

スクリプト作成のため、ファイル引数リストについてのファイル情報を、有効なリビジョン番号とあわせて完全なディポシンタックスでレポートします。

-m max

fstatの出力をmaxファイルまでに限定します。

-Oa

p4 attributeによって設定された属性を出力します。

-Od

属性の要約を出力します。

-Oe

16進数でエンコードされた属性値を出力します。

-Of

指定されたファイルのすべてのリビジョンについて、other[...]およびresolve[...]フィールドを除外して出力します。

-Ol

fileSizeフィールドとして、ファイルの長さとリビジョンごとの要約フィールドを表示します。

p4 fstat -e shelvedChange -Rs -Olは、指定の変更において保留中のファイルのサイズと要約をレポートします。

-Op

clientFileを、ローカルシンタックスではなく、Perforceシンタックスで表示します。

-Or

現在ワークスペースで作業状態になっているファイルの作業中の反映記録データを表示します。

-Os

クライアントワークスペースデータ(すなわちclientFileフィールド)を除外することにより、出力を短縮します。

-r

出力を逆順でソートます。

-Rc

出力を、現在のワークスペースにマッピングされているファイルに制限します。

-Rh

出力を、haveリストのファイル、すなわち現在のワークスペースに同期されているファイルに制限します。

-Rn

出力を、最新リビジョンではないリビジョンで作業状態になっているファイルに制限します。

-Ro

出力を、現在のワークスペースで作業状態のファイルに制限します。

-Rr

出力を、衝突解決済みの作業状態のファイルに制限します。

-Rs

出力を、保留中のファイルに制限します。-echangelistオプションが必要です。

p4 fstat -e shelvedChange -Rs -Olは、指定の変更において保留中のファイルのサイズと要約をレポートします。

-Ru

出力を、衝突未解決の作業状態のファイルに制限します。

-Sd

日付でソートします。

-Sh

所有リビジョンでソートします。

-Sr

最新リビジョンでソートします。

-Ss

ファイルサイズでソートします。

-St

ファイルタイプでソートします。

-T fields

fieldsにより指定されたフィールド名に一致するファイルのみをリストします。フィールド名のリストはスペース区切りまたはカンマで区切りのいずれかとします。

-U

データを表示する際にアンロードディポ内のファイルを含みます。詳しくは、p4 unloadをご覧ください。

g-opts

“グローバルオプション”」を参照してください。

-sグローバルオプション(出力のタイプをerrorwarninginfotext、またはexitとして記述するタグを、出力の各行の前に付ける)は、p4 fstatでは特に有用です。

使用上の留意点

ファイル引数にリビジョン指定子を使えるか?

ファイル引数にリビジョン範囲を使えるか?

最低限必要なアクセスレベル

使用可

使用可

list

p4 fstatコマンドで唯一必要な引数は、file[rev]引数です。その他のすべてのオプションは、操作を行うファイルのセットの制限、または選択ファイルの情報の量または表示の制御に関連しています。

フィルタ

ファイルのリストを、特定の基準を満たすファイルに限定するには、p4 fstat -F filterを使用します。p4 fstatにより表示されるどのフォームフィールドでも、論理演算子の使用が可能です。通常の比較演算子(=><>=<=)も使用可能です。正規表現マッチングは、正規表現マッチング演算子(~=)によりサポートされています。

次のフィルタ式は、headTypeフィールドがtextに設定されている、特定のサイズのファイルをフィルタします。

-F "fileSize > 100000 & headType=text"

fstatに使用されるフィルタは大文字と小文字が区別されます。スペースで区切られたすべての英数文字列(句読記号が埋め込まれた単語を含む)は、単語として索引付けされます。

フィルタ内で検索語の間にスペースがあると、ブール演算子のANDとして扱われます。任意のキーと値のペアを含むファイルを検索するには(ブール演算子OR)、それぞれの語を"|"の文字で区切ります。

アンパーサンド(&)文字もブールのANDとして使用可能です。ブール演算子は(高優先度から低優先度の順に) &|、スペースの順で値を結合します。グループ化の優先順位を変更するには、括弧を使用します。

さらに、NOT演算子(^)を使用して、一部の比較の意味を打ち消すことができます。

検索結果は、特定フィールド内の値をフィルタシンタックス“fieldname=value”によりマッチングすることで絞り込みが可能です。valueは英数字および句読記号を含む単一の字句でなければなりません。

ワイルドカード"*"により、語の部分マッチングが可能です。フィルタ“fieldname=string*”は“string”、“stringy”、“stringlike”などに一致します。

日付フィールドはフィルタ日付をyyyy/mm/ddまたはyyyy/mm/dd:hh:mm:ssの形式で表すことによりマッチングが可能です。特定の時刻が指定されていない場合、等価演算子(=)はその日付に一致します。

フィルタ式演算子である文字を含むテキストを検索するには、当該文字をバックスラッシュ(\)文字でエスケープします。バックスラッシュ文字を照合するには、もう1つのバックスラッシュでエスケープします(\\)。バックスラッシュを使用して検索テキストをエスケープする特殊な文字は2種類あります。Perforceの"..."ワイルドカードは\...によりエスケープが可能であり、空のフィールドは\0を用いて検索できます。

これらの演算子による動作は、比較対象となるフィールドのタイプにより異なります。fstatが処理するフィールドはすべて、テキストフィールドです。等価演算子(=)または大文字小文字区別なし等価演算子(~=)は、値として指定された語が指定フィールド内に見つかった場合に、そのファイルと一致します。このタイプでは関係演算子の用途は限定的で、指定フィールド内のいずれかの語が、供給された値と一致する場合にファイルと一致します。関係演算子は常に大文字と小文字を区別します。例えば、チェンジリストにあるtextフィールドのdescbug not fixedという語句が含まれていて、フィルタが“desc<fixed”である場合、bug<fixedであることからこのファイルはフィルタに一致します。

その他の使用上の留意点

  • -Roオプションを指定して-e changelistを使用すると、作業中の変更のみが考慮されるため、追加のための作業状態になっているファイルが出力に含められます。

  • 特殊文字@#*、および%を含んでいるファイルの場合、clientFileでは特殊文字が表示され、depotFileではその文字の16進値のASCI表現が含まれたファイル名が表示されます。

  • sizeフィールドとdigestフィールドは正規化(UNIXの改行規則)された圧縮されていないバージョンのディポファイルに基づいており、クライアントワークスペースと同期させた際のファイルの表現には関係しません。

  • -Lオプションは、スクリプトまたは自動レポート処理で使用することが意図されています。ファイル引数は完全なディポシンタックスで記述し、有効なリビジョン番号を伴っていなければなりません。これらの必要条件を満たさないファイル指定は警告なく無視されます。

  • p4 fstatのシンタックスは、リリース2004.2で変更されました。従来のオプションである-C-H-W-P-l、および -sは、互換性のためにサポートされています。

p4 fstat file.c

file.cに関する情報を表示します。

p4 fstat //....c@20,@now

チェンジリスト20でのファイルのチェックイン後に影響を受けた、すべての.cファイルに関する情報を表示します。

p4 fstat -Os file.c

クライアントワークスペース情報行(clientFile)は表示しません。

p4 fstat -Osl file.c

クライアントワークスペース情報行は表示しませんが、fileSizeおよびdigestの行は表示します。

p4 fstat -Os -Ol file.c

p4 fstat -Oslと同義。

p4 fstat -F "clientFile=c:\\ws\\file.c" //depot/main/...

パスにバックスラッシュが含まれている場合は、それらをバックスラッシュでエスケープします。

p4 fstat -F "clientFile~=c:\\ws\\[Ff]ile.c" //depot/main/...

正規表現修飾子~=を使用して、File.cおよびfile.cに一致する正規表現を指定します。

p4 fstat -Ol -F "fileSize < 1024 & headType=text" //depot/main/...

長さが1024バイトに満たない、//depot/main/...配下にあるすべてのテキストファイルに関する情報を表示します。

p4 fstat -T 'depotFile, headRev' file.c

file.cdepotFileフィールドとheadRevフィールドのみを表示します。

関連コマンド

各ファイルに関する付加的情報を読み出す。

p4 files

変更の説明を含むファイル情報を表示する。

p4 filelog