web-dev-qa-db-ja.com

p4ステータス「パスはクライアントのルートの下にありません」

私のコンピューターには2つのPERFORCEワークスペースがあります。1つはc:\devに、もう1つはc:\codeにあります。 p4 statusc:\codeを実行すると、エラーメッセージが表示される

Path 'c:\code\...' is not under client's root 'c:\dev'

同じことがp4 reconcileでも起こります。コマンドを機能させるにはどうすればよいですか?間違ったリポジトリに対してコマンドを実行しようとしていることは明らかです。

14
Colonel Panic

P4CLIENT環境変数を明示的に設定しない場合、Perforceはデフォルトのワークスペースを使用します。どのワークスペースがデフォルトであるかをどのように決定するか、私にはわかりません。とにかく、デフォルトでは、ルートがC:\devにマップされているルートになっています。ワークスペースcode(または実際の名前が何であれ)に切り替える必要があります。コマンドラインで次のコマンドを入力して、ワークスペースを切り替えます。

p4 set P4CLIENT=[client name]

もちろん、「[クライアント名]」は、ルートをC:\codeにマップしたワークスペースの名前に置き換えます。

17
raven

レイヴンの答えを少し拡大します。デフォルトでは、P4CLIENTを設定しない場合、perforceはマシン名をデフォルトのクライアント名として使用します。したがって、別のクライアントを使用したい場合は、p4 set P4CLIENT=[client name]を使用する必要があります。これにより、実行しているコマンドウィンドウに関係なく、実行するすべてのp4のインスタンスに設定されます。set P4CLIENT=[client name]コマンドラインで実行します。これは、実行中のコマンドウィンドウでのみ有効です。

さらに、p4 -c [client_name] <command>を使用できます。-cはグローバルオプションであるため、すべてのp4コマンドに指定できます。

4
aflat

「保留中」、「ワークスペース」などのサブウィンドウでフィルターをアクティブにすると、これらのエラーが表示されることに気付きました。フィルターをクリアして、後でワークスペースを切り替えてみてください。これは役立つかもしれません。

0
Ferhat Özdogan