Helix Core P4コマンドリファレンス (2019.1)

p4 typemap

ファイル名をファイルタイプにマッピングしているテーブルを修正します。

構文

p4 [g-opts] typemap
p4 [g-opts] typemap -o
p4 [g-opts] typemap -i

説明

p4 typemapコマンドにより、Helixサーバ管理者は、Helixサーバファイルタイプをファイル指定にリンクするテーブルを設定できます。 ファイル名がタイプマップテーブル中のエントリに適合する場合、このコマンドは、ファイル名に適合するファイルタイプがないときにHelixサーバが割り当てるファイルタイプをオーバーライドします。

デフォルトでは、Helixサーバはファイルの先頭の65,536バイトの分析に基づいて、ファイルのタイプがtextなのかbinaryなのかを自動的に判別します。 先頭の65,536バイトの各バイトで最上位ビットが0の場合、Helixサーバはこのファイルタイプをtextとみなし、そうでなければbinaryとみなします。 .zip形式(.jarファイルを含む)で圧縮されたファイルも自動的に検出され、ubinaryタイプが割り当てられます。

このデフォルトの動作は、-t filetypeオプションを使用すればオーバーライドできますが、ファイルタイプが(常時ではないが)おおむね正しく検出される場合、このオプションの指定を忘れてしまうことが少なくありません。 典型的な例は、PDFファイル(65536バイト以上のASCIIコメントで始まるものがあります)や、通常は書式コードが埋め込まれているRTFファイルの場合に見られます。

p4 typemapコマンドは、より完全な解決策を提供します。このコマンドで管理者は、特定のファイル(例えば名前が.pdf.rtfで終わるファイル)がディポに追加されるとき、デフォルトのタイプ検出機構が働かないようにし、常に希望するPerforceファイルタイプが確実に割り当てられるようにすることができます。 詳細については、「p4 add」を参照してください。

ユーザは、Helixサーバのコマンドラインでファイルタイプを明確に指定することにより、タイプマップテーブルで定義されたあらゆるファイルタイプマッピングをオーバーライドできます。

フォームフィールド

p4 typemapのフォームには[TypeMap:]フィールドのみがあり、このフィールドにはディポシンタックスで指定されたファイルパターンにファイルタイプをリンクする値のペアが含まれます。

説明

filetype

Helixサーバに対応するすべてのファイルタイプ。

有効なファイルタイプのリストについては、「ファイルタイプ」を参照してください。

pattern

ディポシンタックスのファイルパターンです。 ユーザがこのパターンに適合するファイルを追加すると、そのデフォルトのファイルタイプはテーブルで指定されたファイルタイプとなります。 ファイルをタイプマップから除外するには、除外(-pattern)マッピングを使用します。

オプション

-i

エディタを起動せずに、標準入力からタイプマップテーブルを読み取ります。

-o

エディタを起動せずに、標準出力にタイプマップテーブルを書き出します。

g-opts

詳細については、「グローバルオプション」を参照してください。

使用上の留意点

ファイル引数にリビジョン指定子を使えるか? ファイル引数にリビジョン範囲を使えるか? 最低限必要なアクセスレベル

適用外

適用外

admin
または-oオプションを使用するためのlist

  • 希望するサブディレクトリまたはその配下にあって、特定の拡張子を持つすべてのファイルを指定するには、ディレクトリ名に続けてピリオドを4個使用し、その後に拡張子を付けます。 (例えば、//path/....ext) 最初の3つのピリオドは「このレベル以下にあるすべてのファイル」を指定します。 4番目のピリオドと付属の拡張子は、「これらの文字で終わる」と解析されます。
  • タイプマップテーブルでは、ファイルタイプ修飾子を使用できます。 ディレクトリツリー全体にわたるキーワード拡張を強制的にオン/オフにする場合、元のファイルの更新時刻(+mファイルタイプ修飾子)をサードパーティ製DLLのディレクトリに強制的に保存する場合、または悲観的ロックのポリシーを採用する場合などに役立ちます。
  • 複数のファイルタイプ修飾子は続けて指定してください。 例えば、binary+lFS10とすると、binaryタイプで排他的作業状態(l)であり、圧縮されずに完全な形で保存され(F)、最新の10リビジョンのみが保存されている(S10)ファイルを意味します。 構文の詳細については、「ファイルタイプ」を参照してください。
  • -tオプションとファイルタイプ修飾子を使用してコマンドラインでファイルタイプを指定する場合、参照しているファイルがp4 typemapマッピングの対象になっていれば、コマンドラインで指定したファイルタイプは、タイプマップテーブルで指定したファイルタイプをオーバーライドします。

Perforceサービスに、すべてのPDFおよびRTFファイルをbinaryとみなすよう通知するには、p4 typemapを実行してタイプマップテーブルを以下のように変更します。

Typemap:
        binary //....pdf
        binary //....rtf

指定子中の最初の3個のピリオド(「...」)は、ルートディレクトリ配下のすべてのファイルがマッピングの一部に含まれることを規定するHelixサーバワイルドカードです。 4個目のピリオドとファイル拡張子は、ファイル名の最後が.pdf(または.rtf)で終わるファイルを対象とする仕様です。

サイトによっては、より複雑な状況が発生することもあります。例えば、ディポ内のあるエリアにいるユーザが、文書を収録しているプレーンなASCIIテキストファイルに拡張子.docを使用する一方で、別のエリアで作業しているユーザが、人気ワープロソフトで使用されているバイナリファイル形式でファイルを参照するために.docを使用する、といった状況です。 このような状況で有効なタイプマップテーブルは、次のようになります。

Typemap:
        text   //depot/dev_projects/....doc
        binary //depot/corporate/annual_reports/....doc

すべての.cおよび.hファイルについてキーワード拡張を有効にし、自分の.txtファイルについてはキーワード拡張を無効にするには、次のようにします。

Typemap:
        text+k //depot/dev_projects/main/src/....c
        text+k //depot/dev_projects/main/src/....h
        text   //depot/dev_projects/main/src/....txt

指定したディレクトリ内のファイルに、確実に元のファイルの修正時刻を(サブミットの日付に関係なく)保存させるには、次のようにします。

Typemap:
        binary   //depot/dev_projects/main/bin/...
        binary+m //depot/dev_projects/main/bin/thirdpartydll/...

binディレクトリやその配下にあるすべてのファイルに、タイプbinaryが割り当てられます。 後のマッピングが前のマッピングをオーバーライドするので、サブディレクトリbin/thirdpartydll内のファイルには、代わりにタイプbinary+mが割り当てられます。 +m (修正時刻)ファイルタイプ修飾子の詳細については、「ファイルタイプ」を参照してください。

デフォルトでは、Helixサーバは同時並行開発をサポートしていますが、ファイルを編集のために作業状態にするのは一度に1人のユーザのみであることが想定される環境では、部分ファイルタイプで修飾子+l (排他的作業状態)を使用して悲観的ロックを実施することができます。 次のようにタイプマップを定義すると、ディポ内にあるすべての新規で追加されたファイルに対し+l修飾子が自動的に適用されます。

Typemap:
        +l //depot/...

関連コマンド

タイプマップテーブルをオーバーライドして、新しいファイルを特定のタイプで追加する

p4 add -t typefile

タイプマップテーブルのあらゆる設定をオーバーライドして、作業状態にあるファイルのファイルタイプを変更する

p4 reopen-t type file