p4 client

概要

クライアントワークスペース仕様およびそのビューの生成または編集を行います。

p4 workspacep4 clientと同等に機能します。

構文


p4 [g-opts] client [-f] [-t template] [clientname]
p4 [g-opts] client -o [-t template] [clientname]
p4 [g-opts] client -d [-f [-Fs]]clientname
p4 [g-opts] client -s [-S stream | -t clientnameclientname
p4 [g-opts] client -S stream [[-c change] -o] [clientname]
p4 [g-opts] client -i [-f]

解説

Perforceクライアントワークスペースは、ユーザのマシン上にあるファイルの集合で、ディポ内にあるファイルの集合の一部に対応しています。より正確には、ディポファイルとワークスペースファイルの名前付きのマッピングです。p4 clientコマンドは、クライアントワークスペース仕様の生成または編集に使用します。このコマンドを実行すると、Perforceがワークスペース管理のために必要とする情報の入力フォームが表示されます。

p4 clientコマンドは、クライアント仕様を一時ファイルに置き、環境変数P4EDITORにより構成されたエディタを起動します。新規のワークスペースでは、クライアント名はデフォルトでは環境変数P4CLIENT(設定されている場合)、またはクライアントのホスト名になります。ファイルを保存すると、クライアント仕様が作成または変更されます。

クライアントワークスペースのファイルとディポのファイルは、常に1対1のマッピングで関連づけられていますが、これらのファイルは、同じ相対的位置に保存されている必要もなければ、同じ名前を持っている必要もありません。p4 clientフォームの[View:]フィールドで指定されるクライアントビューが、ワークスペースのファイルからディポへのマッピング経路、およびその逆のマッピング経路を指定します。

p4 clientが完了すると、新しく生成された、または変更されたワークスペース仕様がPerforceデータベースに保存されます。この時点では、ワークスペースのファイルは影響を受けません。新しいビューは、次にp4 syncが実行されて初めて有効になります。

変更をストリームにサブミットするには、p4 client -S stream clientnameコマンドを実行してストリームをワークスペースに関連づける必要があります。ワークスペースに関連付けられたストリームを変更するには、p4 client -s -S stream clientnameコマンドを実行します。

フォームフィールド

フィールド名

タイプ

解説

Client:

読み取り専用

環境変数P4CLIENTまたは同等の変数で指定されたクライアントワークスペース名。

引数clientnameなしで呼び出されると、p4 clientは環境変数P4CLIENTまたは同等の変数で指定されたワークスペースに対して動作します。引数clientnameありでlockedワークスペースに呼び出される場合、ワークスペース仕様は読み取り専用になります。

Owner:

書き込み可能、入力必須

クライアントワークスペースを所有するユーザのユーザ名。デフォルトは、そのワークスペースを生成したユーザです。

指定する所有者は、Perforceユーザである必要はありません。ユーザがまだ存在していない場合や、ユーザを削除してから仕様を新しいユーザに割り当てるまでのプレースホルダーが必要な場合は、任意の名前を使用する可能性があります。

Update:

読み取り専用

ワークスペース仕様が最後に更新された日付。

Access:

読み取り専用

ワークスペースが何らかの形で最後に使用された日付と時刻。(注: p4 reloadによるワークスペースのリロードは、アクセス時刻には反映されません。)

Host:

書き込み可能、任意入力

ワークスペースが常駐するワークステーションの名前。指定されていれば、このクライアントワークスペースは上記ホストからのみ操作できます。未設定の場合、どのホストからでもアクセス可能になります。

ホスト名は、そのホストからp4 infoを実行したときの出力と正確に一致していなければなりません。

このフィールドは、クライアントワークスペースが誤って別のホスト上で使用されるのを防ぐためにあります。ホスト名を設定しても、セキュリティは保証されません。その理由は、ホスト名の実効値はp4コマンドの-Hオプションまたは環境変数P4HOSTによりオーバーライドされることがあるためです。これと同様の機能でセキュリティを保証するには、p4 protectのIPアドレス制限機能を使用します。

Description:

書き込み可能、任意入力

ワークスペースに関するコメント。デフォルトはCreated by ownerです。

Root:

書き込み可能、入力必須

[View:]に記述されているすべてのファイルの相対位置の基準となる(ローカルホスト上の)ディレクトリ。デフォルトは現在の作業ディレクトリです。パスはローカルファイルシステムのシンタックスから指定する必要があります。

この設定を変更すると、現在そこにあるファイルをすべて物理的に移動しなくてはなりません。Windowsのクライアントマシンでは、ルートをnullに指定して、ファイルを複数のドライブにマッピングできます。

AltRoots:

書き込み可能、任意入力

2つまで任意で指定するクライアントワークスペースのルートの別名です。

Perforceのアプリケーションでは、最初にメインのクライアントルート、次に別名のクライアントルートを検査することによって、現在のワーキングディレクトリと合致させます。p4 infoコマンドを使用して、表示するルートを表示します。

これによりユーザは、異なるディレクトリ名の変換をすることができ、複数プラットフォーム上で同じPerforceクライアントワークスペース仕様を使用することができます。

複数または別名のワークスペースルートを使用している場合(AltRoots:フィールド)、p4 infoによりレポートされたClient root:を見て、どちらのルートが有効か判断することができます。

ワークスペースルートのいずれかでWindowsディレクトリを使用している場合には、そのWindowsディレクトリをメインのワークスペースルートとして指定し、他のワークスペースルートをAltRoots:フィールドに指定しなければなりません。

例えば、複数のプラットフォーム上で製品をビルドしているエンジニアは、Windows上でのビルド用としてメインのクライアントルートをC:\Projects\Build、UNIX上でのビルドに関する作業用として別名のルートを/staff/userid/projects/buildと指定します。

Options:

書き込み可能、入力必須

ワークスペースオプションを制御する7つのスイッチを指定します。オプションの内容については、オプションのリストの使用上の留意点を参照してください。

SubmitOptions:

書き込み可能、入力必須

p4 submitのデフォルトの動作を制御するオプション。

  • submitunchanged

    すべての作業状態のファイル(変更の有無にかかわらず)がディポにサブミットされます。これはPerforceのデフォルトの動作です。

  • submitunchanged+reopen

    すべての作業状態のファイル(変更の有無にかかわらず)がディポにサブミットされ、すべてのファイルが自動的にデフォルトチェンジリストで再度作業状態にされます。

  • revertunchanged

    内容またはファイルタイプが変更されたファイルのみがディポにサブミットされます。未変更のファイルは元に戻します。

  • revertunchanged+reopen

    内容またはファイルタイプが変更されたファイルのみがディポにサブミットされ、デフォルトチェンジリストで再度作業状態にされます。未変更のファイルは元に戻しますが、デフォルトチェンジリストでは作業状態にされません

  • leaveunchanged

    内容またはファイルタイプが変更されたファイルのみがディポにサブミットされます。未変更のファイルはデフォルトチェンジリストに移動されます。

  • leaveunchanged+reopen

    内容またはファイルタイプが変更されたファイルのみがディポにサブミットされます。未変更のファイルはデフォルトチェンジリストに移動され、変更済みのファイルはデフォルトチェンジリストで再度作業状態にされます。このオプションはsubmitunchanged+reopenと似ていますが、未変更のファイルはディポにサブミットされません。

LineEnd:

書き込み可能、入力必須

復帰/改行(CR/LF)の変換を設定します。オプションの内容については、オプションのリストの使用上の留意点を参照してください。

Stream:

書き込み可能、任意入力

ワークスペースを、指定したストリームに関連付けます。Perforceはストリームに関連付けられたワークスペースのビューを生成します。ユーザは手動でそれを変更できません。

StreamAtChange:

書き込み可能、任意入力

過去のある時点におけるストリームのビューを設定するチェンジリスト番号。

StreamAtChangeが設定されているとき、p4 syncを(引数を付けずに)実行すると、ワークスペースはファイルを最新リビジョンではなくこのチェンジリストのリビジョンに更新します。StreamAtChangeが設定されている場合は、ワークスペースビューに現在のストリームの継承関係が反映されていないため、チェンジリストをサブミットできません(p4 submitがエラーを返します)。

同時にStreamフィールドも有効なストリームに設定されていなければ、このフィールドは無視されます。

ServerID:

書き込み可能、任意入力

設定されている場合、ワークスペースは指定されたサーバに限り使用可能です。未設定の場合、このワークスペースはどのサーバでも使用可能です。

View:

書き込み可能、複数行

ディポのファイルとワークスペースのファイルとの間のマッピングを指定します。詳しくは、p4 help viewsを参照してください。新しいビューは次のp4 syncで有効になります。

ChangeView:

書き込み可能、任意入力、複数行

ディポのパスを特定の時点に制限します。ChangeViewフィールドで指定されるファイルは読み取り専用です。すなわち、開くことはできますがサブミットはできません。例:

//depot/path/...@1000

指定されたパスにあるファイルのリビジョンは、指定されたチェンジリスト番号の後にサブミットされた場合、表示されません。ChangeViewパスに一致しているファイルは、サブミットできません。

オプション

-d clientname

ワークスペースがユーザによって所有されているか否かとは無関係に、指定されたクライアントワークスペースを削除します。ワークスペースのロックは解除し、作業中のファイルや作業中の変更が無いようにする必要があります。(-fオプションにより、Perforce管理者は他のユーザが所有しているロックされたワークスペースを削除することができます。)保留中のファイルがあっても、クライアントを削除することができます(-Fsオプション参照)。

-f

通常は読み取り専用になっている最終更新日を設定可能にします。管理者は-fオプションを使用して他のユーザが所有しているロックされたワークスペースを削除または修正することができます。

このオプションを使用するには、p4 protectにより承認されたadminアクセス権が必要です。

-Fs

クライアントに保留中の変更があっても、クライアントを削除することができます。クライアントは削除され、保留中の変更はそのまま残されます。(-fオプションは、-Fsオプションと共に使用する必要があります。)

-i

クライアントワークスペース仕様を標準入力から読み込みます。

-o

クライアントワークスペース仕様を標準出力へ書き出します。

-o -c change

-S streamと共に使用すると、チェンジリストchangeのサブミット時にストリームstreamと関連付けて作成されたと仮定した場合のワークスペース仕様が表示されます。

-s

ワークスペースビューを切り替えます。ワークスペースビューをストリームに切り替えるには、-S streamを指定します。別のワークスペースに定義されたビューに切り替えるには、-tclientnameを指定します。

作業中のファイルのあるクライアントでは、ビューの切り替えはできません。-fオプションは、-sと共に使用して作業中のファイルの切り替えを強制します。p4 syncを実行するまで、ビューを切り替えてもクライアントワークスペースのファイルに影響はありません。

-S stream

ワークスペースを指定ストリームに関連付けます。そのストリームがワークスペースビューの生成に使用されます。

-t clientname

クライアントワークスペースclientnameのビューとオプションを、このワークスペースの[View:]フィールドと[Options:]フィールドにコピーします。デフォルトのクライアントテンプレートをtemplate.client構成可能変数で指定した場合、このオプションを設定する必要はありません。

g-opts

“グローバルオプション”を参照してください。

使用上の留意点

ファイル引数にリビジョン指定子を使えるか?

ファイル引数にリビジョン範囲を使えるか?

最低限必要なアクセスレベル

適用外

適用外

list

  • スペースを含むファイルまたはディレクトリ名のディポサイドまたはクライアントサイドのマッピングは引用符で囲みます。

  • ワークスペース名に含まれるスペースはアンダーバーと解釈されます。例えば、p4 client "my workspace"というコマンドを入力すると、my_workspaceというワークスペースが生成されます。

  • デフォルトでは、すべてのユーザがp4 clientclientnameですべてのワークスペースを編集できます。これが起きるのを防ぐには、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:]フィールドには、6つの設定項目がスペースで区切られて表示されます。これらの設定項目には、それぞれ2つの設定値があり、その設定値と意味を次の表に示します。

