Perforce-从命令行切换到工作区

Perforce-从命令行切换到工作区,perforce,workspace,perforce-stream,Perforce,Workspace,Perforce Stream,我在问如何从client1切换到client2,其中client1属于stream1,client2属于stream2 我希望它做的事情与在p4v中一样,然后右键单击工作区并选择“切换到工作区” 请注意,如果您当前的工作区是client1,并且您使用: p4 client -s -S //DEPOT/stream2 或 它不会更改p4v GUI中的工作区 有什么想法吗 谢谢 这里有几个不同的概念 您可以有一个工作空间,也可以有多个工作空间 每个工作区在您的工作站上都有自己的根目录,以及您最近同

我在问如何从client1切换到client2,其中client1属于stream1,client2属于stream2

我希望它做的事情与在p4v中一样,然后右键单击工作区并选择“切换到工作区”

请注意,如果您当前的工作区是client1,并且您使用:

p4 client -s -S //DEPOT/stream2

它不会更改p4v GUI中的工作区

有什么想法吗


谢谢

这里有几个不同的概念

您可以有一个工作空间,也可以有多个工作空间

每个工作区在您的工作站上都有自己的根目录,以及您最近同步的所有文件的副本

如果您只有一个工作区,您可以通过使用“client-s”命令切换工作区绑定到的流,将该工作区从一个流来回切换到另一个流。通过这种方式,您可以使用单个工作区在处理一个流和处理另一个流之间切换。在最新版本的Performce server(2015.1+)中,甚至有一个“p4开关”命令,使此过程更加简单

使用“client-s”在命令行上将单个工作区从一个流切换到另一个流,这相当于或多或少地将工作区图标从流图中的旧流拖放到新流

您还可以有多个工作区,每个工作区都有一组独立的同步文件,并且可以单独使用每个工作区。在命令行上,要从一个工作区切换到另一个工作区,只需更改告知“p4”命令要使用哪个客户端的方式,您可以使用P4CLIENT变量或“-c”标志对客户端执行此操作。例如:

p4 -c client1 sync
vs

告诉p4客户端先同步
client1
,然后同步
client2
。或者,您可以执行以下操作:

p4 set P4CLIENT=client1
p4 sync
然后

以实现相同的效果(在命令行中在一个工作空间和另一个工作空间之间切换)

然而,P4V有自己的“当前工作区”概念,它与命令行是分开的,我不认为仅仅更改P4CLIENT变量就足以执行“右键单击工作区并选择“切换到工作区”的P4V操作

我认为,最接近命令行命令的方法是从命令行调用不同的P4V副本,并在执行此操作时指定不同的客户端名称,该命令行命令会更改P4V认为是当前工作区的工作区,如下所述:

但我认为这将为您提供一个带有其他工作区的P4V窗口,而不是更改当前P4V窗口的当前工作区


您可以尝试的另一种可能性是使用Windows GUI自动化工具之一,如Autoit(),创建一个脚本,该脚本将使用菜单栏上的连接菜单并操作切换到工作区。。。对话框通过Autoit

非常感谢您的详细回答!我对Perforce很陌生,知道p4v的秘密很好。我会用-c。你帮了我很多!非常感谢。
p4 -c client2 sync
p4 set P4CLIENT=client1
p4 sync
p4 set P4CLIENT=client2
p4 sync