Perforce使用指南_forP4V

第一章   前言

    Perforce SCM System是一款构建于可伸缩客户/服务器结构之上的软件配置管理工具。仅仅应用

TCP/IP,开发人员就能够通过多种Perforce客户端(几种平台的GUI、WEB、或命令行)访问

Perforce服务器。Perforce能够被快速和容易地部署,即使对大型或分布式的站点,也只要求最小限

度的管理。Perforce可以使用在50多个操作系统中,它包括版本控制、工作空间管理、变更处理和

一个强大的分支模型。这里介绍的P4V是perforce的一种可以跨平台使用的客户端。

1.1. Perforce结构

Perforce使用指南_forP4V

1.2.专业术语定义

第二章 Perforce使用介绍

2.1客户端配置

2.1.1. 服务器连接

1.是首次在您的机器上使用P4V,那开始会出现如下的创建工作空间窗口。选择“Create a new client

workspace”,在你的本地机器上创建你的第一个工作空间。

Perforce使用指南_forP4V

2.在菜单栏上,选择“Connection”下拉菜单中的“open Connection”选项。

 

3.弹出如下配置窗口,按如下配置填写正确的服务器名、端口、用户名、密码及工作空间设置。

Perforce使用指南_forP4V

4.在这里需要强调的是,登录时请务必填写Workspace的内容,否则Perforce的一些操作无法正常执行。如果还没有创建Workspace,请点击New,界面如下:

Perforce使用指南_forP4V



5.在此填入您在自己机器上所新建的工作区名称,并在如下图所示窗口中设置本地目录等信息:

如下:


 Perforce使用指南_forP4V

注意将“Option”的“modtime”选项选中。

1.填写完成后,提交确认(OK), 开始连接相应的服务器。

 

2.1.2 客户端上配置

1. 设置①:下次打开P4时,自动定位到上次退出时的路径。

Perforce使用指南_forP4V

2. 设置②:Submit时,不选择未修改的文件,只提交修改过的文件。但对于未修改的文件

还是要手动Revert。

(此功能还可以通过在pending changelist框中全选提交文件,右击,选择菜单“Revert If Unchanged”

完成。)

Perforce使用指南_forP4V

3.  设置③:当打算CHECK OUT已被别人CHECK OUT的文件时,会给出提示。

(但如果是对目录CHECK OUT,则不会提示)

Perforce使用指南_forP4V

2.1.3 客户端主要工作区

Perforce使用指南_forP4V

上图所示的是Perforce的主界面,大部分的操作都是在该界面下完成的。该界面分为三个区域:

区域1:显示Deport以及Workspace中的内容,称为目录区。

区域2:列出文件的一些操作属性,称为操作区。

区域3:给出所执行操作的提示信息,称为信息区。

2.1.3.1 目录区

目录区由Depot目录区和Workspace目录区组成。

1.Depot目录区

显示了服务器上可见目录结构(用户权限设置不同,可见目录也不同),这也与Workspace View映

射文件路径有关系,可以指定显示文件路径。在这里,可以执行的操作包括: check out, submit,

Get Latest Revision, Revert Files等操作。

Perforce使用指南_forP4V

2 Workspace目录区

显示了与服务器上文件有映射关系的,本地工作空间的目录结构,这与Workspace View也有关系。

操作同上。

Perforce使用指南_forP4V

 2.1.3.1 操作区

操作区中的内容主要由如下的几种工作区组成。

1. Pending changelists 工作区

这里显示当前用户正在修改的文件和其他开发者正在修改的文件。

当然,你只需要关心你自己的project即可。当你执行:Mark for Add,check out等操作时,这些信息

就会显示在changlist列表中显示,并由不同的图标显示其状态。如果你修改完成后,执行submit就

可提交更新文件;但也可以执行revert放弃所作的修改。

2. Submitted changelists 工作区

显示了近期所有项目组成员对项目所做的操作。

从中可以获得如:changlist号、修改时间、修改文件的内容、修改原因及修改人等信息。

Perforce使用指南_forP4V




3. Workspace工作区
在该工作区中可显示所有连接在服务器上的客户端工作空间。
在此工作区内可以执行创建、编辑修改、删除用户工作空间等操作。(前提是有执行的权限。)

Perforce使用指南_forP4V


