8

ファイルまたはディレクトリをPERFORCEを使用して複数のローカルコピーにマップできるかどうかを知りたいのですが。

P4Vでそれができることは知っていますが、クライアントから非常に奇妙な動作が発生し、これが機能しないのではないかと思います。

これらのファイルを変更する予定はありません。独自のソースツリーを構築するために必要な同じディレクトリ構造を再作成するためにこれが必要です(少数のファイルのみを変更する必要があることがわかっている場合は、巨大なブランチを作成したくありません。また、ワークスペースからの切り替えには時間がかかりすぎるため、追加のワークスペースを作成したくありません)。

4

5 に答える 5

5

それは悪いことをもたらすので、あなたはそれをすることを許されていません。デポファイルは1つのローカルロケーションにのみマップでき、その逆も可能です。2つの異なるデポフォルダーを同じローカルフォルダーにマップできますが、ローカルフォルダー内のファイルが1つのデポの場所にのみ移動するようにマップする必要があります(競合する初期のマッピングは無視されます)。

実際に変更を加えるまでPerforceはシャドウコピーを作成するため、ブランチを「大きく」することはできません。一般に、ツリー全体を分岐する必要があります。次に、ブランチごとにワークスペースを作成するか(推奨)、すべてをマップする1つのワークスペースを作成できます(引き続き実行可能)。

于 2011-06-28T05:24:23.293 に答える
4

(申し訳ありませんが、ワークスペースを切り替えたくないことがわかりました...時間がかかりすぎると思う理由を明確にできますか?p4vで、接続メニューの下に「お気に入りの接続」を設定して、切り替えを簡単に行うことができます。ホットキーを使用すると高速になる可能性があります。複数のp4vインスタンスを開くこともできます)。

マッピングを行うための新しいワークスペースを簡単に作成できますか?ファイルを変更するつもりがない場合は、最も簡単な方法のようです。新しいワークスペースを作成してから、ワークスペースマッピング内で必要な変更を適用するだけです。例:

//depot/src/... //my-test-workspace/src_from_depot/...
//depot/doc/... //my-test-workspace/doc_from_depot/...

src_from_depotこれにより、srcフォルダーとdocフォルダーがdoc_from_depotワークスペースルートのaフォルダーに配置されます。ワークスペースのルートを通常の作業とは異なる場所に配置するだけです。そうすると、ニーズに合わせて変更されたディレクトリ構造で通常作業する場所からコピーが分離されます。

于 2011-06-27T18:31:42.623 に答える
2

本当の問題は、ワークスペースの切り替えにかかる時間かもしれないように思えます。それが速ければ、ブランチごとに別々のワークスペースを維持できます。

次のリリースでは、インプレースブランチ切り替えを行うのが簡単になります。つまり、1つのワークスペースを維持し、作業中にブランチからブランチに切り替えることができます。このp4 syncコマンドは、実際には異なるワークスペース内のファイルのみを更新する新しいオプションを追加します。したがって、ブランチが巨大な場合(> 500kファイル、> 30GBデータ)、2つのブランチ間で10ファイルのみが異なる場合、ワークスペースを1つのブランチから別のブランチに移動すると、それらの10ファイルのみが更新されます。それは大きな時間の節約になるはずです。

これが役立つかどうかはわかりませんが、言及する価値があると思いました。

于 2011-06-28T13:11:31.377 に答える
1

私もこの問題に遭遇しました。複数のブランチに共通のファイル/ディレクトリがあります。共通のファイル/ディレクトリは、コンパイルのために各ブランチの特定の構造に存在する必要があります。

私のために働いた解決策は、ブランチとは別の場所に共通のファイル/ディレクトリを配置することでした。これにより、PERFORCEの1:1マッピング要件が維持されます。

次に、コンパイルのために、共通のファイル/ディレクトリを各ブランチにシンボリックにリンクします。

于 2012-11-05T18:18:00.413 に答える
1

Preforceは現在それをサポートしています。

単一のデポパスをワークスペース内の複数の場所にマップします。

https://www.perforce.com/perforce/doc.current/manuals/p4guide/Content/P4Guide/configuration.workspace_view.one-to-many.html?TocPath=Configure%20clients%7CConfigure%20workspace%20views%7C_____8

1対多のマッピング機能を有効にするには、マップする追加のクライアントの場所ごとに、マッピング行の前に&を追加します。

意見:

//Acme/images/logo.png  //bruno_ws/products/images/logo.png
&//Acme/images/logo.png  //bruno_ws/documentation/images/logo.png
&//Acme/images/logo.png  //bruno_ws/support/images/logo.png

クライアントを同期すると、デポファイルは3つの場所すべてにマップされます。

重要&が前に付いたすべてのマッピング行は読み取り専用であるため、上記の例では// bruno_ws/documentationおよび//bruno_ws/supportは読み取り専用です。

于 2018-11-09T14:44:38.730 に答える