如何为perforce客户端规范设置默认值

时间:2010-07-09 04:04:23

标签: perforce perforce-client-spec

我正在尝试了解如何更改默认的客户端规范选项和提交选项。

set P4CLIENT=my_new_client_1
p4 client

给我以下规范default-spec:

Client: my_new_client_1
...
Options:    noallwrite noclobber nocompress unlocked nomodtime normdir

SubmitOptions:  submitunchanged
...

现在在我的机器上我想总是使用revertunchangedrmdir,但似乎我需要记住每次创建新客户端时手动设置它。

有没有办法实现这个目标? p4 set似乎只影响环境变量可以设置的东西。

3 个答案:

答案 0 :(得分:7)

您无法更改默认客户端规范模板(除非您是Perforce系统管理员),但您可以设置并使用自己的模板。您首先要创建一个虚拟客户端,其客户端规范具有您想要的值:

Client: my_template_client
...
Options:    noallwrite noclobber nocompress unlocked nomodtime rmdir

SubmitOptions:  revertunchanged
...

然后,您只需指定在创建新客户端时将虚拟客户端用作模板:

p4 client -t my_template_client my_new_client_1

答案 1 :(得分:3)

这里的第一个回答是错误的:

您可以使用触发器在Perforce中创建默认的客户端规范。

基本上,您创建一个在服务器上运行的脚本,并在表单客户端上有人执行表单时运行。此脚本必须检查以查看clientspec是否已存在,然后如果不存在则替换合理的“默认”(如果它是新的客户端规范)。

请注意,这样做效果很好,甚至在P4 SysAdmin指南中(您正在寻找的确切示例就在那里!)但是调试起来有点困难,因为触发器在SERVER上运行,而不是在客户端!

手册: http://www.perforce.com/perforce/r10.1/manuals/p4sag/06_scripting.html

具体案例: http://www.perforce.com/perforce/r10.1/manuals/p4sag/06_scripting.html#1057213

答案 2 :(得分:1)

Perforce服务器部署软件包(SDP)是具有操作Perforce Helix Core服务器的最佳实践的参考实现,其中包括为此目的而设计的示例触发器。参见:

使用p4 client -t <template_client>很有用,是普通用户可以做的事情,并且也具有等效的P4V(图形用户界面)。只有Perforce超级用户才能使触发器混乱。

超级用户还需要注意另一个技巧:如果用户未使用-t <template_client>指定一个客户端规范,则它们可以指定默认客户端规范。可以通过设置可配置的 template.client 来完成。参见:https://www.perforce.com/manuals/cmdref/Content/CmdRef/configurables.configurables.html#template.client

另一个建议:我建议将默认值从submitunchanged更改为leaveunchanged而不是revertunchanged(如上述示例触发器中所示)。使用leaveunchanged更好,因为如果您仍然希望检出文件,则使用leaveunchanged而不是revertunchanged可以使您不必导航到文件以再次检出它。这是一件小事,但最好保持不变。如果您确实想还原未修改的文件,则还原要比再次签出要容易一些,这可能需要更多的导航或键入。