FAQ

カタログ一覧

PERFORCE

ID.019

Q. プラットフォームによる注意点


PERFORCEに影響するOSの種々の特異性

A.


本書には、以下のプラットフォームにおいて PERFORCE を使用する際の補足情報を掲載します。 PERFORCE 社の FTP サイトには、PERFORCE クライアントと PERFORCEサーバの過去と現在のすべてのバージョンがあります。一般的な製品情報については、PERFORCE 社ホームページを参照してください。


PERFORCEと2007年のサマータイムの変更

PERFORCE はお使いのコンピュータの OS を基にして適切な日時を取得するため、PERFORCE 内部では修正や調整の必要な箇所はありません。サマータイムの変更に合わせてコンピュータをアップデートしていれば、PERFORCE には自動的に適切な日時が反映されます。対応する OS のパッチを取得するには、お使いの OS のベンダーに連絡してください。

Windows のユーザの方は、このページの下部にある Windows の節をご覧ください。


Amiga

BeOS

Cygwin
HPUX
11.11
IBM
AS400
IBM
OS/2
DEC
VMS
Novell
File Server

UNIX
Microsoft
Windows

Macintosh



UNIX

最終更新日: 2004年8月12日

パフォーマンスを最大にするために、サーバ・ルート($P4ROOT)をローカル・ディスク上のNFSにマウントされていないボリュームに設定します。 PERFORCEサーバのファイルロック・セマンティックはSolaris2.5.1以降のNFSマウントでは動作しますが、BSDおよびLinuxのバ リアントとは互換性がありません。PERFORCEのクライアント・ワークスペースは問題なくNFSマウントに格納することができます。


Microsoft Windows

最終更新日: 2007年3月1日

2007年のサマータイムの変更

Microsoft の 2007年サマータイム (DST) 変更対応のパッチをインストールすると、

Windows での日時の問い合わせはすべて、DST の計算に 2007年用メソッドを使用します。2007年より前の履歴データで、現在は DST の期間となっている 1年あたり約 4 週間を参照している場合、1時間変更されます。

ファイル・リビジョンが以下の条件に合致すると、PERFORCEで問題が発生することがあります。

・  2007年より前の年の、対象となる週の間に作成または変更されている
・  +kファイルタイプ修飾子が使用されている
・  RCS キーワードの$Date$ または $DateTime$ が使用されている


パッチを適用すると、MD5チェックサム値が変化している各ファイル・リビジョンに対して、p4 verify は"BAD!"のエラーを出力します。チェックサム値が変化しているのは、ファイルに関連付けられている、またパッチ適用後にWindowsによって返される日時が、パッチ適用前に返される日時と異なるからです。

この問題を修正するには、p4 verify -q をディポに対して実行し、"BAD!"と判定されるファイル・リビジョンを特定します。次に、これらのリビジョンの内容を調べ、この問題の影響を受けてい るリビジョンのみに対して p4 verify -v コマンドを実行します。これにより、それらのリビジョンのMD5チェックサム値を再計算するよう、PERFORCEに指示します。p4 verify -q で"BAD!"と判定されたファイルが、別の理由で報告されている可能性もあります。いくつかのファイルでエラーの報告理由が明確でない場合、 PERFORCEテクニカル・サポートに連絡して支援を依頼してください。

Windows VistaにはDSTパッチは不要です。Windows Vista上で稼動するPERFORCEサーバでは、この問題による障害は起きません。

インストール

WindowsコンピュータにPERFORCEをインストールするには、弊社提供のWindowsインストーラを使用してください。インストーラは環境の 変更箇所を正しく管理し、サーバをWindowsサービスとしてインストールすることができます。

Windowsバージョンの制限

Windows の 32 ビット・プラットホーム(Windows 2000 と 32 ビット・バージョンの Windows 2003 および XP を含む)では、1 プロセスあたりのメモリ使用量が 2GB に制限されています。 Windows 上では PERFORCE サーバは単一のプロセスとして稼 動しており、各クライアント要求をそのプロセス内のスレッドとして処理します。 トランザクション・ボリュームが非常に大きいサイトでは、この 2GB の制限によってパフォーマンスや大きな処理が妨げられる可能性があります。Windows の 64 ビ ット・プラットホームにはこのメモリ制限はありません。32 ビット・バージョンの1 プロセスあたり 2GB の制限に到達する可能性のあるサイトでは、64 ビット・バージョンの Windows を使用することをお勧めします。

