Helix Coreサーバ管理者ガイド: 基本 (2019.1)

p4 typemapでファイルタイプを定義する

Helixサーバはファイルタイプがtextであるかbinaryであるかを判定するときに調べるバイト数を決定するために、構成可能変数filesys.binaryscanを使用します。デフォルトでは、filesys.binaryscanは65536です。Helixサーバは、先頭65536バイトについて最上位ビットが立っていなければtextと見なし、そうでなければbinaryと見なします。.zip形式(.jarファイルを含む)で圧縮されたファイルも自動的に検出され、ubinaryタイプが割り当てられます。

このデフォルトの動作は-t filetypeフラグでオーバーライドできますが、ファイルタイプが(常時ではなく)おおむね正しく検出される場合は特に、ユーザがこのオプションを指定し忘れてしまう可能性が高くなります。RTF(Rich Text Format)やAdobe PDF(Portable Document Format)などの一部のファイルフォーマットは、一連のコメントフィールドまたはその他のテキスト形式のデータで始まることがあります。コメントがある程度長い場合、このようなファイルはHelixサーバによって誤ってtextのタイプとして検出されます。

p4 typemapコマンドにより、システム管理者はHelixサーバのファイルタイプとファイル名の仕様をリンクさせるテーブルを設定できるため、この問題を解決できます。追加されているファイルが設定したタイプマップテーブルの入力と一致すると、ファイルタイプがオーバーライドされ、一致しない場合には、Helixサーバアプリケーションがファイルタイプを割り当てます。例えば、すべてのPDFファイルとRTFファイルをbinaryとして処理するには、p4 typemapを使用してタイプマップテーブルを以下のように修正します。

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

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

以下の表に、一般的なファイル拡張子と、それに対応する推奨するHelixサーバのファイルタイプおよび修飾子を示します。

ファイルタイプ Helixサーバファイルタイプ 説明

.asp

text

アクティブサーバページタイプ

.avi

binary+F

Windowsビデオファイル

.bmp

binary

Windowsビットマップファイル

.btr

binary

Btrieveデータベースファイル

.cnf

text

カンファレンスリンクファイル

.css

text

カスケードスタイルシートファイル

.doc

binary

Microsoft Wordドキュメント

.dot

binary

Microsoft Wordテンプレート

.exp

binary+w

エクスポートファイル(Microsoft Visual C++)

.gif

binary+F

GIF画像ファイル

.gz

binary+F

Gzip圧縮ファイル

.htm

text

HTMLファイル

.html

text

HTMLファイル

.ico

binary

アイコンファイル

.inc

text

アクティブサーバインクルードファイル

.ini

text+w

アプリケーション初期設定ファイル

.jpg

binary

JPEG画像ファイル

.js

text

Javaスクリプト言語ソースコードファイル

.lib

binary+w

ライブラリファイル(複数のプログラミング言語)

.log

text+w

ログファイル

.mpg

binary+F

MPEGビデオファイル

.pdf

binary

Adobe PDFファイル

.pdm

text+w

Sybase Power Designerファイル

.ppt

binary

Microsoft PowerPointファイル

.prefab

binary

Unity3Dファイル

.xls

binary

Microsoft Excelファイル

上記の表で推奨されたすべてのファイル拡張子をHelixサーバのファイルタイプにマッピングするには、次のようにp4 typemapテーブルを使用します。

# Perforce File Type Mapping Specifications.
#
#  TypeMap:     a list of filetype mappings; one per line.
#               Each line has two elements:
#               Filetype: The filetype to use on 'p4 add'.
#               Path:     File pattern which will use this filetype.
# See 'p4 help typemap' for more information.
TypeMap:

        text //....asp
        binary+F //....avi
        binary //....bmp
        binary //....btr
        text //....cnf
        text //....css
        binary //....doc
        binary //....dot
        binary+w //....exp
        binary+F //....gif
        binary+F //....gz
        text //....htm
        text //....html
        binary //....ico
        text //....inc
        text+w //....ini
        binary //....jpg
        text //....js
        binary+w //....lib
        text+w //....log
        binary+F //....mpg
        binary //....pdf
        text+w //....pdm
        binary //....ppt
        binary //....xls

あるファイルタイプに複数のファイルタイプ修飾子を使用する必要がある場合、修飾子を続けて指定します。例えば、binary+lFS10とすると、binaryタイプで排他的作業状態(l)であり、圧縮されずに完全な形で保存され(F)、最新の10リビジョンのみが保存されている(S10)ファイルを意味します。

詳細については、『Helix Core P4コマンドリファレンス』のp4 typemapのページを参照してください。