3

PERFORCEのプロジェクトで全員が同じクライアントを作成するのは無意味に思えますが、PERFORCEで誰もが同期できる「パブリック」クライアントを作成できる人はいますか?

編集:クライアント仕様からPERFORCEで作成したようなクライアントを意味しました

4

4 に答える 4

3

「クライアント」ではなく「ワークスペース」という用語を使用すると、アーキテクチャを理解しやすいと思います。PERFORCE アプリケーションは、ワークスペースと呼ばれるローカル ディスクの指定された領域でファイルを管理します。名前が示すように、ワークスペースはほとんどの作業を行う場所です。同じワークステーション上であっても、複数のクライアント ワークスペースを持つことができます。

2 人の異なるユーザーは通常、別々のワークステーションまたはラップトップで独立して作業しているため、サーバーの変更と同期するタイミングを制御できるように、それぞれに独自のコードのコピーと独自のワークスペースが必要です。

あなたと私が単一のワークステーションでコードの単一のコピーを共有しようとすると、誰の変更が誰の変更なのかすぐに混乱するでしょう。独立して作業し、サーバーへの個別の送信として変更をマージする方がはるかに簡単です。

クライアント定義が複雑で、ビュー定義が非常に複雑であることが問題である場合は、「テンプレート クライアント」機能を調査することをお勧めします。好みのビューとオプションを使用して単一のマスター クライアントをセットアップし、他のユーザーは、'client -t' を使用して、ビューとオプションの詳細をテンプレート クライアントからコピーするワークスペース定義を作成できます。

于 2013-01-07T14:47:03.720 に答える
2

これを行うことは可能ですが、お勧めできません。Perforce は各クライアントに同期されたファイルのサーバー側の記録を保持するため、次のような状況に陥る可能性があります。

  1. ユーザー Fred は、共有クライアントを使用して同期し、新しいファイル セットを取得します。
  2. 変更がコミットされる前に、ユーザー Jim は共有クライアントを使用して同期し、Perforce サーバーはクライアントに最新のファイル セットが既にあると見なすため、何も取得しません。

Jim は、"p4 sync -f" を使用してこれを回避できます。これにより、すべての最新ファイルが強制的に自分のワークスペースに同期されますが、これは Perforce が使用されるように設計されている方法に関する厄介な問題です。

Perforce クライアントは、サーバー上で使用するリソースの点で非常に軽量であるため、クライアントを共有しない方がよいでしょう。

オンラインの Perforce ドキュメントで、クライアントを共有してはならない理由のより完全な説明を見つけようとしましたが、あまり役に立ちません。「Practical Perforce」という本は、たまたまコピーを持っていれば、私が見た中で最も優れた概要を持っています。

于 2013-01-06T23:32:43.833 に答える
0

p4 sync -f は遅すぎます。最初にローカルのすべてのファイルを削除してから、中央のデポからファイルをリロードするためです! ややこしい方法があります。do sync -f したいときは、havelist を作成して sync することです。詳細は、1、clientspec の取得、2、ローカルへの保存です。3、クライアントを削除します。 4、保存した clientspec を使用して同じクライアントを作成します。したがって、ローカル ファイルを削除する時間を節約できます。

于 2013-05-24T16:57:23.923 に答える
0

Bryan が述べたようにテンプレート ワークスペースを使用するか、ストリームの使用を検討してください。ストリーム フレームワークでは、ストリーム ビュー (構成) を一度定義すると、ワークスペースが自動的に生成されます。

于 2013-01-07T15:22:47.803 に答える