我正在尝试了解如何更改默认的客户端规范选项和提交选项。
set P4CLIENT=my_new_client_1
p4 client
给我以下规范default-spec:
Client: my_new_client_1
...
Options: noallwrite noclobber nocompress unlocked nomodtime normdir
SubmitOptions: submitunchanged
...
现在在我的机器上我想总是使用revertunchanged
,rmdir
,但似乎我需要记住每次创建新客户端时手动设置它。
有没有办法实现这个目标? p4 set似乎只影响环境变量可以设置的东西。
答案 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
可以使您不必导航到文件以再次检出它。这是一件小事,但最好保持不变。如果您确实想还原未修改的文件,则还原要比再次签出要容易一些,这可能需要更多的导航或键入。