ゲームエフェクトデザイナーのブログ (新)

レポート記事とかUE4のマテリアルとか。C#とかも触ったり。

P4VとP4コマンドによるクライアントの基本操作

前回Helix Core Server(旧称 Perforce Server)の管理者としてディポを作成したり削除したりといった最低限の手順をまとめましたが‥

今度はクライアント側‥つまり開発者としてストリームを作成したり削除したり、ファイルを追加・チェックアウト・サブミットしたりといったあたりの操作についてまとめました。

目次はこちら。


まずはGUIによるクライアントソフト「P4V」での操作を解説して‥
次にコマンドプロンプトP4コマンドを使った操作を解説します。

 

P4Vでの操作


まずは Helix Core(Perforce)によるバージョン管理を GUI で行えるクライアント「P4V 」を使った操作について解説します。

まずはP4Vを起動します。

f:id:moko_03_25:20200830013054p:plain

起動時にサーバー接続画面が表示されるので、接続先のサーバーと自身のユーザー名、そして開くワークスペースを指定してOKします。

ここではサーバー・ユーザー・ワークスペースはすでに存在するものとして説明します。
※ちなみに起動の度にこのダイアログが表示されるのが煩わしい場合は Show dialog at startup のチェックを外せば省略されます

f:id:moko_03_25:20200830013320p:plain

ストリームの作成

メニューの View から Streams タブを表示して、ウインドウ内のどこか空いている場所で右クリック「New Stream...」を選択。

f:id:moko_03_25:20200830110051p:plain

ダイアログが表示されるので、ストリーム名・タイプ・どのディポに追加するかを選びます。ここではタイプを mainline にしました(タイプに関するドキュメントはこちら)

ついでに下部の2つのオプションは必要に応じてONにすると良いかと思います。

・Create a workspace to use with this stream
 このストリームのワークスペースも同時に作成してくれます。
 ただし後からワークスペース名を変更できないので注意が必要です。

・Popilate the mainline stream after it is created
 トップ階層に置くフォルダの追加も同時に行います。

f:id:moko_03_25:20200830194507p:plain

ストリームがまだ空っぽなのでファイルをどこから追加するか聞かれます。ここではローカルにあるものを持ち込みたいので「Copy files from the local file system」を選択。

f:id:moko_03_25:20200830110813p:plain

エクスプローラ上で適当な場所にフォルダとファイルを用意します。

f:id:moko_03_25:20200830112051p:plain

フォルダ追加のダイアログが表示されるので「Browse」ボタンから指定します。

f:id:moko_03_25:20200830112156p:plain

追加されました。

f:id:moko_03_25:20200830112122p:plain

メニューの View から Streams タブを表示、新しくストリームが追加されているのが確認できます。自動で作られたものなので、設定を確認してみます。

f:id:moko_03_25:20200830112209p:plain

メニューの View から Workspave タブを表示、自分が作成したワークスペースが一覧されて、新しく追加されていることが分かります。ただ、ワークスペース名やルートが勝手に決められているので‥

f:id:moko_03_25:20200830112221p:plain

ワークスペースを右クリック「Edit Workspace '~'」を選択。

f:id:moko_03_25:20200830114157p:plain

ワークスペース名は変えられませんがワークスペースルートは変えられます。

f:id:moko_03_25:20200830194244p:plain

すると、新しいワークスペースルートにフォルダ/ファイルをコピーするか聞かれるのでコピーしておくと良いかと思います(古いワークスペースルートにフォルダが残ったままになるので、不要なら後で消しておきましょう)

f:id:moko_03_25:20200830120902p:plain

ストリームの削除

Workspace タブで消したいワークスペースを右クリック「Delete Workspace '~'」を選択するだけでOKです。ただし、削除したいストリームのワークスペースがまだ存在していると消せないので、先に模様です。

f:id:moko_03_25:20200830194955p:plain

ワークスペースの削除

Workspace タブで消したいワークスペースを右クリック「Delete Workspace '~'」を選択するだけでOKです。

ファイルの追加・チェックアウト・リバート・削除・サブミット

このページをご覧になってる方はさすがにこちらは大丈夫かと思いますので(記事も冗長になるので‥)割愛します。要望の声が沢山届けば書くかも。。

ツリーでファイルを選択しておいてからの下記のショートカットは大変便利です!

・Ctrl + E ‥ チェックアウト(Edit)
・Ctrl + R ‥ リバート(Revert)
・Ctrl + S ‥ サブミット(Submit)
・Alt + Shift + S ‥ エクスプローラを開く

 

おまけ情報

複数のワークスペースを切り替えることが多いならワークスペースお気に入りに入れておくと便利です。

あと特定のファイルをブックマークすることもできて、頻繁に更新したり開いたりするエクセルファイルなど登録しておけば2クリックですぐ表示できます。

ツリー上でファイルを直接ダブルクリックして開けるので(実は最近まで知らなかった)バージョン管理しているエクセルをツリーから開くのを活用すると結構快適です。

コマンドプロンプトでの操作


さて、お次は コマンドプロンプトP4コマンドを使った操作方法について解説します。

ちなみにコマンドプロンプトで操作する際にも、P4V を表示しながら作業すると、ストリームの状況をGUIで確認しながら作業できるため学習時にオススメです。

ユーザーの指定

今回解説している環境が Helix Core Server もローカルにあるため、サーバー管理者ではなく明示的にクライアント側のユーザーを指定してあげます。

コマンドプロンプトを起動したらパスはどこでも良いので下記のどちらかを実行します。

