我的计算机上有两个Perforce工作区,一个位于c:\dev
,另一个位于c:\code
。当我在p4 status
中运行c:\code
时,收到错误消息
Path 'c:\code\...' is not under client's root 'c:\dev'
p4 reconcile
也是如此。如何让命令工作?很明显,它正试图对错误的回购运行命令。
答案 0 :(得分:15)
如果您未明确设置P4CLIENT
环境变量,Perforce将使用默认工作区。我不知道它如何决定哪个工作区是默认的。无论如何,它已默认为您已将其映射到C:\dev
的根。您需要切换到工作区code
(或其实际名称)。在命令行中键入以下命令以切换工作空间:
p4 set P4CLIENT=[client name]
当然,您将替换" [客户名称]"使用工作区的名称,其根目录已映射到C:\code
。
答案 1 :(得分:4)
对乌鸦的回答进行了一些扩展。默认情况下,如果您未设置P4CLIENT,则perforce会将您的计算机名称作为默认客户端名称。因此,如果你想使用另一个客户端,你必须使用p4 set P4CLIENT=[client name]
,它将为你运行的每个p4实例设置它,无论你在哪个命令窗口。你也可以做{{1在命令行上,它只在您运行的命令窗口中有效。
此外,您可以使用set P4CLIENT=[client name]
,因为-c是全局选项,您可以将其提供给所有p4命令。
答案 2 :(得分:0)
我意识到当我的子窗口中有活动的过滤器(例如“待处理”,“工作区”等)时,会出现这些错误。清除筛选器,然后尝试切换工作区。这可能会有帮助。
答案 3 :(得分:-1)
确保您在有效目录上发送命令(在工作区...下)
例如,如果您的工作区位于 C:\workspace
并且您正在从 C:\temp 发送命令
你应该在“p4 status”之前使用“cd C:\workspace”