如何为 'p4 client' 设置默认视图

How to set default view for 'p4 client'

我是 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 和软件仓库)的视图。

如何配置它,意味着每次创建 client\workspace 我都会得到当前环境变量的相同视图 P4CLIENT (换句话说,我希望每个 p4 client <client_name>)?

谢谢!

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

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

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

您可以使用任何客户端作为创建另一个客户端的模板,但如果您始终有一个特定的模板客户端要使用,template.client 可配置项可能会为您解决问题。

如果你有2016.1或更高版本的p4命令行工具,你也可以定义一个命令行别名(甚至几个命令行别名)来指定-t参数p4 client 命令。如果您的服务器早于 2014.1 且无法使用 template.client 可配置项,这可能很有用。

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

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

您必须编写(和调试)该触发器,但一旦开发和部署它,流程就没有问题了,您的开发人员无需记住额外的参数。

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

这里有一个关于流定义简化客户端规范问题的强大功能的讨论,虽然有点高级:https://www.perforce.com/blog/160122/pro-tip-use-ignored-paths-slim-down-workspaces

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

在使用 "p4 client CLIENT" 命令创建新客户端时,添加一个使用当前客户端 (P4CLIENT) 作为模板的别名:

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

请注意,您需要 2016.1 p4.exe 才能正常工作。