Perforce使用中文教程

本文介绍 Perforce 版本控制系统中客户端工作区的创建、编辑与管理方法。包括客户端工作区的基本概念、配置选项及命令行工具的使用。还讲解了如何设置客户工作区的选项以满足特定需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建或者编辑一个客户工作区的定义和它的视图。

语法
p4[g-opts]client[-f-ttemplate][clientname]
p4[g-opts]client-o[-ttemplate][clientname]
p4[g-opts]client-d[-f]clientname
p4[g-opts]client-i[-f]
描述
一个Perforce的客户工作区是版本库中一个文件子集在客户机器上镜像的一组文件。“p4client”命令用来创建或者编辑客户工作区的定义;调用这个命令会显示一个Perforce用来维护客户工作区而要求用户输入信息的表单.
虽然在版本库文件和客户工作区文件间是一对一的映射,但是这些文件不需要储存在一样的相关位置或是必须拥有相同的名字。客户视图,在P4客户表单的视图中定义:字段,定义了文件在客户工作区如何被映射到版本库以及vice-versa.
如果在使用时没有带一个客户名字的参数,那么“P4client”会在“P4CLIENT”环境变两或者与它相等的变量定义的工作区进行操作。如果客户名参数是一个被锁住的客户,那么这个客户定义是只读的。
当“p4client”命令完成后,新的或是修改后的客户工作区定义会被储存到Perforce的数据库<wbr style="line-height:25px">中;在客户工作区内的文件不会被改变。这个新的客户视图不会生效直到使用“p4sync”命令。<br style="line-height:25px"><br style="line-height:25px"> 命令“p4workspace”是“p4client”的别名。<br style="line-height:25px"><br style="line-height:25px"> 表单字段<br style="line-height:25px"><br style="line-height:25px"> 字段名类型描述<br style="line-height:25px"><br style="line-height:25px"> Client:只读客户工作区名字,定义在“P4CLIENT”环境变量或类似变量<br style="line-height:25px"> Owner:可写拥有该工作区的Perforce用户名字。缺省为该工作区的创建者。<br style="line-height:25px"> Update:只读工作区定义被最后修改的日期<br style="line-height:25px"> Access:Read-only使用任何Perforce命令访问客户工作区定义的任何一部分的日期和时间<br style="line-height:25px"> Host:Writable,optional客户工作区所属机器名字。如果包含了该选项,那么对该客户工作区的操作只能在该主机上运行<br style="line-height:25px"> 当从该主机运行时,主机名必须与使用"P4info"命令显示的主机名完全一致。<br style="line-height:25px"> 这个字段是为了阻止意外在错误的机器上错误使用客户工作区。它并不提供安全措施,一旦指定的主机名字可以被带“-H”选项的任何P4命令或者P4HOST环境变量覆盖。提供了安全措施的类似机制是使用p4protect命令的IP地址限制特性。<br style="line-height:25px"> Description:Writable,optional对客户工作区的文字描述。缺省得文本由所有者创建。<br style="line-height:25px"> Root:Writable,mandatory与在视图内的定义的所有文件相关的目录。缺省是当前工作目录。<br style="line-height:25px"> AltRoots:Writable,optional提供最多两个可交替使用的客户工作区的roots.Perforce客户端程序使用第一个相应的主根和替代根来匹配客户程序当前的工作目录.<br style="line-height:25px"> 该命令允许用户在不同命名规则的多平台上使用相同的Perforceclient定义说明。<br style="line-height:25px"> 如果你在自己的客户根中使用一个windows的目录,那么你必须定义该目录为你的主客户根同时在altRoots字段中定义其他的客户根。<br style="line-height:25px"> 例如,一个工程师在多平台上创建一个产品,他可能会指定一个主客户根C:\Projects\Build为Windows版本,然后建立一个不同的根/staff/userid/projects/build来给UNIX版本<br style="line-height:25px"> Options:Writable,mandatory一套总共7个的用来控制特定用户选项的开关。阅读后面的选项列表和使用提示了解详细内容<br style="line-height:25px"> SubmitOptions:Writable,mandatory<br style="line-height:25px"><br style="line-height:25px"><br style="line-height:25px"> 用来管理p4submit操作的选项<br style="line-height:25px"><br style="line-height:25px"> *submitunchanged<br style="line-height:25px"> 把所有打开的文件(修改过或没有修改过)提交到版本库中.这是Perforce缺省操作.<br style="line-height:25px"><br style="line-height:25px"> *submitunchanged+reopen<br style="line-height:25px"> 把所有打开的文件(修改过或没有修改过)提交到版本库中,并且所有文件在缺省得变更表中重新自动打开。<br style="line-height:25px"><br style="line-height:25px"> *revertunchanged<br style="line-height:25px"> 只提交内容或者类型改变过的文件到版本库中。恢复没有作修改的文件<br style="line-height:25px"><br style="line-height:25px"> *revertunchanged+reopen只提交修改过内容或者类型的文件到版本库中,并且在缺省变更表中重新打开它们。没有作修改过的文件被恢复并且不会在缺省变更表中被打开。<br style="line-height:25px"><br style="line-height:25px"> *leaveunchanged<br style="line-height:25px"> 只提交修改过内容或者类型的文件到版本库中。任何没有修改过的文件被移动到缺省的变更表中。<br style="line-height:25px"><br style="line-height:25px"> *leaveunchanged+reopen只提交内容或者类型改变过的文件到版本库中。任何没有更改过的文件被移动到缺省的变更表中,并且在缺省变更表中打开修改过的文件。这个选项除了没有修改过的文件被提交到版本库外与submitunchanged+reopen类似。<br style="line-height:25px"><br style="line-height:25px"> LineEnd:Writable,mandatory一套总共4个的用来控制carriage-return/linefeed(CR/LF)conversion的开关。阅读后面的选项列表和使用提示了解详细内容<br style="line-height:25px"><br style="line-height:25px"> View:Writable,multi-line定义版本库中的文件和客户工作区中文件的映射。阅读Views了解更多内容<br style="line-height:25px"><br style="line-height:25px"> 选项<br style="line-height:25px"><br style="line-height:25px"> -tclientname<br style="line-height:25px"> 拷贝客户工作区clientname的视图和客户选项到该工作区的视图和选项字段中去(i.e,使用clientname's视图作为一个模版)<br style="line-height:25px"><br style="line-height:25px"> -f<br style="line-height:25px"> Allowsthelastmodificationdate,whichisnormallyread-only,tobeset.Superusersmayusethisflagtodeleteormodifylockedworkspacesownedbyotherusers,andnon-superusersmayusethisflagtodeleteormodifylockedworkspacesthattheydoown.<br style="line-height:25px"><br style="line-height:25px"> -dclientname<br style="line-height:25px"> 删除定义过的客户工作区,如果客户端属于调用该命令的用户或没有被锁住。(-f选项允许Perforce的超级用户删除不许与他们的被锁住的客户工作区,或者允许不是超级用户的该客户工作区所有者进行对被锁住的客户工作区进行删除/修改。<br style="line-height:25px"><br style="line-height:25px"> -i<br style="line-height:25px"> 从标准的输入设备读取客户的描述<br style="line-height:25px"><br style="line-height:25px"> -o<br style="line-height:25px"> 从标准输出设备输出客户定义<br style="line-height:25px"><br style="line-height:25px"> g-opts<br style="line-height:25px"> 阅读全局选项部分<br style="line-height:25px"><br style="line-height:25px"><br style="line-height:25px"> 使用提示<br style="line-height:25px"> 文件名参数可以使用版本标记吗?N/A<br style="line-height:25px"> 文件名参数可以使用版本范围吗?N/A<br style="line-height:25px"> 最小访问权限list<br style="line-height:25px"><br style="line-height:25px"> *Usequotationmarkstoenclosedepot-sideorclientsidemappingsoffileordirectorynamesthatcontainspaces.<br style="line-height:25px"> *在客户工作区名字中的空格符被转化为下划线。例如,输入命令p4client"myclient"创建一个名叫"my_client"的客户工作区。<br style="line-height:25px"> *选项:该字段包含六个值,由空格符分隔开。每个选项有两种值;下面的表提供了这些选项的值和它们的解释:<br style="line-height:25px"><br style="line-height:25px"> 选项选择缺省值<br style="line-height:25px"> [no]allwrite如果设置,那么在客户机上的没有打开得文件被设置为可写noallwrite<br style="line-height:25px"><br style="line-height:25px"> [no]clobber设置后,那么p4sync命令会用新的同步文件覆盖("clobbers")在客户端有相同名字可写但是没有打开得文件。noclobber<br style="line-height:25px"><br style="line-height:25px"> [no]compress设置后,在客户端和服务器间的数据流被压缩。(客户端和服务器都必须是99.1更高版本,否则该设置被忽略)nocompress<br style="line-height:25px"><br style="line-height:25px"> [no]crlf<br style="line-height:25px"> 提示:2000.2或更早版本,在Windows中,如果设置了crlf,CR/LF的间转换在版本库和客户工作区建复制文件时会自动进行crlf<br style="line-height:25px"><br style="line-height:25px"> [un]locked允许或拒绝其他用户对客户定义的编辑修改。(为了真正锁住一个客户定义,你还要通过p4passwd设置该客户所有者的密码<br style="line-height:25px"> 如果锁住了,那么只有所有者可以使用,编辑或删除这个客户定义。Perforce的管理员可以使用-f(force)选项取消锁定状态。<br style="line-height:25px"> unlocked<br style="line-height:25px"><br style="line-height:25px"> [no]modtime<br style="line-height:25px"> 没有+m(modtime)文件类型修改符的文件:<br style="line-height:25px"> o对于99.2和更早版本的Perforce客户,如果设置了modtime,那么新的同步文件的修改日期为该文件提交到版本库时服务器上的日期和时间<br style="line-height:25px"> o对于2000.1和更高版本的Perforce客户,如果设置了modtime,那么心得同步文件的修改日期(本地文件系统)为该文件被最后修改的时间标记<br style="line-height:25px"> o如果设置了nomodtime,那么修改日期为同步时的日期和时间,而不管Perforce客户端的版本<br style="line-height:25px"><br style="line-height:25px"> 有+m(modtime)文件类型修改符的文件<br style="line-height:25px"> o对于99.2和更早版本的Perforce客户,+m修改符被忽略,modtime和nomodtime操作如上面所述.<br style="line-height:25px"> o对于2000.1和更高版本的Perforce客户,新同步文件的修改日期(本地文件系统)是该文件提交到版本库时的时间标记,而忽略客户上对modtime和nomodtime的设置.<br style="line-height:25px"><br style="line-height:25px"> nomodtime<br style="line-height:25px"> (i.e.dateandtimeofsync)formostfiles.<br style="line-height:25px"> Ignoredforfileswiththe+mfiletypemodifier.<br style="line-height:25px"><br style="line-height:25px"> [no]rmdir<br style="line-height:25px"> 设置后,p4sync会删除在客户上的文件都被移走的空目录.<br style="line-height:25px"> normdir<br style="line-height:25px"> *缺省情况下,任何用户都可以通过p4client-cclientname命令编辑任意一个工作区的定义。可以通过设置锁住选项和p4passwd为拥有者创建一个密码来阻止这种情况发生。<br style="line-height:25px"> *compress选项可以通过减少在客户/服务器间低速连接上的数据总量来提高传输速度。在高速连结传输过程中,压缩处理的过程可能比传输还要费时间。通常情况下compress选项在T1连接速度以下时可以设置,其他情况都不要设置。<br style="line-height:25px"> *LineEnd:字段控制在客户工作区中的文本文件使用的line-ending字符。<br style="line-height:25px"><br style="line-height:25px"><br style="line-height:25px"> Note<br style="line-height:25px"> heLineEnd:Perforce2001.1的新选项.ItrendersthepreviousconventionofspecifyingcrlfornocrlfintheOptions:fieldobsolete.Thebehaviorofthemutually-contradictorycombinationofLineEnd:winandOptions:crlfisundefined.<br style="line-height:25px"> TheLineEnd:选项接受下面五个中的一个值<br style="line-height:25px"> OptionMeaning<br style="line-height:25px"> local客户使用本地模式(缺省)<br style="line-height:25px"> unixUNIX-style(andMacOSX)行结束LF<br style="line-height:25px"> macMacintoshpre-OSX:CRonly<br style="line-height:25px"> winWindows-style:CR,LF.<br style="line-height:25px"> share共享模式:LineendingsareLFwithanyCR/LFpairstranslatedtoLF-onlystylebeforestorageorsyncingwiththedepot.<br style="line-height:25px"><br style="line-height:25px"> 当你同步你的客户工作区时,行结束设置为LF.IfyoueditthefileonaWindowsmachine,andyoureditorinsertsCRsbeforeeachLF,theextraCRsdonotappearinthearchivefile.<br style="line-height:25px"><br style="line-height:25px"> ThemostcommonuseoftheshareoptionisforusersofWindowsworkstationswhomounttheirUNIXhomedirectoriesasnetworkdrives;ifyousyncfilesfromUNIX,buteditthefilesonaWindowsmachine,theshareoptioneliminatesproblemscausedbyWindows-basededitorsthatinsertcarriagereturnsintextfiles.<br style="line-height:25px"> 更多关于Perforce使用line-ending设置的详细信息可以从下面联接了解:<br style="line-height:25px"> http://www.<span style="line-height:1.3em">perforce</span><wbr style="line-height:25px">.com/perforce/technotes/note063.html<br style="line-height:25px"><br style="line-height:25px"> *在缺省情况下,如果在客户工作区的一个目录室空的话(例如,因为在最后一次同步后,版本库中映射到该目录的文件被删除了),一个p4sync操作仍然会完整保留该目录。如果你使用了rmdir选项,那么p4sync命令会删除所有在客户工作区中的空目录。<br style="line-height:25px"><br style="line-height:25px"> 如果rmdir选项激活了,那么p4sync操作有时可能会移走你当前的工作目录。如果这种事情发生了,那么只要换到一个已存在的目录继续工作就可以了。<br style="line-height:25px"><br style="line-height:25px"> *有modtime(+m)类型的文件主要是用于想保留文件最初时间标记的开发员。在文件类型中使用+m覆盖客户的modtime或者nomodtime的设置。关于+m修改符得跟多讨论可以阅读文件类型部分<br style="line-height:25px"> *如果你使用多重或可变换的(AltRoots:字段)客户根,你可以通过p4info所提供信息里的Clientroot部分了解那个客户根在生效。<br style="line-height:25px"> *为了在Windows上定义一个多驱动器的Perforce客户,可以使用一个空的根(Root:ofnull),并且在客户工作区试图内定义驱动器的字符。例如,下面客户定义了一个C:驱动器上一个区域为空客户根并映射到//depot/main/...,而剩下的其他版本映射到D:驱动器<br style="line-height:25px"><br style="line-height:25px"> 客户:eds_win<br style="line-height:25px"> 所有者:edk<br style="line-height:25px"> 描述:<br style="line-height:25px"> Ed'sWindowsWorkspace<br style="line-height:25px"> 根:null<br style="line-height:25px"> 选项:nomodtimenoclobber<br style="line-height:25px"> 提交选项:submitunchanged<br style="line-height:25px"> 视图:<br style="line-height:25px"> //depot/main/..."//eds_win/c:/CurrentRelease/..."<br style="line-height:25px"> //depot/rel1.0/...//eds_win/d:/old/rel1.0/...<br style="line-height:25px"> //depot/rel2.0/...//eds_win/d:/old/rel2.0/...<br style="line-height:25px"><br style="line-height:25px"> 在定义多驱动器工作区的时候使用驱动器符得小写字母<br style="line-height:25px"><br style="line-height:25px"> 举例<br style="line-height:25px"> p4client<br style="line-height:25px"> 编辑或创建一个名字由P4CLIENT变量或等同变量命名的客户工作区。<br style="line-height:25px"><br style="line-height:25px"> p4client-tsuejoe<br style="line-height:25px"> 创建或编辑客户工作区joe,把sue作为缺省工作区,在里面打开有子段值和工作区选项的表单<br style="line-height:25px"> p4client-drelease1<br style="line-height:25px"> 删除客户工作区release1<br style="line-height:25px"><br style="line-height:25px"> 相关命令<br style="line-height:25px"> 列表显示系统已知的客户工作区p4clients<br style="line-height:25px"> 把从版本库中读文件到客户工作区p4sync<br style="line-height:25px"> 在客户工作区内打开要添加到版本库中的新文件p4add<br style="line-height:25px"> 在客户工作区中打开文件进行编辑p4edit<br style="line-height:25px"> 在客户工作区中打开文件进行删除p4delete<br style="line-height:25px"> 把在客户工作区内修改过的文件提交到版本库p4submit</wbr></wbr>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值