4. History工作区
查看指定文件的变更历史信息。

Perforce使用指南_forP4V


5. Labels工作区
查看目前所有的label号。
在此工作区中可完成label的创建,内容的修改等。(前提是有执行此操作的权限。)

Perforce使用指南_forP4V


6. Branchs工作区
查看目前所有的Branch号。
在此工作区中完成Branch的创建,修改、删除等。(前提是有执行此操作的权限。)

Perforce使用指南_forP4V


除了以上说明的几种工作区,还有Files、Users、Jobs、Details以及Fild files等工作区。包括上述的

六种在内,这几个工作区窗口可以通过界面上,如下图所示的选项卡相互切换:

Perforce使用指南_forP4V


2.1.3.3. 信息区
由一个窗口(Pane windows)组成。
Pane windows
这是一个非常有用的窗口,称之为消息窗口区,最底下的那个窗口就是。你的任何操作的信息都会

出现在这里,包括success, warning, error等信息。特别是执行某个操作失败后,这里的信息是至关

重要的。一般情况下,都可以根据这里的信息来处理一些意外情况或者是不规范操作。
2.2.  Perforce的日常操作
2.2.1. 添加(Add)文件夹及文件
1. 在Workspace中选定要添加的文件夹/文件上右击,选择“Mark for Add”,添加文件。

Perforce使用指南_forP4V


将添加文件行为显示在pending changelists工作区中。在工作区上增加好文件夹和文件后,图标上有

个红色的加号标志 Perforce使用指南_forP4V ,表明此时增加的文件夹和文件还仅仅存在客户端的工作区中,还没有提交到服

务器上的仓库中。所以,右键点击需要提交的文件夹或文件,选择Submit,提交完毕后,文件此时

才真正提交到服务器上的仓库中。

Perforce使用指南_forP4V


2. 提交(Submit)添加文件/文件夹
在Submit的过程中,需要写下该变更的描述,这点很重要!描述信息的详细,将大大的方便对文件

的查询和跟踪。且在描述的开头用英文说明此次操作行为的类型。如用Add表示添加;Modify表示

修改;Build表示编译等等。

Perforce使用指南_forP4V


点击Submit后,即可看到文件前面的红色加号已经去掉了,并且在Reversion栏中已经显示出该文件

的版本号。此时,文件的右下角有个绿色的标识,表示该文件当前显示的是最新版本。

Perforce使用指南_forP4V


2.2.2. 文件修改
如果需要对文件进行修改,首先将需要修改的文件Check Out出来到本机,才可以进行修改。
1. 右键点击需要修改的文件,选择Check Out命令。

Perforce使用指南_forP4V


此时被Check Out出来的文件左上方有个红色钩标志,表明该文件已经成功的被您Check Out出来了

。如果是文件的右上方有个蓝色钩标志,说明该文件已经被别人Check Out出来了。由于Perforce支

持并行操作,所以您仍可以将别人已经Check Out的文件再次Check Out到您本机进行修改。

Perforce使用指南_forP4V


2. 双击打开已经Check Out出来的文件,对其进行修改。
修改完毕后,右键点击该文件,选择Submit,写下变更列表的描述。

Perforce使用指南_forP4V


3. 点击Submit,文件提交到服务器,增加了一个新版本。
在这里需要提醒大家的是,如果将某个文件Check Out出来后,并没有做任何修改,这时请不要做

Submit操作,而是点击右键选择Revert If Unchanged,这样提交后就不会增加该文件的版本数了,

否则服务器将会为一个没有做任何修改的文件增加一个版本。
建议在每次修改后思考:为什么要做这些修改?如果所作的修改是没有意义的,那么,建议不要将

这个文件提交(submit),而是Revert你所做的修改。
2.2.2.1. 合并文件
合并操作主要用来解决并行开发过程中变更产生的冲突。
例如,当有多人需要对同一个文件同时执行Check Out操作时,在Submit该文件时,Perforce可能会

报错。现举例如下:有A、B两人需要同时对CallKeep.cpp文件执行Check Out操作。

Perforce使用指南_forP4V


此时可以看到文件CallKeep.cpp的左上角和右上角分别有钩,这说明该文件正在被至少两个人执行

Check Out操作。由于Perforce支持并行操作,所以A和B在执行Check Out时不会发生冲突,但

