ファイルをワークスペースに配置せずに Perforce から取得したいと考えています。
たとえば、2 つのファイルに変更を加えました。
file1.cs
file2.cs
今、更新された file1.cs を使用してプロジェクトをビルドしたいので、file1.cs を除く最新のファイルを取得したいと考えています。
プロジェクトの別のローカルコピーを取得してビルドすると思いました。
本当に何をしたいのかわかりませんが、「p4 print」を使用すると、ワークスペース定義を使用せずにデポからファイルの内容を取得できます。例:
>p4 print -o fileName.cs //depot/path/to/fileName.cs
私の知る限り、ワークスペースを使用せずに Perforce デポからファイルを同期することはできません。これは、ワークスペースにあるファイルのバージョンと、それらをローカル マシンのどこに配置するかを追跡する方法であるためです (いくつかの他のもの)。問題を完全に理解しているかどうかはわかりませんが、必要な変更を削除せずにデポにある file1.cs の別のコピーを取得する必要がある場合は、変更を別の場所にコピーするか、棚上げするだけです。それらを削除して、ファイルを再同期します。より完全で危険性の低い解決策は、マシン上の別の物理的な場所を指す別のワークスペースを作成することですが、デポの場所は同じです。これは、必要に応じてワークスペースを作成する方法を説明しています: http://www.perforce.com/perforce/doc.062/manuals/boilerplates/quickstart.html 「ルート」パスが現在のワークスペースのパスと異なることを確認してください。現在のワークスペースのルートが何であるかを確認するには、P4V のワークスペース タブに移動して表示します。新しいワークスペースを作成したら、新しい接続を作成して選択し、必要なファイルを同期します。
だから私はfile1.cs以外の最新のファイルを取得したい
そうすべきではありません。すべてのファイルを更新し、file1.cs との競合を解決する必要があります。
file1.cs にも加えられた変更に依存して、他の誰かが file56.cs に変更を加えた状況を考えてみましょう。変更リストを取得しても file1.cs を上書きする (または取得しない) と、ビルドが壊れます。
gitでこれを行う簡単な方法を見つけました:
$ git p4 clone //depot/your/folder
回避策は見つかりましたが、解決策は見つかりませんでした。
プロジェクトの別のローカル コピーを取得し、プロジェクトをビルドして変更を送信します。