web-dev-qa-db-ja.com

UbuntuでPerforceコマンドラインを使用してクライアントワークスペースを作成する

私はUbuntuビルドマシンですべてのプロジェクトをビルドするためのスクリプトを書いています。

各プロジェクトはPERFORCEに保存されており、私はp4を使用して上記を実行しています。

私が使用しているコマンドは次のとおりです。

p4 -u <MyUsername> -P <MyPassword> client MyWorkspace

これが実行され、vimが読み込まれます。その後、:wq [Enter]を実行して終了する必要があります。

Vimの読み込みを自動保存または回避できますか?

14
neildeadman

私のビルドには、クライアントを含むテキストファイルがあります。そうすれば、そのビルドでクライアントがどのように見えたかがわかります(スペックデポは使用しません)。

とても簡単です:

type client.txt | p4 client -i

またはUbuntuの場合:

more client.txt | p4 client -i

pERFORCEのtxtファイルからクライアントを作成します。 p4 client -o <client_name>を実行してテキストを作成し、そこから変更することができます。

16
aflat

おそらくp4 client -iを試してみてください。ヘルプページから:

-iフラグは、標準入力からクライアント仕様を読み取ります。ユーザーのエディターは呼び出されません。

したがって、スクリプトでクライアント仕様を作成し、それをp4 client -iに渡します。さらに、-tも役立つ可能性があります。

-tフラグは、既存のビューを使用したり、新しいデフォルトビューを作成したりする代わりに、指定されたクライアントのビューとオプションをテンプレートとして使用してクライアントビューを構築します。

6
jhwist

一時ファイルの必要性を最小限に抑えるためにヒアドキュメントを使用します

export P4CLIENT=tmp_$$
p4 client -i <<HERE
Client: ${P4CLIENT}
Root: /tmp/${P4CLIENT}
Stream: //OurStreamDepot/${branch}
HERE

Client:Root:、およびStream:フィールド(または、古い//デポスタイルを使用している場合はView:)のみを指定する必要があります。

4
Mark Lakata

ビルドごとに新しいクライアントを作成する必要はありません。同じクライアントを再利用できます。「p4sync」を実行するだけで、ビルドするコードの現在のバージョンでファイルシステムを更新できます。

2
Bryan Pendleton

私は絶対に同意します バイランの答え 。ビルドを実行するたびに、一意のクライアントを作成する必要がありますか。同じワークスペースを使用する複数のプロジェクトがあることに問題はありません。同じマシンでビルドを並行して実行する場合にのみ、複数のワークスペースを作成する必要があります。新しいワークスペースを作成し、ビルドごとに完全同期を実行すると、ビルド時間が大幅に増加します

クリーンなワークスペースがあることを確認する必要がある場合は、フォルダー階層の上位にある共通の場所を指すように中間パスと出力パスを構成します。

Root
 /Bin
 /Intermediate
 /Source

この方法では、これら2つのディレクトリを削除し、p4 sync //filespec/を実行するだけでクリーンビルドを実行できます。

1
Dennis

あなたが何をしようとしているのか完全にはわかりませんが、同じクライアントを使い続けたい場合は、変数P4CLIENT=MyWorkspaceを設定するか、

p4 -u <MyUsername> -P <MyPassword> -c MyWorkspace

1
Chance

プロセス全体をPERFORCE内に保持したい場合は、client_templateというテンプレートワークスペース/クライアントを作成してパイプします。

p4 client -o -t client_template new_client|p4 client -i
0
hoppy