这里有几个不同的概念。
您可以有一个工作区,也可以有多个工作区。
每个工作区在您的工作站上都有自己的根目录,以及您最近同步的任何文件的副本。
如果您有一个工作区,则可以通过使用“client -s”命令切换该工作区绑定到的流,将该工作区从一个流来回切换到另一个流。这样,您可以使用单个工作区交替处理一个流和处理另一个流。在最新版本的 Perforce 服务器 (2015.1+) 中,甚至还有一个“p4 switch”命令,它使这个过程更加简单。
使用“client -s”在命令行上将单个工作区从一个流切换到另一个流相当于将工作区图标从旧流拖放到流图中的新流,或多或少。
您还可以拥有多个工作区,每个工作区都有一组独立的同步文件,并且您可以单独使用每个工作区。在命令行上,要从一个工作区切换到另一个工作区,您只需更改告诉“p4”命令您要使用哪个客户端的方式,您可以使用 P4CLIENT 变量或“-c”标志到客户。例如:
p4 -c client1 sync
对比
p4 -c client2 sync
告诉 p4 客户端先同步client1
,然后client2
. 或者,您可以执行以下操作:
p4 set P4CLIENT=client1
p4 sync
然后
p4 set P4CLIENT=client2
p4 sync
达到相同的效果(在命令行中在一个工作区和另一个工作区之间切换)。
然而,P4V 有自己的“当前工作区”概念,它与命令行是分开的,我不认为仅仅改变你的 P4CLIENT 变量就足以执行“右键单击工作区和选择“切换到工作区””。
我认为最接近命令行命令的方法是从命令行调用 P4V 的不同副本,并在这样做时指定不同的客户端名称,如此处所述:http ://www.perforce.com/blog/100114/p4v-secrets-calling-p4v-command-line
但我认为这将为您提供一个带有其他工作区的新P4V 窗口,而不是更改当前P4V 窗口的当前工作区。
您可以尝试的另一种可能性是使用其中一个 Windows GUI 自动化工具,例如 Autoit ( https://www.autoitscript.com/site/ ),创建一个脚本,该脚本将使用菜单栏上的 Connection 菜单和通过 Autoit 操作 Switch to Workspace... 对话框。