Submit该文件时就可能报错了。第一个执行Submit操作的人不会出现问题,例如A可以正常提交,

但如果B修改的内容和A修改的相冲突,则B执行Submit时报错,并且会提示服务器上已经有最新的

版本了(即A刚刚提交的版本)

Perforce使用指南_forP4V


此时B获得最新版本后再提交,仍报错。

Perforce使用指南_forP4V


且在文件上打个问号,说明服务器不知道该怎么办,因为B需要提交的版本内容和A的相冲突,需要

B给予解决。

Perforce使用指南_forP4V


这时,选中该文件,右键点击,选择Resolve操作。

Perforce使用指南_forP4V


Perforce提供了三种自动解决方案,分别是“Accept Merged”、“Accept Yours”和“Accept Theirs”。当

然,你也可以查看和别人冲突的地方在哪里,进行手动解决冲突。点击Run Merge Tool,显示如下

图所示界面。

Perforce使用指南_forP4V

Perforce使用指南_forP4V




区域1:显示的是A提交版本中的内容,即目前服务器上的最新版本。
区域2:显示的是A和B同时Check out文件CallKeep.cpp时,当时服务器上最新版本内容,也就是A、

B修改的基础版本。
区域3:显示的是B自己修改的文件内容。
区域4:显示了三个版本所有冲突的地方,B可以在此基础上对文件做修改,给出解决方案。
选择红线框中的按钮来决定所保留的代码。解决完冲突后再Submit即可。

Perforce使用指南_forP4V


2.2.3. 查询文件历史版本
1. 如果想要查询某个文件的任何一个历史版本,右键点击这个文件,选择Get Revision。
2. 写下需要查看的历史版本号,然后点击Get Revision。

Perforce使用指南_forP4V


此时Perforce为您取出任何一个你想要的历史版本。

Perforce使用指南_forP4V


2.2.4. 比较两个文件的区别
比较操作主要是用来查看某个文件到底做了哪些修改:从中你可以看出添加了什么,删除了什么等

等。
1. 比较两个不同文件或一个文件不同版本之间的区别。右键点击需要比较的文件,选择Diff

Files命令。

Perforce使用指南_forP4V


2. 按照下图所示,设置需要比较的文件名称或文件的版本等。

Perforce使用指南_forP4V


3. 点击Diff就可以看到如下图所示的所有不同处,包括增加、删减或修改的操作。

Perforce使用指南_forP4V




在这里需要注意的是:Perforce暂时不支持多个文件的比较。同时,如果在进行两个文件比较时,

文件的大小超过2MB,Perforce也会报错,出现以下所示界面:

Perforce使用指南_forP4V

请大家在操作过程中注意!


2.2.5. 同步服务器上文件
如果您在服务器上找到自己所需要的文件,并希望把这些文件同步到本机,这时就需要首先选择好

工作区Workspace,然后右键点击需要下载的文件夹,选中Get Lastest Revision命令,就可以完成

文件夹的同步操作了。
2.2.6. 获取Label标识版本文件
提取出标记特定label下的文件。
1. 在工具栏上找到 Perforce使用指南_forP4V 的标识,在右上方的Labels工作区中找到所需的label号。

Perforce使用指南_forP4V


2. 获取指定label下特定文件。 右键选中指定label,在菜单中选择“Get Revision...”。

Perforce使用指南_forP4V


3. 在弹出的如下对话框中,选择需要签出的文件。

Perforce使用指南_forP4V


4. 点击“Add”按钮,选择添加标记该label的文件。

Perforce使用指南_forP4V

Perforce使用指南_forP4V




第三章 注意事项
1. 合并的Base File文件中一行的字数不可以超过6000个字符。否则会报错。
2. 在进行两个文件比较的时候,文件大小不要超过2MB,否则会保存错。
3. 关于check out
check out告诉服务器要修改指定文件,而实际上是把本地文件的属性从只读变为可写, 需要注意

的是千万不要手动去改文件信息,服务器并不会知道手工修改,这样只会带来不必要的麻烦,这些

信息会显示在pending changelists的defualt这个接点下面。
4. 关于文件删除
凡在Perforce上的任何删除操作,都由配置管理员统一操作完成。如有删除文件的需要,将需要删

