如何设置'p4客户端'的默认视图

时间:2016-07-10 12:47:32

标签: perforce perforce-client-spec

我是Perforce的新手,我不明白如何配置p4 client命令。

如果输入p4 set命令,我会得到:

C:\Program Files\Perforce>p4 set
P4CLIENT=aronTest (set)
P4EDITOR=C:\Windows\SysWOW64\notepad.ex
P4PORT=******:1666 (set)
P4USER=aron (set)
P4_*******:1666_CHARSET=none (set)

1)如果我输入p4 client结果如下:

Client: aronTest

....
....
View:
    //Depot_1/... //aronTest/Depot_1/...
    -//depot/... //aronTest/depot/...
    "//Depot_1/ ARCS II/Test Code/*" "//aronTest/Depot_1/ ARCS II/Test Code/*"
    "-//Depot_1/Book Store NET/..." "//aronTest/Depot_1/Book Store NET/..."

2)如果我输入 - p4 client cli结果如下:

Client: cli
...
...

View:
    //Depot_1/... //cli/Depot_1/...
    //depot/... //cli/depot/...

我希望我创建的每个客户端都能获得当前P4CLIENT的视图,但是使用第二个命令我可以查看所有仓库(Depot1& depot)。

如何配置它,意味着客户端\工作区的每次创建我将得到当前环境变量P4CLIENT的相同视图(换句话说,我希望每个p4 client <client_name>的视图像aronTest一样) ?

谢谢!

2 个答案:

答案 0 :(得分:1)

不幸的是,没有普通的方式来配置默认客户端视图;我知道的所有方法都需要做一些工作。

一种广泛使用的技术是使用所谓的template client;这是一个已经存在的工作空间,具有适当的客户端视图,客户端选项等。在您的情况下,aronTest客户端可以用作创建新工作空间的模板。要将aronTest用作新客户cli的模板,您只需输入p4 client -t aronTest cli而不是p4 client cli

如果您的Perforce服务器正在运行2014.1或更高版本,您可以设置服务器上可配置的'template.client',以指定在省略-t参数时使用的默认模板客户端。

您可以使用任何客户端作为模板来创建另一个客户端,但如果您始终拥有要使用的特定模板客户端,则template.client可配置可能会为您提供帮助。

如果您有p4命令行工具的2016.1或更高版本,还可以定义命令行别名(甚至几个命令行别名)以指定-t参数{ {1}}命令。如果您的服务器早于2014.1并且无法使用p4 client可配置,则此功能非常有用。

第二种广泛使用的技术是为客户端规范编写template.client触发器。在服务器准备初始默认客户端规范时调用form-out触发器,您可以在触发器中修改自动生成的规范。

以下是使用form-out触发器控制客户端视图的示例:https://www.perforce.com/perforce/doc.current/manuals/p4sag/chapter.scripting.html#scripting.triggers.forms.out

你必须编写(和调试)那个触发器,但是一旦它被开发和部署,流程就没有问题了,没有额外的参数供开发人员记住。

第三种方法是采用“流”开发过程,使用form-out命令定义流映射,并使用p4 stream命令在流之间切换。流是非常强大的;与此相关的流的一个特定方面是客户端工作区不再需要担心客户端规范的p4 switch部分,因为服务器接管完全维护客户端视图的任务。 (也就是说,服务器会根据该客户端使用的流的定义自动生成客户端的视图。)

这是一个很好的,如果有点高级,讨论流定义的功能,以简化客户端规范问题:https://www.perforce.com/blog/160122/pro-tip-use-ignored-paths-slim-down-workspaces

我希望其中一些想法有所帮助;让我们知道您选择的方法!

答案 1 :(得分:1)

使用&#34; p4客户端CLIENT&#34;创建新客户端时,添加使用当前客户端(P4CLIENT)作为模板的别名命令:

echo client $(arg) = client -t $(P4CLIENT) $(arg) > %USERPROFILE%\p4aliases.txt

请注意,您需要2016.1 p4.exe才能生效。