前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Perforce(P4) 简易使用教程

Perforce(P4) 简易使用教程

作者头像
韩伟
发布2024-05-15 18:13:42
4040
发布2024-05-15 18:13:42
举报
文章被收录于专栏:韩伟的专栏韩伟的专栏

初始化工作

心理建设:

  • 英文界面
  • 文字路径/地址
  • 难找但固定的界面位置
  • 搞这么多事情主要为了解决多人合作的问题

1. 申请账号

安装客户端

选择编码,勾选 “Use this encoding”UTF-8

2. 拉取项目

  • 浏览 Depot

服务器上的东西,注意地址 “//WS-TG/studyp4/mainline其中的 //WS-TG 一般代表大的项目名字

  • 浏览 Workspace

本地的东西

  • 建立 Workspace

不要直接操作 Depot,应该永远使用 Workspace 来工作

三个参数:

  • Workspace name:你的工作区的名字,代表了你的本地工作目录
  • Workspace root:你的工作区的本地目录
  • Stream:服务器上的目录,一个 Depot 里面会有很多 Stream

输入 Depot 名字(WS-TG)查找 Stream

3. 总结

  • 第一层目录叫 Depot,图标是圆柱体
  • 第二、三层目录叫 Stream,图标是带波浪的文件夹
  • 更深入的目录就是文件目录
  • Workspace 对应于 Stream 或以下目录

基本操作

Perforce4基础说明

  1. 新建、删除目录文件
    1. 新建

空目录无法新建,至少要有一个文件

  1. 删除本地文件的恢复

并不会影响版本库

可以恢复本地文件

这步操作在菜单里面,需要勾选一个“Force Operation”的框

  1. 删除文件库文件

选中要删除的文件,点“Delete”按钮。可以多次选中多次点“Delete”

点了之后本地文件立刻消失了

点击“Submit”完成真正的删除

错误点击了“Delete”按钮,想撤销未“Submit”的删除操作

  1. 新建文件撤销流程

拷贝了一大堆不需要的文件到工作区,还在顶层目录点了 Add 按钮,如何撤销?

然后全部删除本地文件,从服务器上通过“Get Revision”恢复

  1. 新建文件冲突

如果没有先 Refresh/Get lastest,但是其他人新建了同名的文件会怎样?

你添加的文件点了“Add”按钮会没有任何显示

看起来这个新加的文件没有被纳入管理

如果这个新文件和别人已经新建的是一样的,只要点一下“Get Latest”按钮就发现已经存在于库中了

如果这个新文件和别人新建的内容不同,只是名字一样,点 “Get Lastest”按钮会弹出提示

如果选 Continue 就会直接覆盖掉本地的文件,自己的文件内容会丢失!

  1. 删除文件冲突

文件已经被另外一个用户删除,可以通过“Refresh”按钮发现(P4V 软件也会自动刷新)

点击“Get Latest”文件就立刻从本地目录消失了

  1. 修改文件
    1. 直接修改

直接修改文件会发现无法保存

  1. Check out

然后就可以保存了

  1. Submit

其他人可以在 P4V 中看到你修改过文件的状态,需要“Get Latest”来更新你的修改

  1. Resolve

如果没有先 Refresh/Get lastest

Checkout 的时候就会提示:

如果还是不先 GetLatest

Submit 是无法直接进行的

只能先 Get Lastest,会有红色问号图标

然后想办法解决这个冲突

最下面有三个按钮,含义是:

  • Accept Source:使用已经在库里面的版本(别人提交的内容,会丢失本地修改的内容)
  • Accept Target:使用我要提交的版本(我修改的内容会覆盖别人的内容)
  • Accept Merged:双方的内容合并起来
  • Run Merge Tool:运行一个合并的工具

图片文件默认没有“合并的工具”,也没法“Accept Merged”

如果点了 Accept Target,就可以继续提交了

其他人就可以通过 Get Latest 来更新了

  1. Checkout 冲突

同一个文件别人已经 Check out

自己在 Refresh 之后会有一个绿色的图标

可以看到是谁 Checkout 了这个文件

继续点 Checkout,修改文件

还是可以提交的,但是别人看就会这样:

也可以保存文件

直接提交,Submit 按钮不可用

点击 Get Latest 之后,出现冲突的图标

