0

p4vを使用しています。ワークスペース内のファイルをチェックアウトすると、p4v は次のコマンドをログに表示します: p4 edit -c default d:\p4\depot...\file.txt

そして、cmdで同じことをする必要がありますすべての環境変数は次のように設定されます:

P4CHARSET=utf8 (set -s)
P4CLIENT=workspace_name (set)
P4PASSWD=passwd (set)
P4PORT=port (set)
P4USER=name (set)

次に、同じコマンド「p4 edit -c default d:\p4\depot...\file.txt」を使用すると、p4 はこれを出力します: //depot/.../file.txt#5 - 編集用に開きますp4v をチェックインすると、ワークスペースではなく、デポにファイルがチェックアウトされていることがわかります。

この問題の解決策は何ですか?

4

1 に答える 1

2

Perforce 内のファイルはワークスペースとデポの間でマッピングされ、デポとワークスペースのパスは同じ意味で使用できます。「p4 edit」を使用してファイルを「チェックアウト」すると、次のことが起こります。

  1. ローカル ファイル (d:\p4\depot...\file.txt) が書き込み可能になります。
  2. デポ ファイル (//depot/.../file.txt#5) は、ユーザーが開いているものとしてマークされています。
  3. Perforce サーバーは、これらすべてを「記憶」します。

つまり、ファイルはワークスペースとデポの両方で実際に「チェックアウト」されています。両者に違いはありません。同じファイルです。ワークスペース ファイルを見ると、書き込み可能になっていることがわかります (これは、チェックアウトされたワークスペース内のシグナルです)。コマンドラインから「p4 open」を実行して、現在のワークスペースで開いているファイルを確認できます。ディポ パスが個々のファイルのローカル パスにどのようにマップされるかがわからない場合は、「p4 have」を実行して、ワークスペース内の特定のディポ ファイルの場所とそのバージョンを確認できます。

サブミットすると、サーバーはデポ ファイルを更新する必要があることを認識し、新しいコンテンツがワークスペース ファイルから取得されることを認識します。デポ ファイルの新しいリビジョン (#5 よりも新しい) がある場合、サーバーは解決をスケジュールして、サブミットする前に新しいコンテンツをマージできるようにします。

言い換えれば、「デポでチェックアウト」されていても、ワークスペースではチェックアウトされていないということはありません。「チェックアウト」されたデポ ファイルは、定義上、特定のワークスペースにチェックアウトされています。

于 2014-09-24T22:42:13.387 に答える