p4 client <no args>的Perforce文档声明:
-- p4 client命令将客户机规范放入一个临时文件中,并调用由环境变量P4EDITOR配置的编辑器。对于新的工作区,客户端名称默认为P4CLIENT环境变量(如果设置)或当前主机名。保存文件会创建或修改客户端规范。
我在我们的网络上看到的是,客户端无论如何都是创建的,即使我没有保存就退出了。
例如。
[cad_test_user@sws-cab9-0 ~]$ pwd
/home/cad_test_user
[cad_test_user@sws-cab9-0 ~]$ env | grep P4
P4EDITOR=
P4PORT=tcp:p4p:1666
P4DIFF=tkdiff
P4CONFIG=.p4config
P4IGNORE=.ignore
P4USER=cad_test_user
[cad_test_user@sws-cab9-0 ~]$ p4 clients | grep sws-cab9-0
[cad_test_user@sws-cab9-0 ~]$ p4 client
Client: sws-cab9-0
Owner: cad_test_user
Host: sws-cab9-0.aus5.mythic-ai.com
Client sws-cab9-0 saved.
Root: /home/cad_test_user
Options: noallwrite noclobber nocompress unlocked nomodtime normdir
SubmitOptions: submitunchanged
LineEnd: local
View:
<quit without save>
Client sws-cab9-0 saved.
[cad_test_user@sws-cab9-0 ~]$ p4 clients | grep sws-cab9-0
Client sws-cab9-0 2021/04/06 root /home/cad_test_user 'Created by cad_test_user. '现在,作为.p4config等级之外的另一个用户,我得到了%clientroot%的意外值:
[cad_test_user@sws-cab9-0 /]$ p4 -F %clientRoot% -ztag info
/home/cad_test_user我想知道我们的默认设置是否有问题;为什么即使没有写,客户端也会被创建和保存?理想情况下,我希望在某种程度上管理默认规范,例如:
c:$USER:foo
谢谢你的回答!
发布于 2021-04-06 23:57:01
设置一个触发器( client表单上的一个client触发器),该触发器拒绝一个不符合您的标准的客户端。很难直接执行#4,但只要您的其他条件中至少有一个条件需要对表单进行编辑,它就会间接地处理得足够好。
请注意,您可以将form-save触发器与修改默认客户端表单的form-out触发器配对--例如,您可以用一个明显无效的字段(如--ENTER SOMETHING PERSONALIZED HERE-- )替换Root,然后确保您的form-save触发器拒绝它。Perforce sys管理指南有一些很好的简单示例触发器,其中一个演示了自定义客户端规范默认设置:https://www.perforce.com/manuals/p4sag/Content/P4SAG/scripting.triggers.forms.out.html。
在您的标准#2中,我建议不要这样做,除非您所处的环境中多台主机共享一个文件系统是司空见惯的。默认的主机护栏是为了防止您混淆自己(可能还会丢失数据),方法是重用客户端规范,使工作区状态偏离正常状态。
https://stackoverflow.com/questions/66977639
复制相似问题