PERFORCE サーバはWindows 95またはWindows 98ではサポートされません。これらのOSは十分なファイル・ロッキングに対応していないためです。

システムの制限

以下のWindowsの制限は、PERFORCEを含むすべてのWindowsプログラムに影響します。
  • UNIX とは異なり、Windowsではファイルのアトミックなリネーム機能がありません。リネームは2段階のプロセスとなり、ファイルの削除後に新しいファイル がその場所に配置されます。その結果、アーカイブ内に置き換えられていたり、クライアントと同期されていると、ファイルが存在しない可能性があります。
  • Windowsでは、読み取り用にロックされているファイルの削除は認められません。この制限により、 ファイルの同期またはサブミットに際して問題が発生することがあります。この問題は「ファイルのリンクを解除できません」または「ファイルが別のプロセス により使用されています」といったメッセージにより示されます。
しかし、すべての場合においてPERFORCEは適切なエラーメッセージを返し、操作の再実行により問題の修復が可能です。エラーは致命的なものではなく、PERFORCEメタデータを破壊しません。

ファイルシステムの制限

Windows環境下では、PERFORCEクライアントおよびサーバは、基盤となるWindowsバージョンに固有のパスの最大長の制限を受けることが あります。パスの最大長は、254文字から260文字です。この制限より長いパスを使用すると、致命的でないエラーが発生します。これらのエラーの発生原 因となった処理要求は、正常に完了しません。

ファイルシステムの要件

Novell ファイルシステム、または8.3命名規則のみをサポートするファイルシステムではPERFORCE Windowsサーバを起動しないでください。PERFORCEデータベース・ファイルは長い拡張子を持つため、8.3命名規則ではファイル名が省略され ます。NTFSおよびFAT16 DOS ファイルシステムのNT実装では、長いファイル名をサポートします。また、Windows2000のFAT32ファイルシステムもサポートされています。 ネットワークマウントされたファイルシステムをPERFORCEのサーバ・ルートに使用しないことをお勧めします。この構成は機能しますが、極度にパ フォーマンスが劣化することがあります。これはネットワーク、ディスク・アクセス、およびファイルシステム・ロックの設定に起因します。

サービスパックの要件

PERFORCEをWindows NTで使用する場合は Service Pack 6a が、Windows 2000で使用する場合はService Pack 3 が必要です。その他のWindows OS については特別な必要条件はありません。

特別な対応項目

エディタの設定

デフォルトの設定では、Windowsクライアントはメモ帳をエディタとして使用し、内部の比較ルーチンを使用します。 $SHELL が設定されていれば PERFORCE はMKSツールキットが インストールされていると想定し、デフォルトのエディタとして vi を使用します。このデフォルトをオーバーライドするには、環境変数のP4EDITORP4DIFFを設定します。

クライアント・ワークスペースに複数ドライブを使用する

Windowsでは、クライアント・ワークスペースを複数のドライブにまたがって持つことができます。 この機能を有効にするには、null キーワードを使用してクライアント・ルートを指定し、クライアント・ビューの各行にドライブ名を指定します。次の例は、foocli というクライアントのクライアント仕様です。
Client: foocli

Owner: joe

Description:
  joe により作成。

Root: null

Options: noallwrite noclobber nocompress crlf unlocked nomodtime normdir

View:
  //depot/foo/... //foocli/c:/projects/proj1/...
  //depot/bar/... //foocli/e:/projects/proj2/...



ファイルをWindowsネットワーク・シェアのルートと同期する

ディポ・ファイルをWindowsネットワーク・シェアのルートと同期させようとすると失敗します。 例えば、クライアント仕様の一部が以下のようになっていると、
Root: \\system\sharename

View:
  //depot/... //client/...

//depot/file.c を同期させようとするとエラーになります。 クライアントはディレクトリ \\ を作成しようと試みます。この現象は UNC パス経由でシェアのルートにマッピングされるどのファイルでも発生します。 この問題には以下の2つの回避策があります。 -ネットワーク・ドライブをマッピングして、UNCパスの代わりにドライブ名を使用します。 -シェア・ルートの下に、クライアント・ルートとして使用するディレクトリを作成し、ディレクトリが確実に存在するようにします。

ワイルドカード拡張

