概述
创建或编辑一个版本库的定义
语法
p4 [g-opts] depot depotname
p4 [g-opts] depot -d depotname
p4 [g-opts] depot -o depotname
p4 [g-opts] depot -i
描述
Perforce 服务器上的文件都储存在版本库中。缺省情况下,每个Perforce服务器上只有一个版本库,而且它的名字为depot.
为了创建或编辑一个版本库,可以使用p4 depot depotname 命令并编辑表单中的字段。版本库为三种类型中的一种:local, remote, 或 spec.
其他的本地版本库工作方式同缺省版本库。例如, 为了同步一个在版本库new里面的rel2目录下的README文件, 添加 //new/rel2/... 到你的客户工作区映射表的左边,然后运行 p4 sync //new/rel2/README 命令
如果你使用的是remote 版本库,那么你的 Perforce 服务器(该机器在P4PORT 定义)被配置为允许你的Perforce客户端程序从不同的Perforce服务器读取文件。远程的版本库严格限制为 read-only 访问权限; Perforce 客户程序不能对其他服务器上的版本库进行文件的add, edit, delete, or integrate 操作。关于远程版本库的详细信息可以阅读《Perforce 系统管理员手册》
spec 版本库, if present, 对用户编辑过的表单例如,客户工作区定义表单,工作表单,分支表单等等进行跟踪记录。 每个服务器上只能有一个spec 版本库。在 spec 版本库里的文件由服务器自动生成,并且在Perforce语法中另显示为:
//specdepotname/formtype/objectname[suffix]
例如, 如果 spec 版本库已经存在而且命名为spec, 而且使用缺省前缀为.p4s, 你可以通过下面命令获得对job000123 的改变纪录:
p4 filelog //spec/job/job000123.p4s
关于如何设置一个 spec 版本库德更多信息, 请阅读《系统管理员手册》
在你创建完成一个spec 版本库后,可以使用p4 admin updatespecdepot 命令 pre-populate it with current set of client, depot, branch, label, typemap, group, user, and job forms.
表单子段
字段名 类型 描述
Depot: Read-Only 在p4 depot depotname 命令中提供的版本库名
Owner: Writable 版本库的所有者。缺省下,就是常见了版本库的该用户。
Description: Writable 一个对版本库目的的简短描述。可选
Type: Writable local, remote,或 spec. 本地版本库可写,远程版本库是其他服务器上的版本库的代理,而且不可写; spec版本库,如果存在, 记录被编辑过的表单
Address: Writable 如果类型是: remote, 那么地址为 P4PORT 的远程服务器的地址.如果类型是: local 或 spec, 该字段被忽略
Suffix: Writable 如果类型是: spec, 这个字段会保留一个可选的前缀给在spec版本库中的对象生成路径
缺省前缀是 .p4s 。 你在使用spec 版本库的时候不需要前缀, 但是 but supplying a file extension to your Perforce server's versioned specs enables users of GUI client software to associate Perforce specifications with a preferred text editor.如果类型是: local 或 remote, 该字段被忽略
Map: Writable 如果类型是: local 或 spec, set the map to point to the relative location of the depot subdirectory relative to the Perforce server's P4ROOT. 该映射必须包含 ... 通配符; 例如,一个local 版本库 new 可能含有一个映射是:new/... .
如果类型是:remote, set the map to point to a location in the remote depot's physical namespace, for example, //depot/new/rel2/... . This directory will be the root of the local representation of the remote depot.
选项
-d depotname
删除版本库 depotname. 该版本库必须没有任何文件; Perforce 的超级用户可以通过 p4 obliterate命令移走文件
如果版本库是 remote, p4 obliterate 仍然需要运行;没有任何文件被删除,但是所有 outstanding的客户或标签记录都会指出该版本库被删除了
-i
从标准输入设备读入版本库的定义
-o depotname
把版本库的定义写入标准输出设备
g-opts
阅读 全局选项 部分
使用提示
Can File Arguments Use Revision Specifier? N/A
Can File Arguments Use Revision Range? N/A
Minimal Access Level Required super
* p4 depot 创建的版本库在服务器上并没有被物理创建直到有文件被通过p4 add 命令添加到该版本库中。
* 用户没有权限访问一个由p4 depot命令创建的版本库,直到通过命令 p4 protect设置了该版本库的访问权限。
* 远程版本库 depots 永远允许一个名为remote的虚拟用户访问,而且缺省情况,所有在Perforce服务器上的文件由可以被远程访问。为了限制或删除到一个特定服务器的远程访问,可以使用p4 protect 命令设置该服务器上remote用户的权限。
例如,为了删除特定服务器上对所有版本库所有文件的远程访问,可以在该服务器其设置下面的权限:
read user remote * -//...
因为远程版本库只能使用阅读权限,所有没有必要删除写和超级权限。
虚拟用户remote 不占用Perforce的一个授权
* 缺省下,本地版本库的映射字段指向匹配版本库名字的一个版本库目录,该目录和你服务器的根 (P4ROOT)设置有关。为了保存版本库的一个版本的文件到不同的卷或驱动器,可以在映射字段里指定一个绝对路径。这路径可以不在 P4ROOT 下
* 在windows系统的版本库表单的映射字段里的绝对路径必须使用反斜线( 例如, d:/newdepot/)
相关命令
列表查看Perforce服务器已知的所有版本库 p4 depots
用文件实例化一个新的版本库 p4 add
从已存在的客户工作区添加一个映射到新的版本库 p4 client
从一个版本库中移走一个文件的所有记录 p4 obliterate
设置 版本库的远程访问权限 p4 protect