設定値

意味

デフォルト

[no]allwrite

設定により、ワークスペース内の作業状態でないファイルは書き込み可能のままになります。

allwriteが設定され、noclobberが指定されていない場合、同期が安全に行われます。

allwriteに設定されると、作業状態になっていないファイルは現在のユーザが書き込み可能な状態のままになります。マルチユーザシステムのユーザが書き込み可能になるようにファイルシステムのパーミッションを設定することはありません。

noallwrite

[no]clobber

設定により、p4 sync実行時にワークスペースで新たに同期したファイルと同じ名前を持つ、書き込み可能だが作業状態でないファイルが上書き(clobber)されます。

allwriteが設定され、noclobberが指定されていない場合、同期が安全に行われます。

noclobber

[no]compress

設定により、ユーザのワークステーションとPerforceサービスの間のデータストリームが圧縮されます。

compressオプションは、伝送するデータ量を減らして、低速リンクを介した通信を高速化します。高速リンクの場合には、圧縮プロセスそのものに、節約される伝送時間より多くの時間がかかることがあります。一般に、compressはT1以下の伝送速度のときに設定するものであり、それ以外の場合は設定しません。

nocompress

[un]locked

他のユーザにワークスペース仕様を編集または削除するパーミッションを認めるか否かを設定します。(lockedのワークスペースを効果的に使用するには、p4 passwdで該当ワークスペースの所有者のパスワードも設定しておく必要があります。)

