Perforce:Stream实战指南

Perforce Stream 概述

什么是 Stream

我个人的理解是,Stream 是 Perforce 推出的、类似于传统分支但更智能的“流”。它提供可视化视图,便于查看分支间的同步关系。

优缺点

  • 优点:并发开发、互不影响;主线改动少;分层清晰。
  • 缺点:查看历史相对麻烦;通常需要多个工作区(可通过调整工作区根目录在一个工作区间切换多个 Stream,但相对麻烦)。

注:为每个 Stream 准备一个本地文件夹可加速工作区切换,节省时间。


新建 Stream

创建 Stream Depot(P4Admin)

  1. 打开 P4Admin。
  2. File → New → Depot,类型选 Stream
  3. 设置 Stream Depth(库的层级深度,建议 2 以便在库中放置多个 Stream)。

创建主干(Mainline)

  1. 打开 P4V。
  2. File → New → Stream。
  3. 设置 Stream Name
  4. Type 选择 mainline

注:注意保存位置(Depot/路径)。

创建分支(Branch)

方式一:File → New → Stream。

方式二:在 StreamGraph/Stream 列表中,右键父节点(如主干)创建。

分支类型

  • Development:用于长期项目和主要新特性开发。适合长期演进版本。
  • Release:用于修复 bug、测试与发布分发。
    • 注意:Release 分支建议在创建时取消勾选“From parent”自动传播(Propagation),以避免主干更新自动同步到发行版本;同时保留从 Release 合并修复回主干。
  • Virtual:用于缩小范围并直接提交给父级,常作为筛选器创建特定子集。
  • Task:轻量分支,便于短期 bug 修复/小特性开发。可放在其他 Depot,父节点可为空或其他库(含标准库)。
    • 建议统一放入 Task Depot,便于后续集中管理;确认 Location 是否为 Task 路径,必要时手动调整。
    • 注意:Task 创建后不可删除,且不可同名;不使用时不可见。

创建分支时的注意事项:

  • “自动创建工作区”可不勾(按需)。
  • “将父节点文件填充到分支”默认勾选(通常保留)。

使用 Stream

新建 Stream 工作区

  1. 新建工作区(Workspace)。
  2. 设置工作区名(Workspace name)。
  3. 设置工作区根目录(Workspace root)。
  4. 选择对应的 Stream。

工作区切换(StreamGraph)

  • 在 P4V 的 View 中打开 StreamGraph。
  • 同一 Depot 内:拖拽“电脑”图标到目标 Stream 即可快速切换;Perforce 会自动下载/清理差异文件,工作区根目录不变。
  • 不同 Depot 间:标准做法是切换工作区;若受工作区数量上限约束(如 ≤10 个),可通过修改现有工作区实现切换:
    1. 在 Workspaces 视图中右键工作区 → Edit。
    2. 修改 Workspace root 为目标工程目录。
    3. 修改 Stream 为目标工程对应的流(不必为主干,建议与本地目录对应,以便后续链接)。
    4. 选择是否“拷贝”文件:本地已存在则不拷贝;否则选择拷贝。
    5. 若选择不拷贝,需执行同步指令(见下文“Perforce 指令”)。

合并与更新

  • 两个流之间的上箭头表示“可更新”(copy to child/parent),下箭头表示“可合并”(merge)。
  • 无箭头:当前不支持该方向;灰色箭头:已一致;绿色箭头:有更新或差异。

流程建议:

  1. 先将工作区切换到“目标流”。例如:把个人流改动更新到主干,应切到“主干”而非个人流。
  2. 在目标流上右键:Merge to 为合并,Copy to 为拷贝更新。
  3. 选择 Source Stream(表示“从哪里到这里”)。
  4. 勾选自动合并并提交;若有冲突则改为手动处理后提交。

连接外部文件(类似 SVN externals)

用途:将其他库(通常是公共库)中的文件连接到当前库中使用。

示例:以插件 Prefixed 为例

  • 插件在公共库中的位置:.../Save/UnrealPlugins/Prefixed/5.2/...
  • 在主干上右键编辑,在“高级”中添加映射。
  • 点击应用。

注:分支会自动继承主干设置;若仅在某个分支使用,请只修改该分支。


Perforce 指令

在 P4V 中查看/使用命令行

同步指令(不重新下载已存在文件)

p4 sync -k
  • 作用:将本机文件与版本库记录建立“已同步”的关联,避免重复下载。
  • 建议:执行成功后运行“clean”进行校验与清理。
posted @ 2025-10-15 14:23  mengzhishanghun  阅读(18)  评论(0)    收藏  举报