p4 client
摘要
创建或者编辑一个客户工作区的定义和它的视图。
语法
p4 [g-opts] client [-f -t template] [clientname]
p4 [g-opts] client -o [-t template] [clientname]
p4 [g-opts] client -d [-f] clientname
p4 [g-opts] client -i [-f]
描述
一个 Perforce 的客户工作区是版本库中一个文件子集在客户机器上镜像的一组文件。“p4 client”命令用来创建或者编辑客户工作区的定义;调用这个命令会显示一个Perforce用来维护客户工作区而要求用户输入信息的表单.
虽然在版本库文件和客户工作区文件间是一对一的映射,但是这些文件不需要储存在一样的相关位置或是必须拥有相同的名字。客户视图,在P4 客户表单的视图中定义: 字段, 定义了文件在客户工作区如何被映射到版本库以及vice-versa.
如果在使用时没有带一个客户名字的参数,那么“P4 client”会在“P4CLIENT”环境变两或者与它相等的变量定义的工作区进行操作。如果客户名参数是一个被锁住的客户,那么这个客户定义是只读的。
当“p4 client”命令完成后,新的或是修改后的客户工作区定义会被储存到Perforce的数据库中;在客户工作区内的文件不会被改变。这个新的客户视图不会生效直到使用“p4 sync”命令。
命令“ p4 workspace ”是“ p4 client”的别名。
表单字段
字段名 类型 描述
Client: 只读 客户工作区名字, 定义在“ P4CLIENT ” 环境变量或类似变量
Owner: 可写 拥有该工作区的 Perforce 用户名字。缺省为该工作区的创建者。
Update: 只读 工作区定义被最后修改的日期
Access: Read-only 使用任何Perforce命令访问客户工作区定义的任何一部分的日期和时间
Host: Writable, optional 客户工作区所属机器名字。如果包含了该选项,那么对该客户工作区的操作只能在该主机上运行
当从该主机运行时,主机名必须与使用"P4 info" 命令显示的主机名完全一致。
这个字段是为了阻止意外在错误的机器上错误使用客户工作区。它并不提供安全措施,一旦指定的主机名字可以被带“-H”选项的任何P4 命令或者P4HOST 环境变量覆盖。提供了安全措施的类似机制是使用p4 protect 命令的IP地址限制特性。
Description:Writable, optional 对客户工作区的文字描述。缺省得文本由所有者创建。
Root: Writable, mandatory 与在视图内的定义的所有文件相关的目录。缺省是当前工作目录。
AltRoots: Writable, optional 提供最多两个可交替使用的客户工作区的roots. Perforce客户端程序使用第一个相应的主根和替代根来匹配客户程序当前的工作目录.
该命令允许用户在不同命名规则的多平台上使用相同的Perforce client 定义说明。
如果你在自己的客户根中使用一个windows的目录,那么你必须定义该目录为你的主客户根同时在altRoots字段中定义其他的客户根。
例如,一个工程师在多平台上创建一个产品,他可能会指定一个主客户根C:\Projects\Build 为Windows 版本,然后建立一个不同的根/staff/userid/projects/build 来给 UNIX 版本
Options: Writable, mandatory 一套总共7个的用来控制特定用户选项的开关。阅读后面的选项列表和使用提示了解详细内容
SubmitOptions: Writable, mandatory
用来管理 p4 submit操作的选项
* submitunchanged
把所有打开的文件(修改过或没有修改过)提交到版本库中.这是Perforce缺省操作.
* submitunchanged+reopen
把所有打开的文件(修改过或没有修改过)提交到版本库中,并且所有文件在缺省得变更表中重新自动打开。
* revertunchanged
只提交内容或者类型改变过的文件到版本库中。恢复没有作修改的文件
* revertunchanged+reopen 只提交修改过内容或者类型的文件到版本库中,并且在缺省变更表中重新打开它们。没有作修改过的文件被恢复并且不会在缺省变更表中被打开。
* leaveunchanged
只提交修改过内容或者类型的文件到版本库中。任何没有修改过的文件被移动到缺省的变更表中。
* leaveunchanged+reopen 只提交内容或者类型改变过的文件到版本库中。任何没有更改过的文件被移动到缺省的变更表中,并且在缺省变更表中打开修改过的文件。这个选项除了没有修改过的文件被提交到版本库外与submitunchanged+reopen 类似。
LineEnd:Writable, mandatory 一套总共4个的用来控制 carriage-return/linefeed (CR/LF) conversion的开关。阅读后面的选项列表和使用提示了解详细内容
View: Writable, multi-line 定义版本库中的文件和客户工作区中文件的映射。阅读 Views 了解更多内容
选项
-t clientname
拷贝客户工作区 clientname 的视图和客户选项到该工作区的视图和选项字段中去(i.e, 使用 clientname's 视图作为一个模版)
-f
Allows the last modification date, which is normally read-only, to be set. Superusers may use this flag to delete or modify locked workspaces owned by other users, and non-superusers may use this flag to delete or modify locked workspaces that they do own.
-d clientname
删除定义过的客户工作区,如果客户端属于调用该命令的用户或没有被锁住。 ( -f 选项允许 Perforce 的超级用户删除不许与他们的被锁住的客户工作区,或者允许不是超级用户的该客户工作区所有者进行对被锁住的客户工作区进行删除/修改。
-i
从标准的输入设备读取客户的描述
-o
从标准输出设备输出客户定义
g-opts
阅读 全局选项 部分
使用提示
文件名参数可以使用版本标记吗? N/A
文件名参数可以使用版本范围吗? N/A
最小访问权限 list
* Use quotation marks to enclose depot-side or client side mappings of file or directory names that contain spaces.
* 在客户工作区名字中的空格符被转化为下划线。例如,输入命令p4 client "my client" 创建一个名叫"my_client"的客户工作区。
* 选项: 该字段包含六个值, 由空格符分隔开。每个选项有两种值;下面的表提供了这些选项的值和它们的解释:
选项 选择 缺省值
[no]allwrite 如果设置,那么在客户机上的没有打开得文件被设置为可写 noallwrite
[no]clobber 设置后,那么p4 sync 命令会用新的同步文件覆盖("clobbers") 在客户端有相同名字可写但是没有打开得文件。 noclobber
[no]compress 设置后,在客户端和服务器间的数据流被压缩。(客户端和服务器都必须是99.1 更高版本,否则该设置被忽略) nocompress
[no]crlf
提示: 2000.2 或更早版本,在Windows中,如果设置了crlf, CR/LF 的间转换在版本库和客户工作区建复制文件时会自动进行 crlf
[un]locked 允许或拒绝其他用户对客户定义的编辑修改。(为了真正锁住一个客户定义,你还要通过p4 passwd设置该客户所有者的密码
如果锁住了,那么只有所有者可以使用,编辑或删除这个客户定义。Perforce的管理员可以使用-f(force)选项取消锁定状态。
unlocked
[no]modtime
没有 +m (modtime) 文件类型修改符的文件:
o 对于99.2 和更早版本的Perforce客户, 如果设置了modtime,那么新的同步文件的修改日期为该文件提交到版本库时服务器上的日期和时间
o 对于2000.1和更高版本的Perforce客户,如果设置了modtime ,那么心得同步文件的修改日期(本地文件系统)为该文件被最后修改的时间标记
o 如果设置了nomodtime ,那么修改日期为同步时的日期和时间,而不管Perforce客户端的版本
有 +m (modtime) 文件类型修改符的文件
o 对于99.2 和更早版本的 Perforce客户,+m 修改符被忽略,modtime 和nomodtime 操作如上面所述.
o 对于 2000.1和更高版本的Perforce客户,新同步文件的修改日期(本地文件系统)是该文件提交到版本库时的时间标记,而忽略客户上对modtime 和 nomodtime 的设置.
nomodtime
(i.e. date and time of sync) for most files.
Ignored for files with the +m file type modifier.
[no]rmdir
设置后, p4 sync 会删除在客户上的文件都被移走的空目录.
normdir
* 缺省情况下,任何用户都可以通过p4 client -c clientname命令编辑任意一个工作区的定义。可以通过设置锁住选项和p4 passwd 为拥有者创建一个密码来阻止这种情况发生。
* compress 选项可以通过减少在客户/服务器间低速连接上的数据总量来提高传输速度。在高速连结传输过程中,压缩处理的过程可能比传输还要费时间。通常情况下compress 选项在T1连接速度以下时可以设置,其他情况都不要设置。
* LineEnd: 字段控制在客户工作区中的文本文件使用的line-ending 字符
Note
he LineEnd: Perforce 2001.1的新选项. It renders the previous convention of specifying crlf or nocrlf in the Options: field obsolete. The behavior of the mutually-contradictory combination of LineEnd: win and Options: crlf is undefined.
The LineEnd: 选项接受下面五个中的一个值
Option Meaning
local 客户使用本地模式(缺省)
unix UNIX-style (and Mac OS X) 行结束 LF
mac Macintosh pre-OS X: CR only
win Windows-style: CR, LF.
share 共享模式: Line endings are LF with any CR/LF pairs translated to LF-only style before storage or syncing with the depot.
当你同步你的客户工作区时,行结束设置为LF. If you edit the file on a Windows machine, and your editor inserts CRs before each LF, the extra CRs do not appear in the archive file.
The most common use of the share option is for users of Windows workstations who mount their UNIX home directories as network drives; if you sync files from UNIX, but edit the files on a Windows machine, the share option eliminates problems caused by Windows-based editors that insert carriage returns in text files.
更多关于Perforce使用line-ending设置的详细信息可以从下面联接了解:
http://www.perforce.com/perforce/technotes/note063.html
* 在缺省情况下,如果在客户工作区的一个目录室空的话(例如,因为在最后一次同步后,版本库中映射到该目录的文件被删除了), 一个p4 sync 操作仍然会完整保留该目录。如果你使用了rmdir 选项,那么p4 sync 命令会删除所有在客户工作区中的空目录。
如果 rmdir 选项激活了,那么 p4 sync 操作有时可能会移走你当前的工作目录。如果这种事情发生了,那么只要换到一个已存在的目录继续工作就可以了。
* 有modtime (+m) 类型的文件主要是用于想保留文件最初时间标记的开发员。在文件类型中使用+m 覆盖客户的modtime 或者nomodtime 的设置。关于 +m 修改符得跟多讨论可以阅读文件类型 部分
* 如果你使用多重或可变换的(AltRoots:字段)客户根,你可以通过p4 info 所提供信息里的Client root 部分了解那个客户根在生效。
* 为了在Windows上定义一个多驱动器的Perforce 客户,可以使用一个空的根(Root: of null), 并且在客户工作区试图内定义驱动器的字符。例如,下面客户定义了一个C: 驱动器上一个区域为空客户根并映射到 //depot/main/... ,而剩下的其他版本映射到D: 驱动器
客户: eds_win
所有者: edk
描述:
Ed's Windows Workspace
根: null
选项: nomodtime noclobber
提交选项: submitunchanged
视图:
//depot/main/... "//eds_win/c:/Current Release/..."
//depot/rel1.0/... //eds_win/d:/old/rel1.0/...
//depot/rel2.0/... //eds_win/d:/old/rel2.0/...
在定义多驱动器工作区的时候使用驱动器符得小写字母
举例
p4 client
编辑或创建一个名字由P4CLIENT 变量或等同变量命名的客户工作区。
p4 client -t sue joe
创建或编辑客户工作区joe, 把sue作为缺省工作区,在里面打开有子段值和工作区选项的表单
p4 client -d release1
删除客户工作区release1
相关命令
列表显示系统已知的客户工作区 p4 clients
把从版本库中读文件到客户工作区 p4 sync
在客户工作区内打开要添加到版本库中的新文件 p4 add
在客户工作区中打开文件进行编辑 p4 edit
在客户工作区中打开文件进行删除 p4 delete
把在客户工作区内修改过的文件提交到版本库 p4 submit
http://tc.first.blog.163.com/blog/static/49210726201012254611454/