p4 -u ユーザー名 info

 または‥

set P4USER=ユーザー名

f:id:moko_03_25:20200830210544p:plain

User name に反映されており、サーバーも認識していることが分かります。

指定ディポのストリームの確認

下記のP4コマンドで確認できます(stream が複数形なことにご注意)

p4 streams //ディポ名/...

f:id:moko_03_25:20200830224742p:plain

ストリーム作成

下記のP4コマンドでストリームを作成します。
ここではタイプを mainline にしました(タイプに関するドキュメントはこちら)

p4 stream -t ストリームのタイプ //ディポ名/ストリーム名


Enterで実行すると突然テキストエディタが開いて設定が表示されるので、設定を書き換える必要があれば書き換えます。書き換え不要ならそのまま閉じればOKです(ちなみに Owner が指定ユーザーでは無い場合、今一度ユーザーを指定してみてください)

f:id:moko_03_25:20200830230942p:plain

コマンドプロンプトでも先ほどの設定で保存されたログが出ています。

f:id:moko_03_25:20200830231254p:plain

P4V の Streams タブで F5 を押して更新すると追加されたストリームが確認できます。

f:id:moko_03_25:20200830231239p:plain

ちなみに development タイプのストリームを作成する際には必ず親のストリームを指定する必要があります(none のままではセーブできない)

f:id:moko_03_25:20200830231638p:plain

親を指定してOKすると、その子として development タイプのストリームが追加されます。

f:id:moko_03_25:20200830231650p:plain

P4V の Stream Graph タブで階層を分かりやすく表示してくれます。

f:id:moko_03_25:20200830231844p:plain

ストリーム削除

下記のP4コマンドでストリームを削除します。

p4 stream -d ストリームのタイプ //ディポ名/ストリーム名

f:id:moko_03_25:20200830235134p:plain

P4V の Streams タブで F5 を押して更新すると指定したストリームが削除されています。

f:id:moko_03_25:20200830235142p:plain

ファイル操作時のコマンドプロンプトの起動

TIPSとして、ワークスペースツリー内の任意のフォルダで右クリック「Open Command Window Here」を選択すると‥

f:id:moko_03_25:20200830235600p:plain

そのフォルダがカレントディレクトリの状態で、接続先など適切な設定がなされた状態ですぐに作業を開始できるとのことです。便利!

f:id:moko_03_25:20200830235609p:plain

ファイルの確認

下記のP4コマンドでフォルダ以下のファイルが確認できます。

p4 have ...

f:id:moko_03_25:20200831000206p:plain

ファイルの追加

まずはファイルを用意します。

f:id:moko_03_25:20200831000405p:plain

下記のP4コマンドでフォルダ以下にあるバージョン管理されていないファイルを一括で追加します(個別に指定したい場合はファイルパスを指定すればOK)

p4 add ...

// 個別指定したい場合は半角スペースを空けて相対または絶対パス

p4 add Content\test.png

f:id:moko_03_25:20200831000630p:plain

P4V で F5 を押して更新すると追加状態になっています。

f:id:moko_03_25:20200831000728p:plain

ファイルのチェックアウト

下記のP4コマンドでフォルダ以下にあるファイルを一括でチェックアウトします(個別に指定したい場合はファイルパスを指定すればOK)

p4 edit ...

// 個別指定したい場合は半角スペースを空けて相対または絶対パス

p4 edit Content\TestDocA.txt

f:id:moko_03_25:20200831002724p:plain

P4V で F5 を押して更新するとチェックアウト状態になっています。

f:id:moko_03_25:20200831002735p:plain

ファイルのリバート

下記のP4コマンドでフォルダ以下にあるファイルを一括でチェックアウトします(個別に指定したい場合はファイルパスを指定すればOK)

p4 revert ...

// 個別指定したい場合は半角スペースを空けて相対または絶対パス

p4 revert Content\TestDocA.txt

f:id:moko_03_25:20200831003021p:plain

P4V で F5 を押して更新するとチェックアウト状態になっています。

f:id:moko_03_25:20200831003029p:plain

ファイルの削除

下記のP4コマンドでフォルダ以下にあるファイルを一括で削除します(個別に指定したい場合はファイルパスを指定すればOK。一括で削除することはほぼ無いと思いますが)

p4 delete ...

// 個別指定したい場合は半角スペースを空けて相対または絶対パス

p4 delete Content\TestDocA.txt

f:id:moko_03_25:20200831003254p:plain

P4V で F5 を押して更新するとチェックアウト状態になっています。

f:id:moko_03_25:20200831003303p:plain

チェンジリストに更新内容のコメントを入力してサブミット

P4V のメニューの View から Pending(日本語訳で”保留”)タブを表示します。

これまでの操作によって、現状はデフォルトチェンジリストに2つのファイルが「追加」と「削除」の状態で登録されています。まだサーバーに反映されていません。

f:id:moko_03_25:20200831003604p:plain

では、下記P4コマンドでサブミットしてサーバー(ディポ)に反映させます。

// 実行後に開かれるテキストファイルにコメントを記入する場合

p4 submit

// コマンドプロンプト上で直接コメントを記入する場合

p4 submit -d "ここにコメントを書く"

f:id:moko_03_25:20200831004108p:plain

P4V の Submitted タブを表示すればサブミットした内容が確認できます。
コメントもちゃんと反映されていますね!

f:id:moko_03_25:20200831004355p:plain


という訳で、P4V とP4コマンドを使ったクライアントの基本操作については以上になります!