代码之家  ›  专栏  ›  技术社区  ›  Greg

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

  •  6
  • Greg  · 技术社区  · 14 年前

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

    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集似乎只影响可以由环境变量设置的东西。

    2 回复  |  直到 14 年前
        1
  •  7
  •   rettops    14 年前

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

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

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

    p4 client -t my_template_client my_new_client_1
    
        2
  •  3
  •   Dana Lacoste    14 年前

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

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

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

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

        3
  •  1
  •   Tom Tyler    5 年前

    Perforce服务器部署包(SDP)是一个具有操作Perforce Helix核心服务器最佳实践的参考实现,它包含了用于此目的的示例触发器。请参见:

    使用 p4 client -t <template_client>

    -t <template_client> . 这可以通过设置可配置的 模板.client . 请参见: https://www.perforce.com/manuals/cmdref/Content/CmdRef/configurables.configurables.html#template.client

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

    推荐文章