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:フィールドが含まれています。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/...
ヒント

Typemap: フィールドの下の各行をインデントしてください。

関連コマンド

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

p4 add -t typefile

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

p4 reopen-t type file