p4 grep
あなたの友だちです。perforceブログから
「p4grep」を使用すると、ユーザーは単純なファイル検索と正規表現を使用して、サーバーに保存されているファイルの以前のリビジョンだけでなく、ヘッドのファイルコンテンツを検索できます。標準のgrepのすべてのオプションがサポートされているわけではありませんが、最も重要なオプションが利用可能です。'p4helpgrep'に従ったコマンドの構文は次のとおりです。
p4 grep [ -a -i -n -v -A after -B before -C context -l -L -t -s -F -G ] -e pattern file[revRange]...
マニュアルページも参照してください。
更新: Perforceが1つのp4 grep
コマンドで検索するファイルの数には制限があることに注意してください。おそらくこれは、サーバーの負荷を抑えるのに役立つためです。これはエラーとして現れます:
Grep revision limit exceeded (over 10000).
十分なPERFORCE権限がある場合は、これを使用して、設定をこのデフォルトの10Kからより大きな値p4 configure
に増やすことができます。dm.grep.maxrevs
たとえば、100万に設定するには:
p4 configure set dm.grep.maxrevs=1M
これを変更する権限がない場合はp4 grep
、サブディレクトリ上でアップを複数のコマンドに分割することで回避できます。デポの構造によっては、サブディレクトリなどにさらに分割する必要がある場合があります。
たとえば、このコマンドをbashシェルで使用して、一度に//depot/trunk
1つのサブディレクトリを検索できます。p4 dirs
コマンドを使用して、サーバーからサブディレクトリのリストを取得します。
for dir in $(p4 dirs //depot/trunk/*); do
p4 grep -s -i -e the_search_string $dir/...
done