需要走 Resolve 冲突解决流程,如果选择 Accept Source,会变成库中的文件内容

看起来 Checkout 只是一个提示作用,并不能阻挡同步修改

  1. Lock/Unlock

先 checkout 一个文件,如果不 checkout 将没有 Lock 选项

再选择 Lock

其他人看见,无法 Submit 任何修改

如果加锁方解锁,或者 Submit,其他人就可以提交了

如果有人加锁了/ checkout 了,但一直不提交/不解锁怎么办?

项目管理员通过命令行可以强行解锁

代码语言:javascript
复制
p4 unlock -f <file>

如果 checkout 了一直不提交也很烦,管理员也可以代他 revert (撤销)

代码语言:javascript
复制
p4 -c theirclient -H theirhost -u theiruser revert foo.txt

Stream 操作

为了同时并行进行多个版本

  1. 显示 Stream Graph(分支关系)

打开 Stream Graph 视图

  1. 选择 Depot
  2. 勾选 Stream
  3. 点击 Apply
  1. Switch Stream(切换分支)

需要先选定一个 Workspace

新建 Workspace 的时候曾选择过 Stream

“小电视”图标表示你当前的 Workspace 所在的 Stream(分支)

拖动 “小电视” 就可以切换分支

会询问你是否要更新文件

  1. Merge/Copy Stream(合并分支)

Stream 合并的规则

  1. Merge(Down)向下合并
  2. Copy(Up)向上合并
  3. 先下后上

绿色箭头表示现在可以向这个方向合并。

  1. 切换工作区到 studyp4_mainline 这个 Stream
  2. 右键选择“Copy Files to ...

文件列表中可以发现新的文件了:

选择 Submit 提交这次 Copy Stream 的操作

Stream 图灰色箭头表示没有文件差异了

如果别人先修改过“上游 Stream”,也就是 mianline 的话,要怎么合并?

点击 Depot 页签里面的相关目录,点 Get Lastest 按钮,会发现 Stream Graph 窗口有红绿两个箭头。

  • 绿色表示可以操作
  • 红色表示不可操作

“先下后上”

选择右键菜单中的 “Merge/Integrate Files to 'xxxx' ...”

会发现当前工作区有一次修改需要确认:

这个 111.png 是被其他人修改过的,需要你通过 Resolve 确认是否接受别人的修改。这里可能出现都修改了同一个文件的冲突。

点击 Accept Source 就接受这次合并

然后在 development Stream 上 Submit 这次 Merge/Intergrate 的修改

这时的分支图 Steam Graph 情况:

红色箭头消失了,可以继续工作,或者通过 Copy 命令向 mianline Stream 去合并工作内容(如上文)

更多功能

  1. 撤销功能
    1. 撤销并未 Submit 的文件修改:使用 Revert 按钮
    2. 撤销已经 Submit 的文件修改/删除/增加:进入 Submited 窗口(View),选择某一次修改(Change),然后选择 Get this reversion 右键菜单,然后重新 Submit 修改到 Depot 中
  2. 不想挨个文件 Checkout

就算文件没做任何修改,只要 Checkout 了,就能 Submit,文件的版本号也会增加

  1. 对整个目录选择 Checkout
  2. 防止提交一堆“空”修改,提交前选择右键菜单“Revert Unchanged Files
  3. 其他
    1. P4 支持两种分支管理模式,一种是“基础类型”,一种是 Stream,前者约束较少(类似 SVN);后者有比较严格的约束(类似 git flow)。
    2. 改名/移动操作请使用右键菜单的 Rename/Move 功能
    3. Workspace 工作区可以组合多个目录,不一定要到 Stream 顶级目录
    4. 可以用 Shelve 暂存文件到服务器,但不 Submit
    5. Stream 有四种类型:Release > Mainline > Development > Task, Virtual
    6. P4V 自带了一个图片的 diff 工具,但不能修改
    7. 可以打标签 Bookmark
    8. Windows 文件浏览器插件安装:安装 P4 文件管理器插件
    9. 需要修改多个文件但是“只读”属性是一个障碍,解决方法:设置 all warite,然后 reconile
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 韩大 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 初始化工作
    • 1. 申请账号
      • 安装客户端
        • 2. 拉取项目
          • 3. 总结
          • 基本操作
          • Stream 操作
          • 更多功能
          相关产品与服务
          项目管理
          CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档