lockedに設定されている場合は、所有者だけがワークスペース仕様を使用または編集できます。Perforce管理者は、p4 client-f(強制)オプションを付けてそのロックをオーバーライドすることができます。

unlocked

[no]modtime

ファイルタイプ修飾子+m(modtime)の付いていないファイル:

  • modtimeに設定されている場合、新たに同期したファイルの(ローカルのファイルシステムにおける)更新日は、そのファイルが最後に更新されたときのそのファイルにおける日付スタンプになります。

  • nomodtimeに設定されている場合、バージョンに関係なく、更新日は同期の日付と時刻になります。

ファイルタイプ修飾子+m (modtime)の付いているファイル: 新たに同期したファイルの(ローカルのファイルシステムにおける)更新日は、クライアントにおけるmodtimeまたはnomodtimeの設定に関係なく、ファイルがディポへサブミットされたときのファイルにおける日付スタンプになります。

modtime (+m)の付いているタイプのファイルは、主にファイルに元のタイムスタンプを保存する必要がある開発者向けです。ファイルタイプに付いている+mは、ワークスペースのmodtimeまたはnomodtime設定をオーバーライドします。+m修飾子について、さらに詳しくは、“ファイルタイプ”を参照してください。

大半のファイルではnomodtime (同期の日付と時刻)。

