• [SCM]源码管理 perforce的superuser的任务


    perforce superuser任务

    1)server security levels
    perforce支持的security level为0,1,2,3。可以通过命令p4 configure set security=seclevel来设置。

    level0:不需要密码。
    level1:所有的用户都必须有密码,且对于旧的客户端仍然可以使用弱密码。
    level2:所有的用户都必须使用强密码。
    level3:必须使用基于ticket的认证方式。

    2)user authentication(用户认证)
    perforce支持两种用户认证方式:基于password和基于ticket。

    password的认证方式是无状态的。在password被正确的设置后,用户可以无限制的访问.基于password的认证方式可以在server security level 0,1,2下工作。
    ticket的认证方式是基于时间限制的tickets的。客户端存储tickets在p4tickets环境变量指定的文件中。如果没有p4tickets环境变量,默认地windows上存储在%USERPROFILE%\p4tickets.txt,Unix上存储在$HOME/.p4tickets。ticket是有时间期限的,默认地ticket是在12小时内可用。可以通过设置group的timeout参数来间接的设置user的tickets的时间期限。且user的ticket的时间期限等于user所在的groups中的时间期限最大的group的时间期限设置。基于ticket的认证方式需要工作在server security level3下。

    使用p4 login -a来创建机器无关的ticket,从多台机器上logout需要使用p4 logout -a 。使用p4 login -s来查看当前的ticket的状态。显示所有的tickets使用命令p4 tickets。

    3)控制client的最小版本
    p4 configure set minClient=2010.2
    p4 configure set minClientMessage="Please upgrade to 2010.2 or higher"

    4)阻止p4用户的自动创建
    默认地当用户激活任何的客户端命令来跟新depot或p4 database的时候,user将会被自动地创建。但是可以设置dm.user.noautocreate来禁止用户的自动创建。
    例如如下的命令来禁止user被自动地创建。
    p4 configure set dm.user.noautocreate=2

    dm.user.noautocreate还可以被设置为0和1,0表示user被自动地创建,1表示user可以显式地调用p4 user来创建自己的账号。

    5)license文件的修改,license是一个txt文件被存储在p4server root目录下。一般地当license文件修改后需要restart p4server来使新的license文件起作用。

    6)p4 obliterate彻底的删除p4server上的文件
    某些时候错误地将包含私密信息的文件提交到p4server,或者某些文件被错误地提交到了不正确的路径,这些情况要求不仅要将文件从depot上删除,而且还要删除此文件相关的所有的历史记录。p4 obliterate就是用来将文件和历史记录彻底删除的命令。
    例如使用p4 obliterate -y filename来彻底删除filename文件。
    p4 obliterate还可以只彻底删除某文件的某些版本,例如p4 obliterate -y file#5用来彻底删除file的版本5的记录。

    7)修改提交的changelist的信息
    只有superuser才可以使用p4 change -f来修改和删除某些changelist。例如
    p4 change -f 123
    p4 change -d -f 124

    8)p4 monitor来监视p4server的状态
    首先需要打开monitor开关,使用命令p4 counter -f monitor 1,且在设置后需要重启p4server。

    使用p4 monitor show -a -e -l 来显示所有正在运行的p4server的进程。-a用来显示命令的参数, -e用来显示执行当前命令的用户的设置,例如user,workspace,ip-adress,-l用来显示长字符串,禁止对字符串的截断。

    p4 monitor terminate pid 用来结束某个p4server的进程。

    也可以在p4admin.exe的GUI工具中执行p4 monitor的操作。

    9)使用多个depots
    可以使用命令p4 depot depotname来创建depot。depot的类型有local,remote和spec。

    local就是一般的depot,每个p4server默认地包含了一个名字为depot的depot,admin可以为不同的产品增加新的local depot。

    remote的depot,remote的depot其实只是对远程的p4server的代码的一个引用,代码是存储在远程的p4server的。当用户访问时remote类型的depot时,后台p4server将与remote的p4server通信,对于用户看起来跟访问本地的depot没有啥区别。remote的depot一般用来在不同的部门或组织共享源代码。

    spec类型的depot,是每一p4server只包含一个的特殊的depot,用来记录p4server本身的修改历史,例如spec下包含了branch,change,user,group等的历史记录。

    10)remote depot的使用
    通常地如果位于不同的p4server的产品之间需要代码的引用,则需要使用remote depot来在一个p4server创建对另一个p4server的一个引用。例如有一个基础的component SDK位于某个p4server,位于其他的p4server的产品都需要引用此component SDK,此时有两种方法:1)产品的开发人员自己访问component SDK的p4server去获取component SDK;2)在产品所在的p4server建立对component SDK的remote depot,相当于在产品所在的p4server增加了对componentSDK的一个访问接口,且后台的p4server与远程的component SDK所在的p4server的交互被自动地完成了。 很显然方法2)对开发人员来说更简单。

    例如如下的remote depot, 表示//from-pine 是对远程的pine:1818上的//depot/outbound/...的引用。

    Depot: from-pine
    Type: remote
    Address: pine:1818
    Map: //depot/outbound/...
     

    在p4server的后台使用虚拟的账号remote来实现remote depot与远程p4server的交互。 且此remote账号对远程的p4server只有读权限。如果一个p4server没有remote depot与之关联,则建议去除remote的账号的权限:

    list user remote * -//...
     

    可以将所有产品公用的第三方的component放到一个p4server,然后其他的产品所在的p4server都建立一个remote depot来引用第三方的component, 从而实现对所有的第三方component的统一存储管理,节约空间,易于维护和跟新。

    完!

  • 相关阅读:
    第二次作业
    第四次作业
    第三次作业
    第二次作业
    第一次作业
    第四次作业
    第三次作业
    第二次作业
    第一次大学作业
    第四次作业
  • 原文地址:https://www.cnblogs.com/itech/p/2140679.html
Copyright © 2020-2023  润新知