除的文件的Perforce上路径发给配置管理员来完成。
5. 关于文件类型(file type)
在签入文件前,首先要查看所签入文件的类型是否包含在已设定文件类型中(可

在//depot/Misc/Types/typemap.txt文件中作查找),否则为包含的文件类型是不能成功加入perforce配

置库的。
第四章 服务端相关安装与配置
2.1. 安装步骤
1. 点击安装程序,出现如下界面,选择“User Installation”后,next继续安装。

Perforce使用指南_forP4V


2. 出现如下界面,选择需要安装的组件。选择全选。

Perforce使用指南_forP4V


3. 配置连接服务器端口等信息。

Perforce使用指南_forP4V


除Username为用户本人名以外,其他配置信息如图。
4. 最后检查确认所填安装配置信息(包括安装路径、安装组件、服务器端口号、用户名等等

)后,点击“Install”开始安装。

Perforce使用指南_forP4V


5. 在“开始”菜单程序中选择Perforce——〉P4V,进入P4V客户端程序界面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458748.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql语句示例

sql语句示例: 选区指定的列 select 图书编号,图书名称 from 图书查询全部信息 select * from 图书查询信息之后更改所获得的列的名称 select 姓名 as 用户名, 电话 as 联系电话 from 用户也可以这样 select 用户名姓名,联系电话电话 from 用户对某些列进行计筭后在显…

曙光服务器优势,5大核心优势 探秘曙光Cloudview三大平台

1Cloudview1.5核心优势对于云计算而言,国产厂商也有着自己独到的云方案。曙光Cloudview云计算操作系统采用新一代云计算中心的全新的管理模型,充分考虑云计算中心的资源分配、业务运行和运维服务等各种管理要素,实现云计算中心的软硬件平台资…

Centos 下面升级系统内核(转)

1、导入public key 1rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org2、安装ELRepo到CentOS 6.6中 1rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm3、安装长期支持版本 1yum --enablerepoelrepo-kernel install kernel-lt -y4、编辑g…

Mantle--国外程序员最常用的iOS模型字典转换框架

Mantle简介 Mantle是iOS和Mac平台下基于Objective-C编写的一个简单高效的模型层框架。 Mantle能做什么 Mantle可以轻松把JSON数据、字典(Dictionary)和模型(即Objective对象)之间的相互转换,支持自定义映射&#xff0c…

C++ assert() 详解

C assert 宏的应用方式将会在这篇文章中进行详解 相信对此有兴趣的朋友们应该可以根据我们介绍的内容充分掌握这方面的应用技巧。 作为一个经验丰富的编程人员来说,对于C编程语言应该不会陌生的,实现它的应用可以帮助我们轻松的各种功能需求。 在这里我…

直连测速服务器异常,求证! 网件R7800, Speedtest测速的怪现象,200M宽带+R7800者进...

本帖最后由 毛毛雨 于 2017-11-18 18:50 编辑宽带是联通FTTH 200M,标准千兆网线,千兆网卡。问题前的插曲:R7800刚到手,就迫不及待的换上了,结果,无论是路由器内置Speedtest册数,还是电脑端的Spe…

iOS socket

为什么80%的码农都做不了架构师&#xff1f;>>> #import "ViewController.h"interface ViewController ()<NSStreamDelegate,UITextFieldDelegate,UITableViewDataSource,UITableViewDelegate>{NSInputStream *_inputStream;//对应输入流NSOutputS…

PHP配置,php.ini以及覆盖问题

在部署一个cms项目到服务器上的时候&#xff0c;因为cms的模板比较老&#xff0c;服务器上用的php是5.3.3版&#xff08;大于5.3&#xff0c;可以认为是新的&#xff09;&#xff0c;有些页面会显示“deprecated”类别的错误信息。安全起见要抑制页面中的错误信息输出&#xff…

C/C++宏的使用总结

宏替换是C/C系列语言的技术特色&#xff0c;C/C语言提供了强大的宏替换功能&#xff0c;源代码在进入编译器之前&#xff0c;要先经过一个称为“预处理器”的模块&#xff0c;这个模块将宏根据编译参数和实际编码进行展开&#xff0c;展开后的代码才正式进入编译器&#xff0c;…

Macosx 安装 ionic 成功教程

2019独角兽企业重金招聘Python工程师标准>>> 一、首先介绍一下ionic ionic是一个用来开发混合手机应用的&#xff0c;开源的&#xff0c;免费的代码库。可以优化html、css和js的性能&#xff0c;构建高效的应用程序&#xff0c;而且还可以用于构建Sass和AngularJS的…

hp g6服务器安装系统,HPProLiantDL180G6服务器安装图.PDF

HPProLiantDL180G6服务器安装图4 前面板组件 / 25 个 2.5 英寸硬盘型号HP ProLiant DL180 G6 识别服务器组件2 光驱服务器 前面板组件 3 前部 UID LED 指示灯/开关4 系统运行状况 LED 指示灯1 前面板组件/4 个 3.5 英寸硬盘型号 5 网卡 1 活动 LED 指示灯安装图 6 网卡 2 活动 …

九度OJ 1076:N的阶乘 (数字特性、大数运算)

时间限制&#xff1a;3 秒 内存限制&#xff1a;128 兆 特殊判题&#xff1a;否 提交&#xff1a;6384 解决&#xff1a;2238 题目描述&#xff1a;输入一个正整数N&#xff0c;输出N的阶乘。 输入&#xff1a;正整数N(0<N<1000) 输出&#xff1a;输入可能包括多组数据&a…

Visual C++中 #include stdafx.h 头文件的用法

今天在做VC实验时&#xff0c;总是出现莫名其妙的错误。比如说&#xff1a; unexpected end of file whilelooking for precompiled header directive 再比如说这么一大串&#xff1a; mainframe.cpp 有错误\firstdlg.h(21) :error C2065: IDD_DIALOG_FIRST : undeclared ide…

mac显示无法连接adobe服务器,Mac安装Adobe软件,如遇Error提示解决方法

Mac10.15.3 安装Adobe Photoshop 2020的时候一直提示Error错误The installation cannot continue as the installer file may be damaged. Download the installer file again.看到这种问题&#xff0c;一般第一想法就是安装包损坏了&#xff0c;本能的会再下载一遍甚至多遍&am…

android开发中EditText自动获取焦点时隐藏hint的代码

只需让EditText设置以下的OnFocusChangeListener就可以了 private OnFocusChangeListener mOnFocusChangeListener new OnFocusChangeListener() {Overridepublic void onFocusChange(View v, boolean hasFocus){EditText textView (EditText)v;String hint;if (hasFocus) {h…

Grovvy初识

1.Groovy和Java对比 Groovy的松散的语法允许省略分号和修饰符除非另行指定&#xff0c;Grovvy的所有内容都为publicGrovvy允许定义简单脚本&#xff0c;同时无需定义正规的class对象Grovvy在普通的常用java对象上增加了一些独特的方法和快捷方式&#xff0c;使得他们更容易使用…

C和C++混合编程(__cplusplus使用)

第一种理解 比如说你用C开发了一个DLL库&#xff0c;为了能够让C语言也能够调用你的DLL输出(Export)的函数&#xff0c;你需要用extern "C"来强制编译器不要修改你的 函数名。 通常&#xff0c;在C语言的头文件中经常可以看到类似下面这种形式的代码&#xff1a; …

$.ajax 同步一不,ajax 同步不生效

可以用的生效代码注意 boolean 的位置var baseUrl ${pageContext.request.contextPath };function formcheck(){var flag false;var customerNameaa;var countryaa;var citybeijing;$.ajax({type: POST,url:baseUrl "/exports/credit/findBuyersBySerach",data:{&…

iOS工程中创建pch文件

1.新建pch类文件 2.在工程配置中,Build Setting 下搜索"pre"寻找Apple LLVM6.1 - Language下的 Preflx Header 3.点开Preflx Header 把左边pch类拖拽进去 4.把/"工程名"/....前边的内容全部换为$(SRCROOT) (具体替换内容看报错自己灵活运用)转载于:https:/…

批处理中setlocal enabledelayedexpansion的作用详细整理

设置本地为延迟扩展。其实也就是&#xff1a;延迟变量&#xff0c;全称延迟环境变量扩展, 想进阶&#xff0c;变量延迟是必过的一关&#xff01;所以这一部分希望你能认真看。 为了更好的说明问题&#xff0c;我们先引入一个例子。 例1: echo off set a4 set a5&echo…