2

我是 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 的视图,但是使用第二个命令我可以查看所有仓库(仓库 1 和仓库)的视图。

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

谢谢!

4

2 回答 2

1

不幸的是,没有一种简单的方法可以配置默认客户端视图。我所知道的所有方法都需要一定的工作量。

一种广泛使用的技术是使用所谓的 a 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

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

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

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

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

于 2016-07-10T17:02:07.050 回答
1

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

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

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

于 2016-07-11T05:24:22.030 回答