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

Perforce - switch to workspace from command line

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

我希望它能像在 p4v 中那样做,然后右键单击工作区并选择 'switch to workspace'

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

p4 client -s -S //DEPOT/stream2

p4 client -s S //DEPOT/stream2 client2

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

有什么想法吗?

谢谢!

这里有几个不同的概念。

您可以有一个工作区,也可以有多个工作区。

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

如果您只有一个工作区,则可以使用 '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 有自己的 "current workspace" 概念,它与命令行是分开的,我认为仅仅更改 P4CLIENT 变量不足以执行 "current workspace" 的 P4V 操作=51=].

我认为最接近于更改 P4V 认为是当前工作区的命令行命令的方法是从命令行调用 P4V 的不同副本,并指定不同的客户端这样做时命名,如下所述:http://www.perforce.com/blog/100114/p4v-secrets-calling-p4v-command-line

但我认为这会给你一个 new P4V window 与其他工作区,而不是改变你的 current[ 的当前工作区=48=] P4V window.

您可以尝试的另一种可能性是使用 Windows GUI 自动化工具之一,例如 Autoit (https://www.autoitscript.com/site/),创建一个将使用菜单上的“连接”菜单的脚本栏并通过 Autoit 操作 Switch to Workspace... 对话框。