テクニカルノート017  


PERFORCEのコマンドライン・クライアントとWindowsにおけるP4EDITOR または P4DIFFの設定について


Windowsでは、P4EDITOR とP4DIFFで起動されるアプリケーションは、フォアグランド・プロセスとして実行しなければなりません。PERFORCEクライアントは、エディタまた はdiffアプリケーションに渡される一時ファイルを作成します。その後、一時ファイルの内容を取得するまで、エディタまたはdiffアプリケーションが終了するのを待ちます。しかしながら、エディタやdiffアプリケーションによっては、自分自身をスポーンし、その処理が終了するのを待たずにPERFORCEクライアントへ復 帰するものがあるかもしれません。これにより、「一時ファイルが見つからない」という内容のエラーが発生するかもしれません。

これを回避するためには、二つの方法があります。:

環境変数SHELLを設定しないでください。SHELLが設定されているとき、PERFORCEはコマンドプロンプトcmd.exeを使用します。設定されていなければ、 WindowsのAPI関数spawn() を呼び出します。
参考:spawn() によってPERFORCEクライアントは、呼び出した別のプログラムが終了するのを待ってから、PERFORCEクライアントへ復帰します。

DOSのバッチファイルをP4EDITOR や P4DIFFに設定してください。DOSのバッチファイルでは、コマンドライン・オプションによって、 P4EDITOR や P4DIFFのプログラムが独立したプロセスをスポーンしないようにすることができます。

注 意:P4EDITOR またはP4DIFF環境変数が明示的に設定されていない場合、使用中のオペレーティング・システムに応じたデフォルトの動きが取られます。このデフォルトの動き に関する情報については、PERFORCEコマンド・リファレンスの環境変数のページをご覧ください。混乱を避けるためには、P4EDITOR およびP4DIFF環境変数を明示的に指定することをお勧めします。
戻る