P4を構成する
この章では、接続設定の構成方法について説明します。
構成の概要
Perforceは企業向けバージョン管理システムであり、これによりユーザは共有されたバージョン化サービスに接続できます。ユーザはディポと呼ばれる共有リポジトリからファイルを同期させ、それを自分のクライアントワークスペースのワークステーションにおいて編集します。この章では、システム管理者がお客様の組織のPerforceサービスを構成していることを想定しています。バージョン化サービスの設定についての詳細は、『Perforceサーバ管理者ガイド: 基本』を参照してください。
ワークスペースを設定してPerforceとのやり取りを可能にするには、次の手順に従ってください。
-
プロトコル、ホストおよびポートを設定して、Perforceサービスに接続できるようにします。Perforceを設定するを参照してください。
-
ワークスペースを定義します(少なくとも、名前を指定し、ディポファイルのローカルコピーを格納するワークスペースのルートを指定してください)。クライアントワークスペースを定義するを参照してください。
-
接続を確認します。接続を確認するを参照してください。
ワークスペースを構成したら、ディポに格納されているファイルを同期させてワークスペースに取り込むことができます。詳細については、ファイルの同期(取得)および『P4コマンドリファレンス』のp4 syncコマンドの解説を参照してください。
Perforceの構成を始める前に、Perforce管理者に適切なホストおよびポートの設定について問い合わせてください。また、ワークステーションにすでにワークスペースが構成されているか確認してください。
クライアントワークスペースとは
Perforceクライアントワークスペースとは、Perforceによって管理されるファイルリビジョンの操作を行うワークステーション上にあるディレクトリのセットです。各ワークスペースには、Perforceサービスに対してクライアントワークスペースを識別するための固有の名前が付いています。P4CLIENT
環境変数の設定によりワークスペース名を指定しない場合、デフォルトのワークスペース名はワークステーションの名前になります。効果的なワークスペース名を指定するために、P4CLIENT
環境変数を設定してください。1つのマシンに複数のワークスペースを含めることができます。
Perforceクライアントワークスペース内のすべてのファイルは、クライアントワークスペースルートと呼ばれるルートディレクトリを共有します。ワークスペースルートはワークスペースの最上位ディレクトリで、その配下に管理対象のソースファイルが格納されます。
同一マシン上に複数のワークスペースを構成する場合、不用意にファイルが上書きされることのないよう、ワークスペースの場所を離してください。クライアントルートが別々のフォルダに配置されるようにし、ワークスペースビューをディポファイルにマッピングするとき、ワークステーション上の位置が重ならないようにしてください。
ワークスペースを構成したら、ファイルをディポと同期して変更をサブミットできます。これらの操作について詳しくは、“ファイルとチェンジリストの管理”を参照してください。
Perforceによるワークスペースの管理方法
Perforceはクライアントワークスペース内のファイルを以下のように管理します。
-
ユーザによる変更に応じて、ワークスペース内のファイルの作成、更新、削除が行われます。
-
書き込み権限はユーザがファイルを編集する際に有効にされ、変更をサブミットする際に無効にされます。
ユーザのワークスペースの状態はPerforceにより追跡され、管理されます。Perforceアプリケーションにより実行されるファイル管理との衝突を避けるため、ファイルの読み取り専用の許可設定を手動で変更しないでください。Perforceには、クライアントワークスペースの状態が、Perforceに記録されている状態と一致しているか否かを判断できるコマンドがあります。詳細については、オフラインで作業するを参照してください。
Perforceにより制御されるよう指定していないワークスペース内のファイルは、Perforceには無視されます。例えば、コンパイル済みオブジェクト、ライブラリ、実行可能ファイル、およびソフトウェア開発中に作成されたもののディポに追加されていない開発者用一時ファイルなどは、Perforceコマンドの影響を受けません。
クライアントワークスペースを定義したら、ワークスペースの定義を微調整することができます。おそらく最も重要なことは、ディポ内のユーザが見ることができる部分を制限して、不用意にディポ全体を同期させないようにすることです。詳細については、ワークスペースビューを限定するを参照してください。
Perforceを設定する
このガイドでは、環境変数を使用したPerforceの設定方法(set P4CLIENTなど)を説明していますが、ポート、ユーザ、ワークスペース名などのPerforceの設定は以下の方法で指定できます(優先順位の高い順に示しています)。
-
コマンドラインでオプションを使用する
-
P4CONFIG
が設定されている場合、構成ファイルで指定する -
UNIXまたはWindowsにおいてユーザ環境変数を使用する
-
システム環境変数を使用する(Windowsではシステム全体の環境変数はユーザ環境変数と同じではないことがあります)
-
WindowsまたはOS Xにおいて、ユーザレジストリまたはユーザ設定を使用する(p4 setコマンドを発行して設定する)
-
WindowsまたはOS Xにおいて、システムレジストリまたはシステム設定を使用する(p4 set -sコマンドを発行して設定する)
Perforceサービスに接続するようワークステーションを構成するには、サービスが稼働しているホストの名前およびサーバが接続を待機するポートを指定します。デフォルトのホストはperforce
、デフォルトのポートは1666です。サービスがマシン上で実行されている場合、ホスト名をlocalhost
に指定してください。サービスがポート1666で実行されている場合、ポートの指定を省略することができます。
以降のセクションで説明するとおり、これらの設定を指定することができます。オフライン(Perforceサービスに接続しない)での作業についての詳細は、オフラインで作業するを参照してください。
コマンドラインを使用する
これらの設定をコマンドラインで指定するには、-p
オプションを使用してください。例:
p4 -p tcp:localhost:1776 sync //depot/dev/main/jam/Jambase
コマンドラインで指定した設定により、構成ファイル、環境変数、Windowsレジストリ、またはOS Xのシステム設定で指定された設定はすべて上書きされます。コマンドラインのオプションについての詳細は、『P4コマンドリファレンス』のグローバルオプションの説明を参照してください。
構成ファイルを使用する
構成ファイルは、そのファイルのあるディレクトリおよびその配下のディレクトリにあるファイルに影響するPerforceの設定が記述されているテキストファイルです。構成ファイルは、同一マシン上に複数のクライアントワークスペースがある場合に役立ちます。構成ファイルで設定を指定すれば、異なるワークスペースで作業するたびにシステム設定を変更するという面倒な作業は必要ありません。
構成ファイルを使用するには、ファイル名(.p4config
など)を指定して、P4CONFIG
環境変数を定義します。コマンドの発行時、Perforceは現在の作業ディレクトリおよびその親ディレクトリで指定されたファイルを探し、(設定がコマンドラインオプションにより上書きされない限り)そのファイルに含まれる設定を使用します。
ファイル内では、各設定につき1行ずつ以下の形式で指定する必要があります。
setting
=
value
構成ファイルを指定できる設定項目を以下に示します。
設定 |
解説 |
---|---|
|
Unicodeファイルの翻訳に使用される文字セット |
|
|
|
現在のクライアントワークスペース名 |
|
p4 resolveおよびp4 diffにより使用される比較プログラムの名前および場所 |
|
フォームを使用するPerforceコマンドにより起動されるエディタ |
|
クライアントワークステーションのホスト名。現在のクライアントワークスペースの |
|
p4 addコマンドおよびp4 reconcileコマンドの使用時に無視するファイルのリストです。 |
|
この環境変数はシステムインテグレータ用に予約されています。 |
|
p4 resolveのマージオプションで使用するサードパーティのマージプログラムの名前および場所 |
|
Perforceコマンドに対し、現在のPerforceユーザのパスワードを指定します。 |
|
接続先のPerforceサービス(プロキシまたはブローカを含む)のプロトコル、ホスト、およびポート番号 |
|
既知の(信頼された)Perforceサーバのファイルがある場所。このファイルの内容は、p4
trustコマンドを使用して管理します。デフォルトでは、このファイルはユーザのホームディレクトリ内の |
|
現在のPerforceユーザ名 |
これらの設定についての詳細は、『P4コマンドリファレンス』を参照してください。
Example 1. 構成ファイルを使用して2つのワークスペースを切り替える
オナは同一マシン上にある2つのワークスペースを切り替えます。1番目のワークスペースはona-ash
です。これには/tmp/user/ona
のクライアントルートがあり、SSL接続を使用してPerforceサービスにssl:ida:1818
で接続します。2番目のワークスペースはona-agave
です。そのクライアントルートは/home/ona/p4-ona
で、プレーンテキスト接続を使用してPerforceサービスにtcp:warhol:1666
で接続します。
オナはP4CONFIG
環境変数を.p4settings
に設定します。彼女は/tmp/user/ona
に次のテキストを含む.p4settings
というファイルを作成します。
P4PORT=ssl:ida:1818P4CLIENT=ona-ash
彼女は/home/ona/p4-ona
に2番目の.p4settings
ファイルを作成します。そのファイルには次のテキストが含まれます。
P4PORT=tcp:warhol:1666P4CLIENT=ona-agave
彼女が/tmp/user/ona
配下のファイルに対して行う作業は、ssl:ida:1818
にあるPerforceサービスにより管理されます。/home/ona/p4-ona
配下のファイルに対して行う作業は、tcp:warhol:1666
にあるPerforceサービスにより管理されます。
環境変数を使用する
環境変数を使用して接続設定を構成するには、P4PORT
を以下の例のようにprotocol
:
host
:
port
の形式で設定してください。
サービスが稼働している場所 |
接続を待機しているポート |
暗号化プロトコルのサポート |
P4PORTの設定 |
---|---|---|---|
自身のコンピュータ |
|
なし(プレーンテキスト) |
|
|
|
SSL |
|
|
|
なし(プレーンテキスト) |
|
|
|
SSL |
|
P4PORT
の設定にプロトコルを指定していない場合、tcp:
(TCP/IP経由のプレーンテキストでの通信)が想定されます。PerforceサービスがSSLをサポートするように構成されている場合、使用するプロトコルとしてssl:
を設定することによりPerforceへの接続を暗号化することができます。
その他のプロトコル(例えば、tcp4:
はプレーンテキストのIPv4接続を必要とし、ssl64:
は暗号化接続を必要としますが、IPv4よりもIPv6による転送の使用が推奨されます)も、混合ネットワーク環境で使用できます。
詳しくは、IPv6ネットワークで接続するおよび『Perforceサーバ管理者ガイド: 基本』を参照してください。
WindowsのレジストリまたはOS Xのシステム設定を使用する
WindowsおよびOS Xのマシンでは、p4 setコマンドを使用して、接続設定をレジストリ(またはシステム設定)に保存することができます。例:
p4 set P4PORT=ssl:tea.example.com:1667
Perforceの設定をレジストリに構成する方法には以下の2つがあります。
-
p4 set
setting=value
-現在のローカルユーザ用。 -
p4 set -s
setting=value
-ローカルマシーン上のすべてのユーザ用。ローカルユーザ用のレジストリ設定によって上書きされることがあります。設定には管理者権限が必要です。
どちらの設定が適用されているかを確認するには、p4 setコマンドを引数なしで使用します。p4 setコマンドについての詳細は、『P4コマンドリファレンス』を参照してください。
クライアントワークスペースを定義する
クライアントワークスペースを定義するには、
-
P4CLIENT
を設定してワークスペース名を指定します。例えばUNIXシステムの場合、以下のようにします。$ P4CLIENT=bruno_ws ; export P4CLIENT
-
p4 clientコマンドを発行します。
Perforceはクライアントワークスペース仕様フォームをユーザのテキストエディタに表示します。(Perforceのフォームについて詳しくは、Perforceフォームを使用するを参照してください。)
-
最小限必要な設定を指定し、仕様を保存します。
クライアント仕様を作成するとき、ファイルは一切同期されません。ファイルをディポからワークスペースに同期する方法については、ファイルの同期(取得)を参照してください。マシン上でのファイルの再配置についての詳細は、ワークスペースの場所を変更するを参照してください。
クライアントワークスペースの構成において最小限指定しなければならない設定は以下のとおりです。
-
ワークスペース名
ワークスペース名はマシンのホスト名をデフォルトとしますが、ワークステーションには複数のワークスペースを含めることができます。効果的にワークスペースを指定するには、
P4CLIENT
を設定してください。 -
ワークスペースルート
クライアントワークスペースルートはクライアントワークスペースの最上位のディレクトリであり、Perforceはそこにディポファイルの作業用コピーを保存します。ワークスペースルートを必ず設定してください。そうしないと、ファイルを不用意に自分のワークステーションのルートディレクトリに同期させてしまう可能性があります。(Windows環境でワークスペースルートを指定する際は、ドライブ文字も含める必要があります。)
ワークスペースルートディレクトリが存在しない場合は、Perforceアプリケーションがそれを使用できるように事前に作成しておく必要があります。
@
、#
、*
、%
の文字はそれぞれ、Perforceでは特別な意味があります。これらの文字をファイル名またはフォルダ名に使用している場合は、ファイル名と識別子における制限を参照してください。
クライアントワークスペースビューにより、ディポ内のどのファイルがワークスペースにマッピングされるかが決定され、Perforceが個々のディポとワークスペースファイルの間に1対1のマッピングを構成することができます。ディポ内での名前や場所とは異なる名前およびワークスペース内の場所にファイルをマッピングすることができますが、ワークスペースまたはディポ内の複数の場所にファイルをマッピングすることはできません。デフォルトでは、ディポ全体がユーザのワークスペースにマッピングされます。クライアントワークスペースビューを定義し、自分に関係するファイルおよびディレクトリのみをマッピングすることにより、ディポ全体を不用意に自分のワークスペースに同期させないようにすることができます。詳細については、ワークスペースビューを限定するを参照してください。
Example 2. ワークスペースビューを設定する
ブルーノは、p4 clientコマンドを発行して、以下のデフォルトのワークスペースビュー定義を含むフォームを参照します。
Client: bruno_ws Update: 2014/05/12 09:46:53 Access: 2014/05/12 10:28:40 Owner: bruno Host: dhcp_24-n102.dhcp.perforce.com Description: Created by jbruges. Root: c:\bruno_ws Options: :noallwrite noclobber nocompress unlocked nomodtime normdir SubmitOptions: submitunchanged LineEnd: local View: //depot/... //bruno_ws/...
彼は、ビューを変更してディポの開発部分のみをマッピングするようにします。
View: //depot/dev/... //bruno_ws/dev/...
彼はさらにビューを変更して、ファイルを複数のディポから自分のワークスペースにマッピングします。
View: //depot/dev/... //bruno_ws/depot/dev/... //testing/... //bruno_ws/testing/... //archive/... //bruno_ws/archive/...
接続を確認する
接続状態を確認するには、p4 infoコマンドを発行します。P4PORT
が正しく設定されていれば、次のような情報が表示されます。
User name: bruno Client name: bruno_ws Client host: workstation_12 Client root: c:\bruno_ws Current directory: c:\bruno_ws Peer address; 10.0.102.24:61122 Client address: 10.0.0.196 Server address: ssl:example.com:1818 Server root: /usr/depot/p4d Server date: 2012/03/28 15:03:05 -0700 PDT Server uptime: 752:41:33 Server version: P4D/FREEBSD/2012.1/406375 (2012/01/25) ServerID: Master Server license: P4Admin <p4adm> 20 users (expires 2015/01/01) Server license-ip: 10.0.0.2 Case handling: sensitive
Server address:
フィールドにはp4が接続しているホスト、およびPerforceサービスが接続を待機しているホスト名とポート番号が表示されます。P4PORT
の設定が正しくない場合、次のようなメッセージを受け取ります。
Perforce client error: Connect to server failed; check $P4PORT. TCP connect to perforce:1666 failed. perforce: host unknown.
エラーメッセージの3行目に表示される値がperforce:1666
(上記のとおり)である場合、P4PORT
が設定されていません。P4PORT
を設定して再接続してください。
お使いのインストールでSSL接続が必要とされる場合、P4PORT
を確実にssl:
hostname
:
port
の形式にしてください。
サービスに最初に接続を試みたとき、サーバのフィンガープリントを検証することを要求されます。フィンガープリントが正しければ、p4 trustコマンドを使用して、フィンガープリントをファイル(P4TRUST
環境変数で指定)にインストールします。このファイルには、既知または信頼済みのPerforceサーバとそれぞれのフィンガープリントのリストが保存されます。P4TRUST
が未設定である場合、このファイルはユーザのホームディレクトリ内の.p4trust
です。詳細については、SSL暗号化接続を参照してください。
お使いのインストールで(古いPerforceアプリケーションをサポートするため)プレーンテキスト接続が必要とされる場合、P4PORT
をtcp:
hostname
:
port
に設定してください。
IPv6ネットワークで接続する
リリース2013.1以降、Perforceは、IPv4ネットワークと同様にIPv6ネットワークでの接続もサポートしています。
ご使用中のLANまたはWANの構成によって、システム管理者が別のポート設定を推奨する場合があります。また、コマンドラインまたはP4CONFIG
ファイルを使用して、構成可能変数net.rfc3484
を1に設定するよう推奨する場合もあります。
p4 configure set net.rfc3484=1
こうすることによって、プロトコルの値が明示的に指定されていない場合に、RFC3484に準拠した動作が保証されます。つまり、クライアントサイドの構成可能変数net.rfc3484
が1
に設定され、P4PORT
がexample.com:1666
、またはtcp:example.com:1666
、またはssl:example.com:1666
に設定されている場合、ユーザのオペレーティングシステムはそれぞれの接続について、バージョン化サービスとの通信の際にIPv4とIPv6のどちらを使用するかを自動的に決定します。
詳細については、『Perforceサーバ管理者ガイド: 基本』を参照してください。
ワークスペースビューを限定する
デフォルトでは、クライアントワークスペースを作成すると、ディポ全体がマッピングされます。このマッピングをディポの一部のみを参照するように限定し、ディポとワークスペースの場所との対応関係を変更することができます。
ワークスペースビューを表示または変更するには、p4
clientコマンドを発行します。Perforceによりクライアントワークスペース仕様のフォームのView:
フィールドにマッピングのリストが表示されます。
Client: bruno_ws Owner: bruno Description: Created by bruno. Root: C:\bruno_ws Options: noallwrite noclobber nocompress unlocked nomodtime normdir SubmitOptions: submitunchanged View: //depot/... //bruno_ws/...
以降のセクションにおいて、クライアントワークスペースビューの指定に関して詳しく説明します。詳細については、『P4コマンドリファレンス』のp4 clientコマンドの解説およびビューの説明を参照してください。
マッピングを指定する
ビューは複数のマッピングで構成され、各マッピングは2つの部分から成ります。
-
左側には、ディポ内の1つ以上のファイルが次の形式で指定されます。
//
depotname
/
file_specification
-
右側には、クライアントワークスペース内の1つ以上のファイルが次の形式で指定されます。
//
clientname
/
file_specification
クライアントワークスペースビューマッピングの左側をディポサイド、右側をクライアントサイドと呼びます。
ワークスペースファイルのワークステーション上での場所を決定するには、クライアントワークスペースルートをマッピングのクライアントサイドのワークスペース名に置き換えてください。例えば、ワークスペースルートがC:\bruno_ws
である場合、//depot/dev/main/jam/Jamfile
ファイルはC:\bruno_ws\dev\main\jam\Jamfile
として格納されます。
後のマッピングがそれ以前のマッピングに優先されます。以下の例では、2行目が1行目より優先され、//depot/dev/main/docs/manuals/
内のファイルが2階層上にマッピングされます。//depot/dev/main/docs/manuals/
内のファイルが同期されると、それらのファイルはc:\bruno_ws\docs\
に格納されます。
View: //depot/dev/... //bruno_ws/dev/... //depot/dev/main/docs/... //bruno_ws/docs/...
ワークスペースビューでワイルドカードを使用する
ファイルの集合をワークスペースビューにマッピングするには、Perforceワイルドカードを使用します。マッピングのディポサイドで使用されるワイルドカードは、マッピングのクライアントサイドのワイルドカードと一致する必要があります。クライアントワークスペースでのマッピングの指定には、以下のワイルドカードを使用できます。
ワイルドカード |
解説 |
---|---|
|
スラッシュを除くすべての文字に一致します。単一のディレクトリ内のみ照合します。お使いのプラットフォームによっては大文字と小文字を区別します。 |
|
スラッシュを含むすべての文字に一致します。再帰的に(指定されたディレクトリおよびその配下のディレクトリ内すべてを)照合します。 |
|
ファイル名のサブ文字列再配置に使用する位置指定子です。 |
単純なクライアントワークスペースビュー
//depot/dev/... //bruno_ws/dev/...
では、ディポのdev
ブランチ内のすべてのファイルがクライアントワークスペースの対応する場所にマッピングされます。例えば、ファイル//depot/dev/main/jam/Makefile
はワークスペースファイルC:\bruno_ws\dev\main\jam\Makefile
にマッピングされます。
Note
ファイルの不必要なマッピングを避けるため、「...
」ワイルドカードの前に必ずスラッシュを入れてください。
ワークスペースビュー内のマッピングは常に、ディポ内のファイルおよびディレクトリの場所を示します。ワークスペースビューにあるファイルの特定リビジョンを参照することはできません。
ディポの一部をマッピングする
ディポファイルの一部分だけが必要である場合、その部分をマッピングします。ワークスペースビューの範囲を縮小することにより、コマンドが不用意に全体のディポに影響することも避けられます。ワークスペースビューを制限するには、[View:
]フィールドの左側を変更し、ディポの関連部分を指定します。
Example 3. ディポの一部をクライアントワークスペースにマッピングします。
ダイはJamプロジェクトに従事し、Webサイトを保守しているので、[View:
]フィールドを次のように設定します。
View: //depot/dev/main/jam/... //dai-beos-locust/jam/... //depot/www/live/... //dai-beos-locust/www/live/...
ファイルをワークスペースの別の場所にマッピングする
ビューは複数のマッピングにより構成することができます。それを使用して、ディポファイルツリーの一部をワークスペースファイルツリーの別の部分にマッピングできます。マッピングが衝突する場合、後のマッピングがそれ以前のマッピングに優先します。
Example 4. 単一のワークスペースビューにおける複数のマッピング。
以下のビューにより、manualsフォルダにあるMicrosoft Wordのファイルが、ワークスペース内で最上位にあるwordfiles
というフォルダに格納されます。
View: //depot/... //bruno_ws/... //depot/dev/main/docs/manuals/*.doc //bruno_ws/wordfiles/*.doc
ファイルを別のファイル名にマッピングする
マッピングにより、ワークスペース内のファイルをディポ内のファイルと異なる名前にすることができます。
Example 5. ファイルをディポ内とワークスペース内で異なる名前にする
以下のビューにより、ディポファイルのRELNOTES
がワークスペースファイルのrnotes.txt
にマッピングされます。
View: //depot/... //bruno_ws/... //depot/dev/main/jam/RELNOTES //bruno_ws/dev/main/jam/rnotes.txt
ファイル名の一部を再配置する
位置指定子の%%0
から%%9
を使用して、ファイル名とディレクトリの一部を再配置することができます。
Example 6. 位置指定子を使用してファイル名とディレクトリを再配置します。
以下のビューにより、ディポファイルの//depot/allfiles/readme.txt
がワークスペースファイルのfilesbytype/txt/readme
にマッピングされます。
View: //depot/allfiles/%%1.%%2 //bruno_ws/filesbytype/%%2/%%1
ファイルおよびディレクトリを除外する
除外マッピングにより、ファイルおよびディレクトリをワークスペースから明示的に除外することができます。ファイルまたはディレクトリを除外するには、マッピングの先頭にマイナス記号(-
)を付けます。マイナス記号とマッピングの間にスペースを入れないように注意してください。
Example 7. ビューを使用してファイルをクライアントワークスペースから除外します。
Jamプロジェクトに従事しているアールは、自分のワークスペースにHTMLファイルを同期したくありません。彼のワークスペースビューは次のようになります。
View: //depot/dev/main/jam/... //earl-dev-beech/jam/... -//depot/dev/main/jam/....html //earl-dev-beech/jam/....html
チェンジリストによるアクセスを制限する
クライアントワークスペース仕様の[ChangeView
]フィールドにディポのパス名とチェンジリスト番号を入力して、ディポのパスへのアクセスを特定の時点に制限できます。[ChangeView
]フィールドで指定されるファイルは読み取り専用です。すなわち、開くことはできますがサブミットはできません。例:
ChangeView: //depot/path/...@1000
この例では、//depot/path/...
にあるファイルのリビジョンは、チェンジリスト1000の後にサブミットされた場合、表示されません。チェンジリスト1000までにサブミットされたファイルが表示されますが、読み取り専用です。複数のパスを指定できます。
マッピングの衝突を回避する
単一のビューにおいて複数のマッピングを使用するとき、単一のファイルが不用意にディポまたはワークスペースの異なる2つの場所にマッピングされる場合があります。このようにして2つのマッピングが衝突する場合、後のマッピングがそれ以前のマッピングをオーバーライドします。
Example 8. 衝突する誤ったマッピング。
ジョーは次のようにビューを構成しました。
View: //depot/proj1/... //joe/project/... //depot/proj2/... //joe/project/...
2番目のマッピング//depot/proj2/...
が//joe/project
にマッピングされ、最初のマッピングと衝突します。これらのマッピングの衝突により、最初のマッピングは無視されます。//depot/proj1
に含まれているファイルはワークスペースにまったくマッピングされません。そのため//depot/proj2/file.c
が存在しなくても、//depot/proj1/file.c
はマッピングされません。
異なるディポの場所を1つの同じワークスペースにマッピングする
オーバーレイマッピングにより、2つ以上のディポディレクトリのファイルをワークスペースの同じ場所にマッピングできます。2番目のディレクトリの内容をワークスペースにオーバーレイするには、マッピングの先頭にプラス記号(+
)を付けます。
Example 9. 複数のディレクトリを同じワークスペースにオーバーレイする。
ジョーは、ワークスペースを同期するときにプロジェクトのファイルを結合したいので、次のようにビューを構成しました。
View: //depot/proj1/... //joe/project/... +//depot/proj2/... //joe/project/...
オーバーレイマッピングである+//depot/proj2/...
は//joe/project
にマッピングし、最初のマッピングをオーバーレイします。オーバーレイマッピングは衝突しません。//depot/proj2
内のファイル(削除されたファイルも含む)が//depot/proj1
内のファイルよりも優先されます。//depot/proj2/file.c
が存在しない場合(「存在する」ファイルに相対するが、「削除されたファイル」ではない)、代わりに//depot/proj1/file.c
がワークスペースにマッピングされます。
オーバーレイマッピングは、ビルド環境においてスパースパッチを適用する際に役立ちます。
ファイル名およびディレクトリ中におけるスペースの取り扱い
スペースを含むファイルまたはディレクトリは、引用符を使用して囲みます。
Example 10. ファイル名とディレクトリ名のスペースに対応する
ジョーは、ディポ内のファイルをワークスペースにマッピングしたいのですが、いくつかのパスにスペースが含まれています。
View: "//depot/Release 2.0/..." //joe/current/... "//depot/Release 1.1/..." "//joe/Patch Release/..." //depot/webstats/2011/... "//joe/2011 Web Stats/..."
マッピングのサーバサイド、クライアントサイド、または両側で、パスの構成要素の前後に引用符を挿入することにより、ジョーはスペースを含むファイル名やディレクトリ構成要素を指定することができます。
詳細については、ファイル名、パス名、識別子でのスペースの使用を参照してください。
Windowsのワークスペースを複数のドライブにマッピングする
複数のWindowsドライブにわたってワークスペースを指定するには、Root:
をnull
に設定し、ワークスペースビューでドライブ文字を(小文字で)指定します。例:
Client: bruno_ws Update: 2011/11/29 09:46:53 Access: 2011/03/02 10:28:40 Owner: bruno Root: null Options: noallwrite noclobber nocompress unlocked nomodtime normdir SubmitOptions: submitunchanged LineEnd: local View: //depot/dev/... "//bruno_ws/c:/Current Release/..." //depot/release/... "//bruno_ws/d:/Prior Releases/..." //depot/www/... //bruno_ws/d:/website/...
同一のワークスペースを異なるマシンで使用する
デフォルトでは、Host:
フィールドで指定されたマシン上のワークスペースのみが使用できます。同一のワークスペースを異なるプラットフォームの複数のマシン上で使用したい場合、クライアントワークスペース仕様のHost:
項目を削除し、AltRoots:
フィールドを設定してください。ワークスペースルートは2つまで指定できます。指定する場所は、例えばNFSまたはSambaマウントを介して、使用するすべてのマシンから参照可能である必要があります。
Perforceは現在の作業ディレクトリを最初にメインのRoot:
と比較し、指定されている場合は次に2つのAltRoots:
と比較します。現在の作業ディレクトリと一致する最初のルートが使用されます。ルートが一致しない場合、メインルートが使用されます。
Note
ワークスペースルートにWindowsのディレクトリを使用している場合、そのWindowsのディレクトリをメインのクライアントRoot:
に指定し、他のワークスペースルートディレクトリをAltRoots:
フィールドに指定してください。
以下の例において、ユーザbruno
の現在の作業ディレクトリが/usr/bruno
の下である場合、Perforceはc:\bruno_ws
ではなくUNIXのパスをワークスペースルートとして使用します。この手法により、bruno
はUNIXとWindowsの両開発環境において同一のクライアントワークスペース仕様を使用することができます。
Client: bruno_ws Owner: bruno Description: Created by bruno. Root: c:\bruno_ws AltRoots: /usr/bruno/
どちらのワークスペースルートが適用されているか確認するには、p4 infoコマンドを発行してClient
root:
フィールドをチェックします。
同一のワークスペースにあるテキストファイルを異なるプラットフォームから編集する場合、使用するエディタおよび設定で行末が保持されることを確認してください。異なるプラットフォーム間での行末コード設定に関して詳しくは、『行末コードを設定する』を参照してください。
自動的にワークスペースから空のディレクトリを削除する
デフォルトでは、Perforceは空のディレクトリをワークスペースから削除しません。この動作を変更するには、p4
clientコマンドを実行し、Options:
フィールドにおいて、オプションnormdir
をrmdir
に変更します。
ワークスペースオプションの変更に関して詳しくは、ワークスペースオプションを構成するを参照してください。
ワークスペースの場所を変更する
ワークスペース内のファイルの場所を変更するには、p4
clientコマンドを発行して[Root:
]フィールドおよび[View:
]フィールドの一方または両方を変更してください。これらの設定を変更する前に、(作業状態のファイルをサブミットまたは復元することにより)チェックアウトされているファイルがないようにしてください。
両方のフィールドを変更する場合、以下の手順により、ワークスペースのファイルが正しく配置されるようにしてください。
-
ファイルをワークスペース内の古い場所から削除するため、p4 sync ...#noneコマンドを発行します。
-
[
Root:
]フィールドを変更します。(新しいクライアントワークスペースのルートディレクトリは、ファイルをそこに取り込む前にワークステーション上に存在していなければなりません。) -
ファイルをワークスペース内の新しい場所にコピーするため、p4 syncコマンドを発行します。(ワークスペースビューを変更する前にp4 sync ...#noneを実行するのを忘れても、後から手動でファイルを元のクライアントワークスペースから削除することができます)。
-
[
View:
]フィールドを変更します。 -
再度、p4 syncを実行します。クライアントワークスペース内のファイルが新しい場所に同期されます。
ワークスペースオプションを構成する
ワークスペースの[Options:
]フィールドの詳細を以下の表に示します。
オプション |
解説 |
デフォルト |
---|---|---|
|
作業状態になっていないファイルは常に書き込み可能とするかを指定します。デフォルトでは、Perforceサーバは作業状態になっていないファイルを読み取り専用にします。ファイルの不用意な上書きや同期の失敗を防ぐため、
|
|
|
p4 syncの実行時、作業状態になっていない書き込み可能なワークスペースファイルを上書きするかを指定します。(デフォルトでは、作業状態になっていないファイルが書き込み可能である場合、Perforceはそれを上書きしません。)
|
|
|
ワークステーションとPerforceサービスの間で送信されるデータを圧縮するかを指定します。 |
|
|
他のユーザによりクライアントワークスペース仕様の使用、編集または削除が可能であるかを指定します。Perforce管理者は クライアントワークスペース仕様をロックする場合、必ずワークスペース所有者のパスワードをp4 passwdコマンドにより設定してください。 |
|
|
|
ファイルタイプ修飾子 |
|
ディレクトリ内のすべてのファイルが削除された場合、p4 syncによりワークスペース内の空のディレクトリを削除するかを指定します。 |
|
サブミットオプションを設定する
チェンジリストをディポにサブミットするとき、チェンジリスト内のファイルをどのように扱うかを制御するには、SubmitOptions:
フィールドを設定します。有効な設定を以下に示します。
オプション |
解説 |
---|---|
|
すべての作業状態のファイル(変更の有無にかかわらず)がディポにサブミットされます。 これはPerforceのデフォルトの動作です。 |
|
すべての作業状態のファイル(変更の有無にかかわらず)がディポにサブミットされ、すべてのファイルが自動的にデフォルトチェンジリストで再度作業状態にされます。 |
|
内容またはファイルタイプが変更されたファイルのみがディポにサブミットされます。未変更のファイルは元に戻します。 |
|
内容またはファイルタイプが変更されたファイルのみがディポにサブミットされ、デフォルトチェンジリストで再度作業状態にされます。未変更のファイルは元に戻しますが、デフォルトチェンジリストでは作業状態にされません。 |
|
内容またはファイルタイプが変更されたファイルのみがディポにサブミットされます。未変更のファイルはデフォルトチェンジリストに移動されます。 |
|
内容またはファイルタイプが変更されたファイルのみがディポにサブミットされます。未変更のファイルはデフォルトチェンジリストに移動され、変更済みのファイルはデフォルトチェンジリストで再度作業状態にされます。
このオプションは |
行末コードを設定する
テキストファイルを同期するとき、行末をどのように変換するかを指定するには、LineEnd:
フィールドを設定します。有効な設定を以下に示します。
オプション |
解説 |
---|---|
|
クライアントにネイティブモードを使用(デフォルト) |
|
UNIX形式(およびMac OS X)の行末識別: |
|
OS Xより前のバージョンのMacの行末識別: |
|
Windows形式: |
|
クライアントワークスペースの同期の際、行末は
一般に |
Perforceによる行末設定の使用方法に関して詳しくは、Perforceナレッジベースの「CR/LF Issues and Text Line-endings」を参照してください。
http://answers.perforce.com/articles/KB_Article/CR-LF-Issues-and-Text-Line-endings
クライアントワークスペース仕様を削除する
ワークスペースを削除するには、p4 client -d
clientname
コマンドを発行します。クライアントワークスペースを削除すると、Perforceのワークスペースレコードについての記録が削除されますが、ワークスペースやディポから実際にファイルが削除されることはありません。
ワークスペース仕様を削除する手順を以下に示します。
-
このワークスペースに関連する作業中または保留されたチェンジリストを元に戻すか、サブミットします。
-
クライアントワークスペースから既存のファイルを削除します(p4 sync ...#none)。(任意)
-
ワークスペース仕様を削除します。
ワークスペースからファイルを削除する前にワークスペース仕様を削除する場合、お使いのオペレーティングシステムのファイル削除コマンドを使用してワークスペースのファイルを削除できます。
セキュリティ
セキュリティを確保するため、Perforce管理者はPerforceサービスがSSL暗号化接続およびユーザパスワードを要求するようにし、ログインチケットの有効期間を制限するように設定できます。設定について、次のセクションで詳しく説明します。
SSL暗号化接続
お使いのインストールでSSL接続が必要とされる場合、P4PORT
を確実にssl:
の形式にしてください。SSL接続が有効にされたPerforceサーバでプレーンテキストによる通信を行おうとすると、次のエラーメッセージが表示されます。
hostname
:port
Failed client connect, server using SSL. Client must add SSL protocol prefix to P4PORT.
P4PORT
をssl:
に設定して、サーバに再接続を試みてください。
hostname
:port
SSLが有効にされているサーバに最初に暗号化接続を確立したときに、サーバのフィンガープリントを検証するように要求されます。
The authenticity of '10.0.0.2:1818' can't be established, this may be your first attempt to connect to this P4PORT. The fingerprint for the key sent to your client is CA:BE:5B:77:14:1B:2E:97:F0:5F:31:6E:33:6F:0E:1A:E9:DA:EF:E2
サイトの管理者は、表示されたフィンガープリントが正しいか否かを確認することができます。フィンガープリントが正しい場合(に限り)、p4 trustコマンドを使用してそのフィンガープリントを自分のP4TRUST
ファイルに追加します。P4TRUST
が未設定である場合、このファイルはユーザのホームディレクトリ内の.p4trust
であると想定されます。
$ p4 trust The fingerprint of the server of your P4PORT setting 'ssl:example.com:1818' (10.0.0.2:1818) is not known. That fingerprint is CA:BE:5B:77:14:1B:2E:97:F0:5F:31:6E:33:6F:0E:1A:E9:DA:EF:E2 Are you sure you want to establish trust (yes/no)? Added trust for P4PORT 'ssl:example.com:1818' (10.0.0.2:1818)
フィンガープリントが正しければ、yes
と入力してこのサーバを信頼します。フィンガープリントを直接コマンドラインからtrustファイルにインストールすることも可能です。次のコマンドを実行します。
p4 trust -p
ssl:hostname
:port
-i fingerprint
ただし、ssl:
はお使いのhostname
:port
P4PORT
の設定に該当し、fingerprint
はサイトの管理者が確認したフィンガープリントに該当します。
これ以降は、example.com:1818
のサーバがP4TRUST
ファイル内に記録されたものと同じフィンガープリントを報告し続ける限り、ssl:example.com:1818
へのSSL接続が信頼されます。
Perforceサーバが信頼済みのものとは異なるフィンガープリントを報告すると、次のエラーメッセージが表示されます。
******* WARNING P4PORT IDENTIFICATION HAS CHANGED! ******* It is possible that someone is intercepting your connection to the Perforce P4PORT '10.0.50.39:1667' If this is not a scheduled key change, then you should contact your Perforce administrator. The fingerprint for the mismatched key sent to your client is 18:FC:4F:C3:2E:FA:7A:AE:BC:74:58:2F:FC:F5:87:7C:BE:C0:2D:B5 To allow connection use the 'p4 trust' command.
このエラーメッセージは、そのサーバのフィンガープリントがP4TRUST
ファイルに保存されたものから変更されていることと、サーバのSSL証明書が変更されていることを示します。
フィンガープリントへの変更が正当なものである場合でも(例えば、サーバのSSL証明書の有効期間を管理者が制御している場合に証明書が期限切れになっている可能性があるとき)、セキュリティリスクの存在を示すことがあります。
Warning
このエラーメッセージが表示され、Perforce管理者からサーバのキーと証明書のペアを変更したいという連絡がない場合、報告されたフィンガープリントが正しいかユーザが個別に検証しなければなりません。
新しいフィンガープリントの正確さを個別に(会社のイントラネットサイトで確認するか、個人的に管理者に問い合わせるなど、帯域外の手段を用いて)確認できない場合は、変更されたフィンガープリントを信頼してはなりません。
プレーンテキスト接続を必要とするサービスに接続する
お使いのPerforceインストールで(古いPerforceアプリケーションをサポートするため)プレーンテキスト接続が必要とされる場合、P4PORT
をtcp:
に設定してください。プレーンテキスト接続を予期するサービスSSLを使用して接続しようとすると、次のエラーメッセージが表示されます。
hostname
:port
.
Perforce client error: SSL connect to ssl:host
:port
failed (Connection reset by peer). Remove SSL protocol prefix from P4PORT.
P4PORT
をtcp:
に(または、リリース2011.1以前のアプリケーションを使用している場合はhostname
:port
P4PORT
を
に)設定して、サービスへの再接続を試みてください。
hostname
:port
パスワード
Perforceインストールが適用しているセキュリティレベルによって、Perforceコマンドを実行する前にPerforceにログインする必要がある場合があります。パスワードを使用しないと、どのユーザもP4USER
の値を別のユーザ名に設定したり、-u
オプションを付けてp4コマンドを発行したりすることにより、他のPerforceユーザとして操作することが可能になってしまいます。セキュリティを向上させるには、パスワードを使用してください。
パスワードを設定する
Perforceユーザにパスワードを作成するには、p4 passwdコマンドを発行してください。
パスワードの長さは1024文字までです。システム管理者は、Perforceが「強力な」パスワードを要求するように設定することができ、パスワードの最小文字数を指定できます。デフォルトのパスワードが与えられている場合は、ユーザがPerforceを最初に使用する前にパスワードの変更を必須とするように管理者がさらに設定できます。
Perforceサービスではデフォルトで、パスワードが8文字以上で以下の条件の2つ以上に該当していれば、そのパスワードは強力であると定義されています。
-
パスワードに大文字が含まれている
-
パスワードに小文字が含まれている
-
パスワードにアルファベット以外の文字が含まれている
パスワードの最小文字数が8文字である環境では、例えばa1b2c3d4
、A1B2C3D4
、aBcDeFgH
といったパスワードは強力であるとみなされます。
パスワードのリセットや削除を行うには(パスワードを知らない場合)、Perforceのスーパーユーザ権限が必要です。パスワードをリセットする必要が生じた場合は、Perforce管理者に連絡してください。詳しくは、『Perforceサーバ管理者ガイド: 基本』を参照してください。
パスワードを使用する
Perforceユーザにパスワードが設定されている場合、p4コマンドを発行する際にはそのパスワードを使用しなければなりません。パスワードを使用するには、次のいずれかの方法を用います。
-
他のコマンドを発行する前にp4 loginコマンドを発行し、Perforceにログインする
-
環境設定または構成ファイルにおいて、
P4PASSWD
に自分のパスワードを設定する -
p4コマンド発行時に
-P
オプションを指定する(例: p4 -Ppassword
mypassword
submit) -
WindowsまたはOS Xの場合: p4 set -sコマンドを使用してパスワードを保存します。セキュリティレベルの高いサイトにはお奨めしません。Perforce管理者はこの機能を無効にすることができます。
接続時間の制限
Perforce管理者は、ユーザに対して時間制限を設定するようにPerforceサービスを構成することができます。Perforceではチケットベースの認証を使用して時間制限を設定します。チケットベースの認証は環境変数やコマンドラインオプションに依存しないため、パスワードベースの認証より安全です。
チケットはユーザのホームディレクトリ内のファイルに保存されます。チケットはログイン後、制限時間(デフォルトでは12時間)が経過するまで有効です。
ログインおよびログアウト
サイトに時間制限が適用されている場合、p4 loginコマンドを発行してチケットを取得しなければなりません。パスワードプロンプトにパスワードを入力してください。ログインに成功すると、チケットがホームディレクトリ内のチケットファイルに作成されます。チケットの有効期限が切れるか、p4 logoutコマンドの発行によりログアウトするまで、再ログインは要求されません。
ログインが切れるまでの時間を確認するには、次のコマンドを発行します。
p4 login -s
チケットが有効である場合、残り時間が表示されます。チケットの有効期間を延長するには、ログインしている間にp4 loginを使用します。チケットの有効期間は、初期タイムアウト設定値の1/3だけ延長されます。そのため、延長は初期タイムアウト設定の最大値に依存します。
Perforceからログアウトするには、以下のコマンドを発行します。
p4 logout
複数のマシンを使用して作業する
デフォルトでは、チケットはログインしたマシンのIPアドレスに対してのみ有効です。(多くのUNIX環境にみられるように) 1つのホームディレクトリを共有する複数のマシンからPerforceを使用する場合、次のコマンドによりログインします。
p4 login -a
p4 login -aを使用すると、チケットはすべてのIPアドレスから有効なホームディレクトリ内に作成されるため、Perforceに複数のマシンからログインすることができます。
すべてのマシンから同時にログアウトするには、次のコマンドを発行します。
p4 logout -a
p4 loginおよびp4 logoutコマンドに関して詳しくは、『P4コマンドリファレンス』を参照してください。
Unicodeで作業する
PerforceサービスをUnicodeモードで起動して、Unicode文字を含むファイル名やディレクトリ名、およびUnicode文字を含むPerforce識別子(ユーザ名など)や仕様(チェンジリストの説明またはジョブ)に対するサポートを有効にすることができます。
UnicodeモードのPerforceサービスは、Unicodeのファイルおよびメタデータをユーザのワークステーション上で構成された文字セットに変換し、unicode
ファイルやメタデータに有効なUTF-8の文字が含まれていることを検証します。
Note
Unicode文字を含むテキストファイルの管理だけが必要で、上述した機能が必要ない場合は、PerforceをUnicodeモードで動作させる必要はありません。お使いのサイトがUnicodeモードを使用しているかどうかは、システム管理者に問い合わせてください。
これらのインストールでは、Perforceファイルタイプのutf16
をUnicode文字を含むテキストファイルに割り当てます。環境変数のP4CHARSET
またはP4COMMANDCHARSET
を設定する必要はありません。詳細については、Unicodeのファイルにファイルタイプを割り当てるを参照してください。
Unicodeモードのサーバ間で適切に相互運用を行うため、またファイルの同期やサブミットの際にそのようなファイルがPerforceサービスによって正しく変換されるように、P4CHARSET
をテキストエディタやIDEなどそれらにアクセスするアプリケーションによってワークステーションで使用される形式に対応した文字セットに設定しなければなりません。これらの形式は通常、[ ]メニューオプションを使用してファイルを保存する際に一覧表示されます。
utf16
またはutf32
で始まるP4CHARSET
の値については、さらにサーバ出力を表示させるutf16
またはutf32
以外の文字セットにP4COMMANDCHARSET
を設定する必要があります。「サーバ出力」には、情報やエラーのメッセージ、差分出力、およびレポート作成コマンドにより返される情報が含まれます。
有効なP4CHARSET
の値を一覧表示するには、p4 help charsetコマンドを実行します。
詳細については、『Perforceサーバ管理者ガイド: 基本』を参照してください。
Windows環境でP4CHARSETを設定する
あるワークステーションのすべてのユーザにP4CHARSET
を設定するには、Windowsの管理者権限が必要です。次のコマンドを実行してください。
p4 set -s
P4CHARSET=character_set
現在ログインしているユーザにP4CHARSET
を設定するには、次のコマンドを実行します。
p4 set
P4CHARSET=character_set
お使いのワークステーションに、TrueTypeまたはOpenTypeのフォントがインストールされている必要があります。
UNIX環境でP4CHARSETを設定する
コマンドシェルまたは.kshrc
、.cshrc
、.profile
などの起動スクリプトにP4CHARSET
を設定することができます。P4CHARSET
の適切な値を決定するには、LANG
またはLOCALE
の環境変数の設定を調べます。一般的な設定を以下に示します。
|
|
---|---|
|
|
|
|
|
|
通常は、日本語のインストールではP4CHARSET
をeucjp
に設定し、ヨーロッパ言語のインストールではP4CHARSET
をiso8859-1
に設定します。