Perforce p4状态“;路径不在客户端';s根“;

Perforce p4状态“;路径不在客户端';s根“;,perforce,Perforce,我的计算机上有两个Performce工作区,一个位于c:\dev,另一个位于c:\code。当我在c:\code中运行p4 status时,会收到一条错误消息 Path 'c:\code\...' is not under client's root 'c:\dev' p4协调也会发生同样的情况。我怎样才能使命令生效?很明显,它试图对错误的回购协议运行命令 如果没有显式设置环境变量P4CLIENT,Perforce将使用默认工作区。它如何决定哪个工作区是默认的,我不知道。无论如何,它已默认为您

我的计算机上有两个Performce工作区,一个位于
c:\dev
,另一个位于
c:\code
。当我在
c:\code
中运行
p4 status
时,会收到一条错误消息

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

p4协调
也会发生同样的情况。我怎样才能使命令生效?很明显,它试图对错误的回购协议运行命令

如果没有显式设置环境变量
P4CLIENT
,Perforce将使用默认工作区。它如何决定哪个工作区是默认的,我不知道。无论如何,它已默认为您已映射到其根目录的根目录
C:\dev
。您需要切换到工作区
code
(或其实际名称)。在命令行中键入以下命令以切换工作空间:

p4设置P4CLIENT=[客户端名称]


当然,您将用根目录映射到的工作区的名称替换“[客户端名称]”
C:\code

在raven的答案上展开一点。默认情况下,如果未设置P4CLIENT,则perforce会将您的计算机名作为默认客户端名称。因此,如果要使用另一个客户端,则必须使用
p4 set P4CLIENT=[client name]
,它将为您运行的每个p4实例设置它,无论您在哪个命令窗口中。您还可以在命令行上执行
set P4CLIENT=[client name]
,该命令仅在您运行的命令窗口中有效


此外,您可以使用
p4-c[client_name]
,因为-c是一个全局选项,所以您可以将它提供给所有p4命令。

我意识到,当我的子窗口中的过滤器处于活动状态(如“挂起”、“工作区”等)时,会出现这些错误。清除过滤器,然后尝试切换工作区。这可能会有所帮助。

这应该会有所帮助。我们可以在bash_配置文件中设置P4CLIENT,对吗?我正在那里设置我的客户端,但仍然收到此错误。在设置客户端后,是否仍然收到相同的错误。路径“/home/stevek/…”不在客户端的根“/home/stevek/Perforce/steve_SIA_development”下。没有要协调的文件。在bash_配置文件中设置我的。