6

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

set P4CLIENT=my_new_client_1
p4 client

给了我以下规范默认规范:

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

SubmitOptions:  submitunchanged
...

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

有什么办法可以做到这一点?p4 set 似乎只影响环境变量可以设置的东西。

4

3 回答 3

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
于 2010-07-09T05:11:11.490 回答
3

这里的第一个响应是不正确的:

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

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

请注意,这很好用,甚至在 P4 SysAdmin Guide 中也有(您正在寻找的确切示例在那里!)但调试起来可能有点困难,因为触发器在服务器上运行,而不是在客户端上运行!

手册: 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

于 2010-07-09T22:20:07.037 回答
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

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

于 2019-10-04T14:46:31.650 回答