Windowsでは、PERFORCEクライアントの実行可能プログラムはシェルに依存せずに直接(setargv.objにより)ワイルドカードを拡張 します。これはDOS(ワイルドカード拡張を行わない)および MKS Korn Shell(ワイルドカード拡張を行う)の両方で正しく機能しますが、Korn Shell 環境でPERFORCEクライアントに "*" を渡すためには、2回(1回は Korn Shell に渡すため、もう1回はPERFORCEクライアントでワイルドカード拡張を渡すため)引用符で囲まなければなりません('"*"' とする)。

チルダ(~)を含むファイル名

Windowsコンピュータと同期する際に不用意にファイルを上書きしないようにするため、ファイル名にティルド文字を使用しないでください。 Windows OS では長いファイル名の表記にティルド文字を使用するため、同期の際にそのようなファイル名の拡張を試みます。

ファイル名と予約語

Windowsの予約語をファイル名に使用しないでください。以下に例を示します。
  • CON
  • PRN
  • AUX
  • LPTn (n は 1から9の数字)
  • COMn (n は 1から9の数字)
  • NUL

  • PERFORCEサーバをコマンドラインから起動する

    Microsoft Windows p4d.exe PERFORCE サーバは、Windowsコンソールのアプリケーションです。アプリケーションはそれ自身をバックグラウンド・プロセスとして自動的に実行しません。サー バでテストを行っている場合以外は、Windowsコンソール・アプリケーションとして起動するよりも、WindowsサービスとしてPERFORCEを 起動することが望ましいでしょう。弊社で提供するWindowsインストーラでは、デフォルトでPERFORCEサーバをWindowsサービスとしてイ ンストールします。PERFORCEサーバを WindowsサービスとしてMS-DOSコマンド・プロンプトから起動するには、"net start perforce" のコマンドを使用します。サーバは起動時に環境変数およびレジストリ変数を読み込みます。これらの変数の設定は、 『PERFORCEシステム管理者ガイド』に解説されています。また、Windows固有の環境変数についてはテクニカル・ノート036に解説されています。

    同一のMicrosoft Windows システム上で複数のPERFORCEサービスを実行する方法について詳しくは、テクニカル・ノート035を参照してください。


    HPUX11.11

    最終更新: 2001年9月

    大容量のファイルのサポート

    P4ディポ・ファイル(P4ROOT)が格納されるファイル・システムでは、大容量ファイルのサポートが有効である必要があります。この機能を有効にする ための HPUX ファイル・システムの管理コマンドは"fsadm"です。 お使いのファイル・システムが大容量のファイルをサポートしているか確認するには、まずdfコマンドを使用して容量を調べます。
    % df /source/p4root
    /source/p4root (/dev/vg00/lvol8): 206504044 blocks 18900001 i-nodes

    次に、fsadmコマンドを使用します(ロー・デバイスを使用):
    % fsadm -F hfs /dev/vg00/rlvol8
    file system : /dev/vg00/rlvol8
    magic number : 4324334
    feature bits : 3
    file system supports : largefiles, longfilenames

    "largefiles" ではなく "nolargefiles" と出力されている場合、以下のことを行う必要があります。
  • ファイルシステムをアンマウントする
  • fsadm -F hfs -o largefiles /dev/vg00/rlvol8
  • ファイルシステムを再度マウントする
  • 詳しくは、"man fsadm" を参照してください。


    VMS(日本語版では未サポート)

    最終更新日: 2004年8月12日

    システム要件

    PERFORCE p4コマンドライン・クライアントはAlpha OpenVMS 6.1、7.0、7.1 および VAX VMS 5.5 で利用可能です。VMSクライアントはUNIXまたはWindowsのあらゆるPERFORCEサーバと共に動作します。

    インストール

    VMSでは、通常PERFORCEが環境変数(P4PORT、P4CLIENT、P4USER など)を期待する箇所に論理名を使用します。論理名の大文字と小文字を区別する値は引用符で囲みます。

    以下の手順でp4クライアントをインストールします。
  • p4.exeをお使いのVMSホストにダウンロードします。
  • p4のシンボルを定義します。 例:
    $ p4 :== $device:[directory]p4.exe

    login.com にこの定義を入れておくと、ログインするたびに設定が有効になります。
  • 注:VMSではクライアント・プログラム情報にバージョン情報が出力されず、'p4 -V' により 'P4-VMS' と表示されます(他のプラットフォームではバージョン番号が出力されます)。

    特別な対応項目

    エディタの設定

    デフォルトでは、VMSクライアントはEDITをエディタとして使用します。論理名 POSIX$SHELL が設定されている場合、ユーザがPosix環境をインストールしていると想定し、viが代わりに使用されます。このデフォルト設定をオーバーライドするに は、論理名 EDITOR を設定します。

    VMSファイルとファイル名
    • VMSではシンボリックリンクをサポートしないため、PERFORCEディポに保存されたシンボリックリンクは、VMSでは小さいテキストファイルとして扱われます。
    • VMSでは強制的にCプログラムのコマンドライン引数を小文字にするため、大文字と小文字が混在したファイル名の参照は引用符で囲んでください。
    • VMS では、拡張子のないファイル名は、コマンドライン上でそれより前にあるファイル名の拡張子を引き継ぐと見なされます。この動作に対処するため、 PERFORCEはピリオド(.)を追加して生成されるすべてのローカル・ファイルの名前に空の拡張子を追加し、ローカル・ファイルの引数から末尾のピリ オドを取り除きます。
    • PERFORCEはVMSでは一時ファイルの格納にカレントディレクトリを使用します。PERFORCEクライアントを使用するにはカレントディレクトリが書き込み可能でなければなりません。


    AS400(日本語版では未サポート)

    最終更新日: 2004年8月17日

    PERFORCE p4 クライアントのAS400バージョンは、Visual Age C++ コンパイラを使用して AS400 V4R4 上に構築されました。PERFORCE サーバはこのプラットフォームでは利用できません。ASCII/EBCDIC 変換は IBMCCSID00819 EBCDIC コードページを使用して、iconv() 関数により処理されます。

    インストール

    以下の手順は、Windowsワークステーションを中間媒体に使用して PERFORCE を AS400 にインストールする方法を示しています。
  • 次のAS400保存ファイルをWindowsワークステーションに(バイナリで)ダウンロードします。
    ftp://ftp.perforce.com/pub/perforce/r02.1/bin.as400/p4.zip

    解凍ユーティリティを使用してPerfsavfファイルを解凍します。ファイル・サイズは8532480バイトです。
  • AS400上にPERFORCEというライブラリを作成します。PERFORCEライブラリ内に、次のようにPERFSAVEという保存ファイルを作成します。
    CRTLIB LIB(PERFORCE)
    CRTSAVF FILE(PERFORCE/PERFSAVF)
  • Windowsワークステーションにおいて DOS コマンド・ウィンドウを開き、Perfsavf ファイルを(バイナリで)ftp で取得してAS400上のPERFORCE/PERFSAVFに保存します。
    C:\> ftp as400hostname
    ...
    ftp> binary
    ftp> put p4 PERFORCE/PERFSAVF
    ftp> quit
  • AS400に戻り、保存ファイルの内容を確認します。
    DSPSAVF FILE(PERFORCE/PERFSAVF)

    以下のオブジェクトが一覧表示されます。
    Object Type Attribute Owner Size Data
    PERFORCE *LIB PROD LORI 73728 YES
    P4 *PGM CPPLE LORI 4157440 YES
    P4 *CMD QPGMR 4096 YES
    P4SYNC *CMD QPGMR 4096 YES
    QCMDSRC *FILE PF QPGMR 32768 YES
    QREXSRC *FILE PF QPGMR 40960 YES
  • 保存ファイルを PERFORCE/PERFSAVF からPERFORCEライブラリ(PERFSAVF 保存ファイルと同じライブラリ)にリストアします。
    RSTLIB SAVLIB(PERFORCE) DEV(*SAVF) SAVF(PERFORCE/PERFSAVF)

    (この手順では手順2で作成したPERFORCEライブラリの抽出を試みます。この結果発生するエラーは無害です。)
  • p4コマンドを利用できるように、PERFORCEライブラリを以下のようにライブラリ・リストに追加します。
    ADDLIBLE PERFORCE

    これで'p4'コマンドが実行できるようになりました。'p4'CMDファイルは引数をまとめて'p4'PGM実行可能モジュールに渡します。

  • 特別な対応項目

    エディタの設定

    デフォルトのエディタ(P4EDITORにより設定される)はedtfです。


    OS/2(日本語版では未サポート)

    最終更新: 1999年12月

    PERFORCE OS/2コマンドライン・クライアントは、p4.exe実行可能プログラムです。PERFORCEサーバはこのプラットフォームでは利用できません。

    特別な対応項目

    エディタの設定

    デフォルトではPERFORCEエディタはvi、ファイル比較プログラムはdiff(UNIXのデフォルトと同じ)です。デフォルトをオーバーライドするには、 EDITOR変数およびDIFF変数を設定します。

    クライアント・ワークスペースに複数ドライブを使用する

    OS/2では、クライアント・ワークスペースを複数のドライブにまたがって持つことができます。 この機能を有効にするには、null キーワードを使用してクライアント・ルートを指定し、クライアント・ビューの各行にドライブ名を指定します。次の例は、foocli というクライアントのクライアント仕様です。
    Client: foocli

    Owner: joe

    Description:
      Joe により作成

    Root: null

    Options: noallwrite noclobber nocompress crlf unlocked nomodtime normdir

    View:
      //depot/foo/... //foocli/c:/projects/proj1/...
      //depot/bar/... //foocli/e:/projects/proj2/...



    BeOS(日本語版では未サポート)

    最終更新: 1999年12月

    Macintosh および Power Computing PowerPC で稼動する BeOS DR9 で PERFORCE BeOS クライアントを使用して、任意のプラットフォーム上のPERFORCEサーバにアクセスすることができます。このバージョンは、BeOS DR9 で Freescale CodeWarrior を使用して開発されました。ターミナル・ウィンドウでシェル・コマンドラインから BeOS p4 クライアントを実行してください。

    特別な対応項目

    エディタの設定

    デフォルトの PERFORCE エディタは、BeOSシステムのGUIエディタである Edit です。このデフォルト設定をオーバーライドするには、$EDITOR 環境変数を設定します。エディタを「複数起動」にするため、以下の作業を必ず行ってください。
  • IconWorldを起動する
  • EditアイコンをIconWorldウィンドウにドラッグする
  • App Info の設定を変更する
  • PERFORCEファイルのパーミッション

    Be Box は単一ユーザ用マシンとして使用され、有効なユーザがスーパーユーザ権限を持っていることを想定しています。それにより、PERFORCEの制御下にある ファイルが外部から変更されないようにPERFORCEが使用する、読み取り専用権限の制約を受けずに済みます。 ファイルが変更されているか判断するには、'p4 diff'コマンドを使用します。


    Amiga(日本語版では未サポート)

    最終更新日: 2006年10月31日

    Perforce Amigaクライアント・プログラムは、UNIXまたはWindows上のどのPERFORCEサーバに対しても実行することができます。PERFORCE サーバはこのプラットフォームでは利用できません。

    システム要件

    ixemul.library バージョン 47 を使用する AmigaOS 3.1。 ライブラリは amiga.sourceforge.net から入手できるかもしれません。

    特別な対応項目

    ファイル・パスの指定

    Amigaバージョンのp4 ではUNIXパス名を使用します。Amigaのパスの書式 "ドライブ:パス/パス/名前" は、UNIXのパスの書式 "/ドライブ/パス/パス/名前" と相互に変換されます。AmigaとUNIXの間のパス名の変換がixemulで有効にされていることを確認し、パスの指定時にはこの変換方法に留意して ください。


    PERFORCE Cygwinクライアント(日本語版では未サポート)

    PERFORCEディポ・ファイルをWindows上に保存しており、PERFORCE Cygwin コマンドライン・クライアントを使用してファイルをクライアント・コンピュータと同期させている場合、テキストモードでCygwinボリュームをマウント し、Windowsの行末コード(CRLFまたは\r\n)が保持されるようにしてください。Cygwinボリュームをバイナリ・モードでマウントする と、同期の際にCR(\r)文字が削除されます。


    Novell ファイル・サーバ(日本語版では未サポート)

    最終更新日: 2006年12月20日

    PERFORCEをNovellファイル・システム上で実行しないでください。PERFORCEサーバは8.3非準拠の名前でデータベース・ファイルを作 成しますが、Novellファイル・システムはそのような拡張ファイル名をサポートしません。その結果、例えば "db.rev"、"db.revcx"、"db.review"の各ファイルを異なるファイルとして区別できないため、それらが上書きされたり破壊され たりします。


    Macintosh(日本語版では未サポート)

    Macintosh のプラットフォーム固有の注意点は、テクニカル・ノート71に記述されています。

    << PERFORCEに関するFAQ一覧へ戻る