p4 client
クライアントワークスペース仕様およびそのビューの生成または編集を行います。
p4
workspace
コマンドは、p4
client
コマンドのエイリアスです。
構文規則
p4 [g-opts] client [-f] [-t template] [-T type] [clientname]
p4 [g-opts] client -o [-t template] [-T type] [clientname]
p4 [g-opts] client -d [-f [-Fs]]clientname
p4 [g-opts] client -s [-S stream | -t clientname] clientname
p4 [g-opts] client -S stream [[-c change] -o] [clientname]
p4 [g-opts] client -i [-f]
p4 [g-opts] client -d -f --serverid=serverid [-Fs]
説明
Helixサーバのクライアントワークスペースは、ユーザのマシン上に存在するファイルの集合で、
ディポ内に存在するファイルの集合の一部に対応しています。
より正確に言うと、ディポファイルとワークスペースファイルを名前付きで
マッピングします。p4 client
コマンドを使用して、
クライアントワークスペース仕様の生成または編集を行います。このコマンドを実行すると、
ワークスペース管理のためにHelixサーバで必要となる情報を
ユーザが入力するためのフォームが表示されます。
p4 client
コマンドは、クライアント仕様を一時ファイルに置き、
環境変数P4EDITOR
により構成されたエディタを起動します。
新しいワークスペースでは、クライアント名がデフォルトで
環境変数P4CLIENT
(設定されている場合)または現在のホスト名に設定されます。
ファイルを保存すると、クライアント仕様が作成または変更されます。
p4 client
フォームのView:
フィールドで指定されるclient viewが、
ワークスペースのファイルとディポの間のマッピング経路を指定します。
クライアントワークスペースファイルとディポファイル間のマッピング:
- 同じまたは異なる相対的位置を指定できます。
- 同じまたは異なる名前を指定できます。
- 通常は、多対多のマッピングになります。例えば、
path/to/....html path/from/....htm
のようになります。「...
」はワイルドカードで、4番目の「.」は、ファイル拡張子の前に配置されるリテラルの「.
」です。詳しくは、「ファイル指定」を参照してください。
p4 client
が完了すると、
新しく生成された、または変更されたワークスペース仕様が
Helixサーバデータベースに保存されます。
ワークスペース内のファイルは影響を受けません。新しいビューは、
次にp4
sync
が実行されて初めて有効になります。
変更をストリームにサブミットするには、p4 client -S stream
clientname
コマンドを実行して
ストリームをワークスペースに関連づける必要があります。ワークスペースに関連付けられた
ストリームを変更するには、p4 client -s -S stream
clientname
コマンドを実行します。
- クライアントの作成後にクライアントのストレージタイプを変更することはできません。例えば、
readonly
クライアントをwriteable
クライアントに変更することはできません。 - 「クライアント」、「ワークスペース」、「ワークスペースクライアント」という用語は、すべて同じ意味になります。
クライアントワークスペースビュー内のマッピングについて
一致するファイルを除外するには、マッピングの先頭にマイナス記号「-」を指定します。
複数のマッピング行が同じファイルを指している場合、前のマッピング行が後のマッピング行によって上書きされます。
複数のサーバディレクトリを同じクライアントワークスペースディレクトリにマップする
複数のサーバディレクトリを同じクライアントワークスペースにマップするには、以下のように「+」記号を使用して、古いマッピングを新しいマッピングで上書きします。
//depot/project1/... //bruno-client/project
+//depot/project2/... //bruno-client/project
古いマッピングと新しいマッピングの両方に一致するファイルが存在する場合、新しいマッピングに一致するファイルの方が使用されます。詳細については、『Helix Coreコマンドライン(P4)ガイド』の「複数のディポの場所を同じワークスペースにマッピングする」を参照してください。
1つのサーバディレクトリを複数のクライアントワークスペースディレクトリにマップする
1つのサーバディレクトリを複数のクライアントワークスペースディレクトリにマップするには、以下のように「&」記号を使用します。
//depot/... //bruno-client/...
&//depot/and/tools/... //bruno-client/and/utility1/...
&//depot/and/tools/... //bruno-client/and/utility2/...
この方法でマップしたファイルは、読み取り専用ファイルになります。詳細については、『Helix Coreコマンドライン(P4)ガイド』の「1つのディポパスをワークスペース内の複数の場所にマップする」を参照してください。
フォームフィールド
フィールド名 | タイプ | 説明 | ||||||
---|---|---|---|---|---|---|---|---|
|
読み取り専用 |
環境変数 clientname引数なしで呼び出されると、 ファイル名とエンティティに関する文字の制限に 注意してください。 |
||||||
|
書き込み可能、任意入力 |
クライアントワークスペースを所有するユーザのユーザ名。デフォルトは、そのワークスペースを生成したユーザです。 指定する所有者は、 Helixサーバユーザである必要はありません。 ユーザがまだ存在していないため任意の名前を使用する場合や、 ユーザを削除してから仕様を新しいユーザに割り当てるまでの プレースホルダーが必要となる場合があります。 |
||||||
|
読み取り専用 |
ワークスペース仕様が最後に更新された日付。 |
||||||
|
読み取り専用 |
ワークスペースが何らかの方法で最後に使用された日付と時刻。 アクセス時刻はクライアントが存在するサーバ(クライアントが作成されている サーバまたはクライアントの移動先サーバ)でのみ有効になります。 これは、コミットエッジアーキテクチャにのみ関連する問題です。
|
||||||
|
書き込み可能、任意入力 |
ワークスペースが存在するワークステーションの名前。 このワークステーション名を指定した場合、このクライアントワークスペースは、 このフィールで指定したホスト以外では操作できなくなります。 指定しなかった場合、どのホストからでもアクセス可能になります。 ホスト名は、 注意
このフィールドは、クライアントワークスペースが誤って別のホスト上で使用されるのを
防ぐためにあります。
ホスト名を設定しても、セキュリティは保証されません。
その理由は、ホスト名の実効値は |
||||||
|
書き込み可能、任意入力 |
ワークスペースに関するコメント。デフォルトは |
||||||
|
書き込み可能、入力必須 |
この設定を変更する場合は、現在の場所にあるファイルをすべて物理的に
移動する必要があります。Windowsのクライアントマシンでは、
ルートを |
||||||
|
書き込み可能、任意入力 |
任意で指定するクライアントワークスペースの代替ルート(最大2つ)。 Helixサーバのアプリケーションでは、最初にメインのクライアントルート、
次に代替のクライアントルートを検査することによって、現在のワーキング
ディレクトリと合致させます。 これによりユーザは、異なるディレクトリ名の変換をすることができ、 複数プラットフォーム上で同じHelixサーバクライアントワークスペース仕様を 使用することができます。 複数または別名のワークスペースルートを使用している場合
( ワークスペースルートのいずれかでWindowsディレクトリを使用している場合には、
そのWindowsディレクトリをメインのワークスペースルートとして指定し、
他のワークスペースルートを 例えば、複数のプラットフォーム上で製品をビルドしているエンジニアは、
Windows上でのビルド用としてメインのクライアントルートを |
||||||
|
書き込み可能、入力必須 |
特定のワークスペースオプションを制御するスイッチセット。 「オプションフィールド」を参照してください。 |
||||||
|
書き込み可能、入力必須 |
|
||||||
|
書き込み可能、入力必須 |
復帰/改行(CR/LF)の変換を設定します。 詳しくは、「行末の処理」を参照してください。 |
||||||
|
書き込み可能、任意入力 |
ワークスペースを、指定されたストリームに関連付けます。 Helixサーバにより、ストリームに関連付けられたワークスペースのビューが生成されます。 ユーザがそのビューを手動で変更することはできません。 |
||||||
|
書き込み可能、任意入力 |
過去のある時点におけるストリームのビューを設定するチェンジリスト番号。
同時に |
||||||
|
書き込み可能、任意入力 |
設定されている場合、ワークスペースは指定されたサーバに限り使用可能です。 未設定の場合、このワークスペースはどのサーバでも使用可能です。 |
||||||
|
書き込み可能、複数行 |
ディポのファイルとワークスペースのファイルとの間のマッピングを指定します。
詳細については、「 |
||||||
|
書き込み可能、任意入力、複数行 |
ディポのパスを特定の時点に制限します。 ChangeViewフィールドで指定されるファイルは読み取り専用です。 すなわち、開くことはできますがサブミットはできません。以下に例を示します。 //depot/path/...@1000 指定されたパスにあるファイルのリビジョンは、指定されたチェンジリスト番号の 後にサブミットされた場合、表示されません。 ChangeViewパスに一致しているファイルは、サブミットできません。 注意
自動ラベルの名前は、ストリーム仕様のインポートマッピング、およびクライアント仕様のChangeViewの指定子として使用することができます。 |
||||||
|
書き込み可能、任意入力 |
クライアントのタイプを指定します。
注意
ビルド自動化スクリプトで書き込み可能クライアントを使用すると、 |
フィールドの下に行がある場合は、その行をインデントしてください。以下に例を示します。
Description:Created by maria
オプション
|
ワークスペースがユーザによって所有されているか否かとは無関係に、 指定されたクライアントワークスペースを削除します。ワークスペースのロックは解除し、 作業中のファイルや作業中の変更がないようにする必要があります 注意
別のサーバにバインドされているクライアントを強制的に削除するには、
|
|
通常は読み取り専用になっている最終更新日を設定可能にします。
管理者は このオプションを使用するには、 |
|
クライアントに保留中の変更があっても、クライアントを削除することができます。
クライアントは削除され、保留中の変更はそのまま残されます。
|
|
クライアントワークスペース仕様を標準入力から読み込みます。 |
|
クライアントワークスペース仕様を標準出力に書き出します。 |
|
|
|
ワークスペースビューを切り替えます。ワークスペースビューをストリームに切り替えるには、
作業中のファイルのあるクライアントでは、ビューの切り替えはできません。
|
|
別のサーバにバインドされているクライアントを強制的に削除するには、
|
|
ワークスペースを指定ストリームに関連付けます。そのストリームが ワークスペースビューの生成に使用されます。 |
|
クライアントワークスペースのclientnameのビューとオプションを、
このワークスペースの[ |
|
デフォルトでは、クライアントは
|
|
「グローバルオプション」を参照してください。 |
使用上の注意点
ファイル引数でリビジョン指定子を使用できるか? | ファイル引数でリビジョン範囲を使用できるか? | 最低限必要なアクセスレベル |
---|---|---|
適用外 |
適用外 |
|
- スペースを含むファイルまたはディレクトリ名のディポ側またはクライアント側の マッピングは引用符で囲みます。
- ワークスペース名に含まれるスペースはアンダーバーと解釈されます。例えば、
p4 client "my workspace"
というコマンドを入力すると、my_workspace
というワークスペースが生成されます。 - デフォルトでは、すべてのユーザが
p4 client
clientname
で すべてのワークスペースを編集できます。 これが起きるのを防ぐには、locked
オプションを設定し、p4 passwd
でワークスペース所有者の パスワードを生成します。 -
複数ドライブにまたがるWindows上のワークスペースを指定するには、 ワークスペースビューで
Root:
をnull
に設定し、 ドライブの文字を指定します。 例えば、下のワークスペース仕様では、ルートがnull
に設定され、//depot/main/...
はC:
ドライブ領域へ、他のリリースはD:
ドライブへマッピングされています。Client: eds_win Owner: edk Description: Ed's Windows Workspace Root: null Options: nomodtime noclobber SubmitOptions: submitunchanged View: //depot/main/... "//eds_win/c:/Current Release/..." //depot/rel1.0/... //eds_win/d:/old/rel1.0/... //depot/rel2.0/... //eds_win/d:/old/rel2.0/...
ヒント上記の「Description:」と「View:」のように、フィールドの下にある各行をインデントしてください。
ワークスペースを複数ドライブにわたって指定する場合は、 小文字を使用してください。
オプションフィールド
Options:
フィールドには、値がスペースで区切られて表示されます。
各オプションには、それぞれ2つの設定値があります。
オプション | 意味 | デフォルト値 |
---|---|---|
|
|
|
|
|
|
|
compressオプションは、伝送するデータ量を減らして、 低速リンクを介した通信を高速化します。高速リンクの場合には、 圧縮プロセスそのものに、節約される伝送時間より多くの 時間がかかることがあります。一般に、compressはT1以下の 伝送速度のときのみに設定するものです。 |
|
|
他のユーザにワークスペース仕様を編集または削除する権限を
許可または拒否するかを設定します。(
|
|
|
ファイルタイプ修飾子
|
ファイルタイプ修飾子 |
|
rmdirが設定されると、 ヒント
rmdirが設定されると、 |
|
行末の処理
[LineEnd:
]フィールドは、クライアントワークスペースのテキストファイルに
使用される行末文字を制御します。行末オプションを変更しても、
実際にはクライアントのファイルは更新されないため、
p4 sync -f
コマンドで更新することができます。
[LineEnd:
]フィールドは、次の5種類の設定値のいずれかを受け付けます。
オプション | 説明 |
---|---|
|
クライアントのネイティブモード(デフォルト)を使用します。 |
|
UNIX形式(およびMAC OS X)の行末識別を |
|
macOSよりも前のバージョンのMacの行末識別を |
|
|
|
ワークスペースの同期の際、行末は 一般に
|
詳細については、サポートナレッジベースの記事「CR/LF Issues and Text Line-endings」を参照してください。
ストリームを使用する
-s
が付いていない場合、-S stream
オプションにより、ストリーム専用の
新規クライアント仕様を作成することができます。クライアント仕様が既に存在していて、
-S
オプションが-s
オプションなしで使用されている場合、
これは無視されます。-S
オプションを指定すると、クライアントの
Stream
フィールドが設定されます。専用のシンタックス-S
//
により、
a
/stream
@changelist
Stream
およびStreamAtChange
を同時に設定することができます。
-S stream
オプションは、-o -c
change
と共に使用されることで、古いストリームのクライアントビューを確認することができます。
これは、変更が記録された時点でストリームに作成されていた
クライアント仕様を生成します。
ビルドサーバを使用する
ビルドサーバタイプのサーバ(p4 help server
参照)は、ビルドファーム統合を
サポートするレプリカであり、p4
client
コマンドを使用してビルドサーバに
クライアントワークスペースを作成し、編集できます。このワークスペースでは、
レプリカのサポートするすべての読み取り専用コマンドに加えてp4 sync
コマンドを発行できます。
詳細については、「p4 help buildserver
」を実行してください。
ビルドサーバにクライアントワークスペースを作成または編集する場合、
オプションのname
引数で指定されたクライアントは、
環境変数P4CLIENT
やグローバルな-c client
引数で設定されるクライアントと同様、
存在する必要がない、あるいはこのサーバに制限される必要があります。
このコマンドは、このビルドサーバに制限されていないワークスペースの
作成または編集に使用することはできません。
読み取り専用クライアントを使用する
定期的にクライアントを作成、同期、廃棄するビルド自動化スクリプトは、
徐々にdb.have
テーブルを断片化する可能性があります。これを防ぐため、
これらのクライアントにreadonly
のタイプを指定することができます。
このタイプが指定されたクライアントはファイルの追加、編集、反映および
サブミットができませんが、ビルドスクリプトでは問題ありません。
読み取り専用のクライアントには、独自の個人用db.have
データベーステーブルが
割り当てられています。このテーブルの場所は、client.readonly.dir
構成可能変数を使用して指定します。
読み取り専用クライアントをセットアップするには以下を実行します。
-
client.readonly.dir
構成可能変数を、クライアントのdb.*テーブルが 保存されるディレクトリに設定します。例えば、
myroc
という名前の読み取り専用クライアントを作成し、/perforce/1
にclient.readonly.dir
を設定したあと、このクライアントを 使用してファイルの同期を行うと、次のデータベースに書き込みが行われます。/perforce/1/server.dbs/client/
hashdir
/db.myroc - クライアント仕様の
Type
フィールドをreadonly
に設定します。
グラフディポレポジトリをクライアントに含める
「p4 client (グラフ)」を参照してください。
例
|
|
|
デフォルトとしてワークスペース |
|
ワークスペース |
p4 client -o build-client | sed "s/Created by/Created by automated build/" | p4 client -i |
クライアント仕様の「Description:」フィールドが自動的に更新されます。 この例では、-oオプションと-iオプションを使用して、標準出力から標準入力にリダイレクトしています。 |
関連コマンド
システムが認識しているすべてのワークスペースのリストを表示する |
|
ディポからワークスペースへファイルを読み込む |
|
ワークスペースでディポに追加する新しいファイルを作業状態にする |
|
ワークスペースで編集するファイルを作業状態にする |
|
ワークスペースで削除するファイルを作業状態にする |
|
ワークスペースのファイルに対する変更をディポに書き込む |
|
グラフディポバージョン | p4 client (グラフ) |