ファイルタイプ修飾子+mが付いているファイルでは無視。

[no]rmdir

ワークスペースにあるディレクトリ内のすべてのファイルが削除されている場合、設定するとp4 syncによりワークスペース内の空のディレクトリが削除されます。

デフォルトでは、クライアントワークスペースに空のディレクトリがあっても(例えば、そのディレクトリにマッピングされるすべてのファイルが最後の同期以後に削除されているような場合)、p4 syncはそのディレクトリをそのまま残します。ただし、rmdirオプションが設定されている場合、p4 syncはワークスペースの空のディレクトリを削除します。

rmdirオプションが有効の場合、p4 syncの操作により現在の作業ディレクトリが削除される可能性があります。このような事態が発生した場合は、作業を継続する前に既存のディレクトリに変更してください。

normdir

行末の処理

[LineEnd:]フィールドは、クライアントワークスペースのテキストファイルに使用される行末文字を制御します。行末オプションを変更しても、実際にはクライアントのファイルは更新されないため、p4 sync -fコマンドで更新することができます。

[LineEnd:]フィールドは、次の5種類の設定値のいずれかを受け付けます。

設定値

意味

local

クライアントのネイティブモード(デフォルト)を使用します。

unix

UNIX形式(および MAC OS X)の行末識別をLFで行います。

mac

OS X より前のバージョンのMacの行末識別をCRで行います。

win

CR + LFでWindows形式の行末識別を行います。

share

shareオプションは、混在した行末をUNIXの行末形式に標準化します。shareオプションはワークスペースに既に同期されているファイルには影響しません。しかし、ファイルがディポにサブミットされる際、shareオプションによりWindows形式の行末であるCR/LFおよびMac形式の行末であるCRはすべてUNIX形式のLFに変換され、LFのみがそのままの状態で残されます。

ワークスペースの同期の際、行末はLFに設定されます。ファイルをWindowsマシンで編集する場合、エディタにより各LFの前にCRが挿入されても、追加されたCRはアーカイブファイル内には現れません。

一般にshareオプションの使用が適しているのは、UNIXのホームディレクトリをネットワークドライブとしてマウントしたWindowsワークステーションのユーザが、ファイルの同期はUNIXから行い、編集はWindowsマシン上で行うような場合です。

Perforceによる行末設定の使用方法に関して詳しくは、Perforceナレッジベースの「CR/LF Issues and Text Line-endings」を参照してください。

http://www.perforce.com/documentation

ストリームを使用する

-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引数で設定されるクライアントと同様、存在する必要がない、あるいはこのサーバに制限される必要があります。このコマンドは、このビルドサーバに制限されていないワークスペースの作成または編集に使用することはできません。

p4 client

P4CLIENTの値または同等の方法によって指定されたワークスペースの仕様を編集または生成します。

p4 client -t sue joe

デフォルトとしてワークスペースsueの設定値とオプションを含むフォームを表示して、ワークスペースjoeの生成または編集を行います。

p4 client -d release1

ワークスペースrelease1を削除します。

関連コマンド

システムが認識しているすべてのワークスペースのリストを表示する。

p4 clients

ディポからワークスペースへファイルを読み込む。

p4 sync

ワークスペースでディポに追加する新しいファイルを作業状態にする

p4 add

ワークスペースで編集するファイルを作業状態にする。

p4 edit

ワークスペースで削除するファイルを作業状態にする。

p4 delete

ワークスペースのファイルに対する変更をディポに書き込む。

p4 submit