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サーバのclient workspaceは、ユーザのマシン上に存在するファイルの集合で、ディポ内に存在するファイルの集合の一部に対応しています。 より正確に言うと、ディポファイルとワークスペースファイルを名前付きでマッピングします。 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サーバユーザーガイド』の「複数のディポの場所を同じワークスペースにマッピングする」を参照してください。
1つのサーバディレクトリを複数のクライアントワークスペースディレクトリにマップする
1つのサーバディレクトリを複数のクライアントワークスペースディレクトリにマップするには、以下のように「&」記号を使用します。
//depot/... //bruno-client/...
&//depot/and/tools/... //bruno-client/and/utility1/...
&//depot/and/tools/... //bruno-client/and/utility2/...
この方法でマップしたファイルは、読み取り専用ファイルになります。 詳細については、『Helix Coreサーバユーザーガイド』の「1つのディポパスをワークスペース内の複数の場所にマップする」を参照してください。
フォームフィールド
フィールド名 | タイプ | 説明 |
---|---|---|
|
読み取り専用 |
環境変数 clientname引数を指定しなかった場合、 ファイル名およびエンティティに関する文字の制限に注意してください。 |
|
書き込み可能、任意入力 |
クライアントワークスペースを所有するユーザのユーザ名。 デフォルトは、そのワークスペースを生成したユーザです。 指定する所有者は、Helixサーバユーザである必要はありません。 ユーザがまだ存在していないため任意の名前を使用する場合や、ユーザを削除してから仕様を新しいユーザに割り当てるまでのプレースホルダーが必要となる場合があります。 |
|
読み取り専用 |
ワークスペース仕様が最後に更新された日付。 |
|
読み取り専用 |
ワークスペースが何らかの方法で最後に使用された日付と時刻。 アクセス時刻はクライアントが存在するサーバ(クライアントが作成されているサーバまたはクライアントの移動先サーバ)でのみ有効になります。 これは、コミットエッジアーキテクチャにのみ関連する問題です。
|
|
書き込み可能、任意入力 |
ワークスペースが存在するワークステーションの名前。 このワークステーション名を指定した場合、このクライアントワークスペースは、このフィールで指定したホスト以外では操作できなくなります。 指定しなかった場合、どのホストからでもアクセス可能になります。 ホスト名は、 注意
このフィールドは、クライアントワークスペースが誤って別のホスト上で使用されるのを防ぐためにあります。 ホスト名を設定しても、セキュリティは保証されません。その理由は、ホスト名の実効値は |
|
書き込み可能、任意入力 |
ワークスペースに関するコメント。 デフォルトは |
|
書き込み可能、入力必須 |
この設定を変更する場合は、現在の場所にあるファイルをすべて物理的に移動する必要があります。 Windowsのクライアントマシンでは、ルートを |
|
書き込み可能、任意入力 |
任意で指定するクライアントワークスペースの代替ルート(最大2つ)。 Helixサーバのアプリケーションでは、最初にメインのクライアントルート、次に代替のクライアントルートを検査することによって、現在のワーキングディレクトリと合致させます。 これによりユーザは、異なるディレクトリ名の変換をすることができ、複数プラットフォーム上で同じHelixサーバクライアントワークスペース仕様を使用することができます。 複数または別名のワークスペースルートを使用している場合( ワークスペースルートのいずれかでWindowsディレクトリを使用している場合には、そのWindowsディレクトリをメインのワークスペースルートとして指定し、他のワークスペースルートを 例えば、複数のプラットフォーム上で製品をビルドしているエンジニアは、Windows上でのビルド用としてメインのクライアントルートを |
|
書き込み可能、入力必須 |
特定のワークスペースオプションを制御するスイッチセット。 詳細については、「オプションフィールド」を参照してください。 |
|
書き込み可能、入力必須 |
|
|
書き込み可能、入力必須 |
復帰/改行(CR/LF)の変換を設定します。 詳細については、「行末の処理」を参照してください。 |
|
書き込み可能、任意入力 |
ワークスペースを、指定したストリームに関連付けます。 Helixサーバはストリームに関連付けられたワークスペースのビューを生成します。 ユーザがそのビューを手動で変更することはできません。 |
|
書き込み可能、任意入力 |
過去のある時点におけるストリームのビューを設定するチェンジリスト番号。
同時に |
|
書き込み可能、任意入力 |
設定されている場合、ワークスペースは指定されたサーバに限り使用可能です。 未設定の場合、このワークスペースはどのサーバでも使用可能です。 |
|
書き込み可能、複数行 |
ディポのファイルとワークスペースのファイルとの間のマッピングを指定します。 詳細については、「 |
|
書き込み可能、任意入力、複数行 |
ディポのパスを特定の時点に制限します。 ChangeViewフィールドで指定されるファイルは読み取り専用です。すなわち、開くことはできますがサブミットはできません。 以下に例を示します。 //depot/path/...@1000 指定されたパスにあるファイルのリビジョンは、指定されたチェンジリスト番号の後にサブミットされた場合、表示されません。 ChangeViewパスに一致しているファイルは、サブミットできません。 注意
自動ラベルの名前は、ストリーム仕様のインポートマッピング、およびクライアント仕様のChangeViewの指定子として使用することができます。 |
|
書き込み可能、任意入力 |
クライアントのタイプを指定します。 ビルド自動化スクリプトで使用される一時的なクライアントの場合は、readonlyを使用します。 こうしたクライアントの場合、ファイルの編集やサブミットを行うことはできませんが、ビルドスクリプトでは問題なく使用することができます。 partitionedを指定すると、readonly設定と同じ動作になりますが、対象のクライアントを使用して、ファイルの編集とサブミットを実行できるようになります。 注意
ビルド自動化スクリプトで書き込み可能クライアントを使用すると、db.haveテーブルの断片化が発生する場合があります(このテーブルを使用して、クライアントの同期先ファイルが追跡されます)。こうした問題が発生した場合は、書き込み可能なクライアントの代わりに、読み取り専用クライアントやパーティション化されたクライアントを使用してください。readonlyタイプまたはpartitionedタイプのクライアントには、専用のdb.haveテーブルが割り当てられています。このテーブルの場所は、構成可能変数client.readonly.dirを使用して、管理者が事前に設定しておく必要があります。 |
オプション
|
ワークスペースがユーザによって所有されているか否かとは無関係に、指定されたクライアントワークスペースを削除します。 ワークスペースのロックは解除し、作業中のファイルや作業中の変更がないようにする必要があります ( 別のサーバにバインドされているクライアントを強制的に削除するには、 |
|
通常は読み取り専用になっている最終更新日を設定可能にします。 管理者は このオプションを使用するには、 |
|
クライアントに保留中の変更があっても、クライアントを削除することができます。 クライアントは削除され、保留中の変更はそのまま残されます。 ( |
|
クライアントワークスペース仕様を標準入力から読み込みます。 |
|
クライアントワークスペース仕様を標準出力に書き出します。 |
|
|
|
ワークスペースビューを切り替えます。 ワークスペースビューをストリームに切り替えるには、 作業中のファイルのあるクライアントでは、ビューの切り替えはできません。 |
|
別のサーバにバインドされているクライアントを強制的に削除するには、
|
|
ワークスペースを指定ストリームに関連付けます。そのストリームがワークスペースビューの生成に使用されます。 |
|
クライアントワークスペースの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/...
ワークスペースを複数ドライブにわたって指定する場合は、小文字を使用してください。
オプションフィールド
Options:
フィールドには、値がスペースで区切られて表示されます。 各オプションには、それぞれ2つの設定値があります。
オプション | 意味 | デフォルト |
---|---|---|
|
|
|
|
|
|
|
compressオプションは、伝送するデータ量を減らして、低速リンクを介した通信を高速化します。 高速リンクの場合には、圧縮プロセスそのものに、節約される伝送時間より多くの時間がかかることがあります。 一般に、compressはT1以下の伝送速度のときのみに設定するものです。 |
|
|
他のユーザにワークスペース仕様を編集または削除するパーミッションを認めるか否かを設定します。 (
|
|
|
ファイルタイプ修飾子
|
ファイルタイプ修飾子 |
|
rmdirが設定されると、 ヒント
rmdirが設定されると、 |
|
行末の処理
[LineEnd:
]フィールドは、クライアントワークスペースのテキストファイルに使用される行末文字を制御します。 行末オプションを変更しても、実際にはクライアントのファイルは更新されないため、p4 sync -f
コマンドで更新することができます。
[LineEnd:
]フィールドは、次の5種類の設定値のいずれかを受け付けます。
オプション | 意味 |
---|---|
|
クライアントのネイティブモード(デフォルト)を使用します。 |
|
UNIX形式(およびmacOS)の行末識別をで行います。 |
|
OS Xよりも前のバージョンの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 (グラフ) |