AJ *_*tes 8 workspace perforce perforce-stream
我问如何从client1切换到client2,其中client1属于stream1,client2属于stream2.
我正在寻找它与p4v中的相同,然后右键单击工作区并选择"切换到工作区"
请注意,如果您当前的工作区是client1并且您使用:
p4 client -s -S //DEPOT/stream2
Run Code Online (Sandbox Code Playgroud)
要么
p4 client -s S //DEPOT/stream2 client2
Run Code Online (Sandbox Code Playgroud)
它不会更改p4v GUI中的工作区.
任何的想法?
谢谢!
Bry*_*ton 19
这里有几个不同的概念.
您可以拥有一个工作区,也可以拥有多个工作区.
每个工作区在您的工作站上都有自己的根目录,以及您最近同步的任何文件的副本.
如果您有一个工作区,则可以使用"client -s"命令切换该工作区绑定到的流,从一个流来回切换该工作区.这样,您可以使用单个工作区在一个流上工作,而在另一个流上工作.在最新版本的Perforce服务器(2015.1+)中,甚至还有一个'p4 switch'命令使这个过程更简单.
使用'client -s'在命令行上将单个工作区从一个流切换到另一个流相当于将工作区图标从旧流拖放到流图中的新流中,或多或少.
您还可以拥有多个工作区,每个工作区都有一组独立的文件同步,您可以单独使用每个工作区.在命令行上,要从一个工作区切换到另一个工作区,只需更改告诉'p4'命令要使用哪个客户端的方式,可以使用P4CLIENT变量或'-c'标志来执行客户.例如:
p4 -c client1 sync
Run Code Online (Sandbox Code Playgroud)
VS
p4 -c client2 sync
Run Code Online (Sandbox Code Playgroud)
告诉p4客户端先同步client1
,然后client2
.或者,您可以这样做:
p4 set P4CLIENT=client1
p4 sync
Run Code Online (Sandbox Code Playgroud)
然后
p4 set P4CLIENT=client2
p4 sync
Run Code Online (Sandbox Code Playgroud)
实现相同的效果(在命令行中在一个工作区和另一个工作区之间切换).
然而,P4V有自己的"当前工作空间"的概念,它与命令行是分开的,我不认为只是改变你的P4CLIENT变量就足以执行"右键单击工作空间的P4V操作"选择'切换到工作区'".
我认为,最接近命令行命令可以更改哪个工作空间P4V认为是当前工作空间,是从命令行调用不同的P4V副本,并在执行此操作时指定不同的客户端名称,如下所述:http://www.perforce.com/blog/100114/p4v-secrets-calling-p4v-command-line
但我认为这将为您提供另一个工作空间的新 P4V窗口,而不是更改当前 P4V窗口的当前工作空间.
您可以尝试的另一种可能性是使用Windows GUI自动化工具之一,例如Autoit(https://www.autoitscript.com/site/),创建一个脚本,该脚本将使用菜单栏上的"连接"菜单和通过Autoit操作Switch to Workspace ...对话框.