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

如何为perforce客户端规范设置默认值,perforce,perforce-client-spec,Perforce,Perforce Client Spec,我试图发现如何更改默认的客户端规范选项集和提交选项 set P4CLIENT=my_new_client_1 p4 client 为我提供以下规格默认规格: Client: my_new_client_1 ... Options: noallwrite noclobber nocompress unlocked nomodtime normdir SubmitOptions: submitunchanged ... 现在,在我的机器上,我希望始终使用revertunchanged,

我试图发现如何更改默认的客户端规范选项集和提交选项

set P4CLIENT=my_new_client_1
p4 client
为我提供以下规格默认规格:

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

SubmitOptions:  submitunchanged
...
现在,在我的机器上,我希望始终使用
revertunchanged
rmdir
,例如,但似乎每次创建新客户机时,我都需要记住手动设置


有没有办法做到这一点?p4设置似乎只影响环境变量可以设置的内容。

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

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

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

p4 client -t my_template_client my_new_client_1

这里的第一个回答不正确:

您可以使用触发器在Perforce中创建默认clientspec

本质上,您创建了一个脚本,该脚本在服务器上运行,并在有人在表单客户端执行表单输出时运行。这个脚本必须检查clientspec是否已经存在,如果不存在,则替换一个合理的“default”(如果它是一个新的clientspec)

请注意,这工作得很好,甚至在P4系统管理指南中(您正在寻找的确切示例就在那里!),但调试起来可能有点困难,因为触发器在服务器上运行,而不是在客户机上

手册:

具体案例示例:
Perforce Server部署包(SDP)是一个参考实现,提供了操作Perforce Helix Core服务器的最佳实践,包括用于此目的的示例触发器。见:

  • SetWsOptions.py-
  • setwsoptions和view.py-
使用
p4客户机-t
非常有用,是普通用户可以做的事情,并且具有与P4V(图形用户界面)等价的功能。只有Performance超级用户才能处理触发器

超级用户还需要注意另一个技巧:如果用户没有使用
-t
指定客户机规范,他们可以指定一个客户机规范作为默认规范。这可以通过设置可配置的模板.client来实现。见:


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

谢谢,我怀疑我必须求助于模板。我假设上面的命令行从结尾处缺少“客户机;”哦,对不起。这应该是“p4客户机-t我的模板客户机我的新客户机1”注意,我的第一行说“除非你是Performce系统管理员”。您的示例来自《Performce系统管理员指南》。触发器只能由Perforce超级用户定义。感谢您提供的信息-我可能没有设置触发器的权限,但我会试一试。我认为你在这里所说的对一些人来说是很有价值的,所以也许我可以把这个问题分成两个问题——一个是关于严格的基本用户的问题,另一个是关于那些拥有更完整访问权限的用户的问题。