perforce 笔记

简介

一个版本控制工具

基本概念

depot 翻译过来为仓库,在安装perforce后,默认会有一个local的depot,并且名字也叫depot。depot包含下面几种(:
来源于官方文档和chatgpt)

  • local : 默认类型,文件直接存储在 Perforce 服务器上
  • stream : 用于管理流式开发模型(Streams)。
  • remote : 允许一个 Perforce 服务器访问另一个服务器上的 depot,适用于跨服务器协作。
  • archive : 存储已归档的文件,不支持提交或编辑,主要用于历史记录的长期保存。
  • spec : 存储已归档的文件,不支持提交或编辑,主要用于历史记录的长期保存。
  • unload : 存储被卸载的客户端工作区或任务流的数据,减少服务器的负担。
  • tangent :
  • graph : 用于存储 Git 仓库中的数据,支持 Git 和 Perforce 同时工作(Git Fusion 功能)。
  • trait
    stream 为流,保存在服务器上。是一种特殊的depot。

workspace : 工作空间,内容保存在本地目录。

client : clinet和workspace可以理解为一样的东西

启动

服务端

使用p4d或者使用脚本 p4d.sh。参数:

  • -r 指定根目录
  • -d 指定 TCP/IP 端口

stream相关

描述 : 创建 stream

  • p4 depot -t stream JamCode : 创建一个 stream depot
  • p4 stream -t mainline //lang/c : 在 lang 下创建 c,为 mainline 类型,前提是lang的深度必须要为2

客户端

使用p4v启动,在将perforce服务器上的内容sync到本地时,文件默认不具备写的权限,需要使用p4 open xxx将某个文件的状态至于open状态,这个操作会某个文件具有了写的权限。使用chmod来改变文件的属性不会改变该文件在perforce上的状态

命令

client/workspace 相关

描述 :创建或者编辑一个 client workspace

  • p4 client xxx : 创建 client xxx
  • p4 client -d release1 : 删除 client release1
  • p4 clients : 列出所有的 clients
  • p4 client -S stream clientname : 新建一个 client,并且与 stream 绑定
  • p4 client -s -S stream clientname : 改变 client 与 stream 的映射
  • p4 client -S //JamCode/main : 将 workspace 与 stream 绑定
  • p4 workspaces : 查看所有的 workspace
  • p4 workspace xx : 创建 xx workspace
  • p4 workspace -d xx : 删除 xx workspace
  • p4 submit -d "添加描述" : 提交到perfore服务器
  • p4 opened : 查看已经open的文件
  • p4 sync test : sync文件test的最新版本
    • p4 sync test#1 : sync文件test的第一个版本
    • p4 sync -n  : 查看sync的结果,不实际sync
  • p4 diff a b : 比较文件a和文件b
    • p4 diff a#1 a#2 : 比较文件a的第一版和第二版
  • p4 change xxx : 可修改xxx的描述
  • p4 submit -c xxx : 提交某个changelist xxx
  • p4 changes -m 1 ...#have : 查看某个workspace下已有的最新changelist

client设置

在进入workspace后,使用p4 client可以修改client的一些设置, 比如SubmitOptions选项,输出可能为

  SubmitOptions: submitunchanged 

这里表示所有open的文件都可以提交到depot上,哪怕文件没有更改,SubmitOptions可用的选项有:

选项 描述
submitunchanged 所有open的文件,不管内容是否有改变,都提交到depot上,默认设置
submitunchanged+reopen 所有open的文件,不管内容是改变,都提交到depot上,并且所有本来open的文件重新在默认的changelist中打开
revertunchanged 只会提交内容,类型或者resolved(冲突)有变化的文件,没发生改变的文件会revert回去
revertunchanged+reopen 只会提交default changelist中,内容,类型或者resolved(冲突)有变化的文件,没发生改变的文件会revert回去,并且在default changelist中不会处于open状态
leaveunchanged 只会提交内容,类型或者resolved(冲突)有变化的文件,没有发生改变的会移动到default changelist中
leaveunchanged+reopen 只会提交内容,类型或者resolved(冲突)有变化的文件,没改变的文件会移动到default changelist中,并且改变的文件会在default chagnelist中重新打开

depot相关

描述 :创建或者删除 depot

  • p4 depots : 查看所有的 depot
  • p4 depot xx : 新建 xx depot
  • p4 depot -d xx : 删除 xx depot
  • p4 depot -f -d sandbox : 强制删除 sandbox depot
  • 删除非空的 depot
    • p4 obliterate -y //lang/...
    • p4 depot -d lang

user相关

  • p4 users : 查看所有的用户
  • p4 groups : 查看所有的组
  • p4 user -f xx : 新建 xx 用户,如果用户存在,则可以修改用户的密码,在Password一栏,修改密码,如果没有,则新建一栏,保存后再次打开会加密
  • p4v 修改用户的密码:p4v -> connection -> change password

集成

  • p4 integrate //script/tool/add_gps_info.py //language/python/add_gps_info.py 将//script/tool/add_gps_info.py集成到//language/python中,需要在//lang/python相关联的workspace中操作

类似文章

guest
0 评论
内联反馈
查看所有评论