2

私はPerforceを初めて使用します(ただし、他のシステム、主にSVNについてはかなり経験があります)。
今、私はいくつかのビルド結果をチェックインする必要がある単純なWindows batビルドスクリプトを作成しようとしています(一部の人には物議を醸していますが、別の議論なので無視してみてください)。これにはp4を使用しています。問題は、私が次のいずれかであるように見えることです。

  • 他のマシンと同じ「クライアント」を使用します(-cオプション)。これには「ルート」があり、作業コピーがローカルに移動する絶対パスを指定しているように見えます。むしろ「wtf?」私に...
  • 各マシンの「クライアント」をインタラクティブに作成します(ローカルファイルシステムのレイアウトと一致します)。対話性は明らかに、自動化されたスクリプトにとって大きな問題です。

SVNの場合と同じように、どういうわけか現在のディレクトリを使用できますか?
より良いオプションはありますか?

4

4 に答える 4

3

クライアントテンプレートを使用して、毎回新しいクライアントを作成することをお勧めします。まず、実際のビルドクライアントで必要なビューを使用して、手動でクライアントを作成します。Owner、Client、またはRootフィールドを指定しないでください。次に、新しいクライアントが必要になるたびに、次のことを実行します。

p4 client -t my-client-template-name -o my-unique-client-name >clientspec.txt
p4 client -i <clientspec.txt

my-client-template-name最初のステップで作成したクライアントはどこにありますか。もちろん、完了したら、必ず次のことを行ってください。

p4 client -d my-unique-client-name
于 2010-10-21T18:16:46.200 に答える
2

ルートがnullのワークスペースを作成し、デポをそのクライアントにマップします。クライアント仕様の例を次に示します。

クライアント:client_name

更新:2010/10/20 14:18:23

アクセス:2010/10/20 14:20:53

所有者:レイヴン

ホスト:ravens-pc

説明:
    カラスによって作成されました。

ルート:null

オプション:noallwritenoclobbernocompressロック解除されたmodtimermdir

SubmitOptions:leaveunchanged

LineEnd:ローカル

意見:
    // depot / ... // client_name/..。

スクリプトで最初に行うべきことは、$P4CLIENT$環境変数を設定してこのクライアントに切り替えることです。

p4 set p4client=client_name

これで、スクリプトはそのクライアントのコンテキストで機能します。 nullのルートを指定したため、同期は現在のディレクトリに相対的です。したがって、C:\barにいるときに//depot / foo / ...を同期すると、ファイルはC:\ bar\fooに表示されます。

スクリプトが最後に行うべきことは、P4CLIENT変数をクリアして、システムをデフォルトのクライアント仕様に復元することです。

p4 set p4client=

于 2010-10-20T18:44:02.840 に答える
1

以下を使用して、エディターなしでインタラクティブにクライアントを作成できますp4 client -i

-iフラグを使用すると、クライアント仕様が標準入力から読み取られます。ユーザーのエディターが呼び出されない

したがって、buildscriptには、クライアントビューのテンプレートがあり、現在のビルドマシン用にその場で変更して、に渡しp4 client -iます。

于 2010-10-20T09:07:23.170 に答える
0

どうやら、ルートディレクトリが「null」のクライアントワークスペースを事前に作成できます。これにより、PERFORCEは現在の作業ディレクトリをルートとして使用します。

于 2010-10-20T13:57:32.527 に答える