[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"package:cask:p4:zh":3,"releases:stats:cask:p4:zh":408,"releases:cask:p4:1:false:false:zh":409,"releases-count:cask:p4:true:zh":492},{"accentColor":4,"artifacts":5,"autoUpdates":20,"categories":21,"conflictsWith":27,"dependsOn":31,"deprecated":20,"description":39,"descriptionEn":40,"disabled":20,"displayName":41,"downloadSize":42,"downloadUrl":43,"editorChoice":20,"formulaeUrl":44,"homepage":45,"iconUrl":46,"installCommand":47,"installs":48,"installs30d":49,"isFont":20,"isLibrary":20,"kegOnly":20,"kind":52,"latestRelease":53,"machineTranslated":20,"name":41,"names":79,"platforms":80,"primaryCategory":385,"rank30d":386,"releaseCount":387,"releaseStats":388,"screenshots":395,"sourceLocale":73,"sourceUrl":396,"summary":397,"summaryTranslation":398,"supports":399,"tags":401,"tap":406,"token":8,"version":105,"versionChangedAt":407},"#4C00FF",{"apps":6,"binaries":7,"entries":9,"pkgs":19},[],[8],"p4",[10],{"declaration":11,"phase":16,"sources":17,"target":15,"type":18},{"binary":12,"target":15},[13,14],"bin.macosx12arm64",{"target":8},"$HOMEBREW_PREFIX\u002Fbin\u002Fp4","install",[13],"binary",[],false,[22],{"icon":23,"machineTranslated":20,"name":24,"slug":25,"sourceLocale":26},"lucide:code-xml","开发工具","developer-tools","zh-CN",{"casks":28,"formulae":30},[29],"perforce",[],{"arch":32,"casks":35,"formulae":36,"requirements":37},[33,34],"arm64","x86_64",[],[],{"macos":38},{},"Perforce Helix Command-Line Client (P4)，也称为 P4 CLI，是供管理员和高级用户连接 P4 服务器使用的命令行工具。它可执行 Perforce 命令，并允许用户通过命令选项选择操作的组织方式。P4 是命令行客户端，不是图形界面的 P4 Visual Client (P4V)。\n\n- 从命令行向 P4 服务器执行 Perforce 命令。\n- 根据操作选择命令结构和标志。\n- 使用 P4——Perforce 的版本控制平台，用于跟踪数字资产（包括源代码和 3D 资产）的变更。\n- Homebrew cask 会将 `p4` 二进制文件安装到 Homebrew 的二进制文件目录中。\n\n在 macOS 上使用 `brew install --cask p4` 安装。安装后，可在命令行环境中通过 `p4` 调用客户端；要连接服务器使用，需能够访问 P4 服务器。此 cask 与单独的 `perforce` cask 冲突，因此不要同时安装两者。\n\n[Perforce P4 CLI](https:\u002F\u002Fwww.perforce.com\u002Fproducts\u002Fhelix-core-apps\u002Fcommand-line-client) · [Homebrew cask](https:\u002F\u002Fraw.githubusercontent.com\u002FHomebrew\u002Fhomebrew-cask\u002FHEAD\u002FCasks\u002Fp\u002Fp4.rb)","Use it to gain instant access to operations and complete control over the system","Perforce Helix Command-Line Client (P4)",11019024,"https:\u002F\u002Ffilehost.perforce.com\u002Fperforce\u002Fr26.1\u002Fbin.macosx12arm64\u002Fp4","https:\u002F\u002Fformulae.brew.sh\u002Fcask\u002Fp4","https:\u002F\u002Fwww.perforce.com\u002Fproducts\u002Fhelix-core-apps\u002Fcommand-line-client","https:\u002F\u002Fcdn.opennavo.com\u002Ficons\u002Fuploads\u002Ff0b06e75a8c5\u002Fea04c802325f-256.png","brew install --cask p4",{"d30":49,"d365":50,"d90":51},100,2029,423,"cask",{"bodyMarkdown":54,"brewCommittedAt":55,"hasNotes":56,"id":57,"isLatest":56,"isPrerelease":20,"machineTranslated":20,"publishedAt":58,"sections":59,"source":72,"sourceLocale":73,"summary":74,"title":75,"translation":76,"version":78},"P4 2026.1 及其列出的补丁改进了多项文件操作。由 typemap 确定类型的文件可以在不读取内容的情况下添加；将 filesys.binaryscan 设为 0 时，现在会报告扫描已禁用并指出假定的文件类型。切换包含大量文件的工作区时，客户端读取的内容更少，与服务器交换的消息也更少。reconcile 会将摘要和元数据计算推迟到服务器端分类之后；并行 sync、submit 和 shelve 则会更均匀地分配到请求的线程中。\n\n此版本修复了 Apple Silicon ARM64e Mac 上取消 sync 时可能发生的客户端崩溃，以及不支持 SSE4.1 的 CPU 在压缩操作期间可能出现的非法指令崩溃；还修复了特定 sync 配置中的 invalid cross-device link 错误。localtime 和 gmtime 现在在所有平台上均为线程安全。在 Windows 上，以两个正斜杠开头的路径会被视为 Perforce 路径，而不再进行通配符展开；以两个反斜杠开头的路径仍可能作为 UNC 路径展开。\n\n其他更改包括在 -Mj JSON 输出中加入严重性文本，以及新增 P4_SYSTEMIGNORE 客户端可配置项，可阻止指定配置文件被同步或提交。OpenSSL 更新至 3.5.5，之后又更新至 3.5.7；curl 从 8.16.0 升级至 8.21.0，此更新与 CVE-2026-7168 相关。\n\n来源：https:\u002F\u002Fwww.perforce.com\u002Fperforce\u002Fdoc.current\u002Fuser\u002Frelnotes.txt","2026-05-22T02:14:42Z",true,4696,"2026-09-08T00:00:00Z",[60,67],{"area":61,"items":62},"修复",[63,64,65,66],"加快 add、switch、reconcile 和并行操作","修复崩溃及 sync 错误","在 JSON 消息输出中加入严重性文本","新增 P4_SYSTEMIGNORE 配置项",{"area":68,"items":69},"更新",[70,71],"OpenSSL 更新至 3.5.7；curl 更新至 8.21.0","curl 更新涉及 CVE-2026-7168","editorial","en-US","P4 2026.1 修复了文件操作性能、崩溃、JSON 输出和配置文件处理问题，并更新 OpenSSL 与 curl；其中 curl 更新与 CVE-2026-7168 相关。","Perforce Helix 命令行客户端 (P4) 2026.1",{"locale":26,"machineTranslated":20,"sourceLocale":73,"status":77},"manual","2026.1",[41,8],[81,106,127,149,170,192,213,235,256,278,299,321,342,364],{"arch":34,"artifacts":82,"conflictsWith":93,"dependsOn":96,"downloadUrl":102,"macos":103,"requiresRosetta":20,"tag":104,"version":105},{"apps":83,"binaries":84,"entries":85,"pkgs":92},[],[8],[86],{"declaration":87,"phase":16,"sources":91,"target":15,"type":18},{"binary":88,"target":15},[89,90],"bin.macosx1015x86_64",{"target":8},[89],[],{"casks":94,"formulae":95},[29],[],{"arch":97,"casks":98,"formulae":99,"requirements":100},[34],[],[],{"macos":101},{},"https:\u002F\u002Ffilehost.perforce.com\u002Fperforce\u002Fr26.1\u002Fbin.macosx1015x86_64\u002Fp4","27","golden_gate","2026.1,3089746",{"arch":33,"artifacts":107,"conflictsWith":117,"dependsOn":120,"downloadUrl":43,"macos":103,"requiresRosetta":20,"tag":126,"version":105},{"apps":108,"binaries":109,"entries":110,"pkgs":116},[],[8],[111],{"declaration":112,"phase":16,"sources":115,"target":15,"type":18},{"binary":113,"target":15},[13,114],{"target":8},[13],[],{"casks":118,"formulae":119},[29],[],{"arch":121,"casks":122,"formulae":123,"requirements":124},[33],[],[],{"macos":125},{},"arm64_golden_gate",{"arch":34,"artifacts":128,"conflictsWith":138,"dependsOn":141,"downloadUrl":102,"macos":147,"requiresRosetta":20,"tag":148,"version":105},{"apps":129,"binaries":130,"entries":131,"pkgs":137},[],[8],[132],{"declaration":133,"phase":16,"sources":136,"target":15,"type":18},{"binary":134,"target":15},[89,135],{"target":8},[89],[],{"casks":139,"formulae":140},[29],[],{"arch":142,"casks":143,"formulae":144,"requirements":145},[34],[],[],{"macos":146},{},"26","tahoe",{"arch":33,"artifacts":150,"conflictsWith":160,"dependsOn":163,"downloadUrl":43,"macos":147,"requiresRosetta":20,"tag":169,"version":105},{"apps":151,"binaries":152,"entries":153,"pkgs":159},[],[8],[154],{"declaration":155,"phase":16,"sources":158,"target":15,"type":18},{"binary":156,"target":15},[13,157],{"target":8},[13],[],{"casks":161,"formulae":162},[29],[],{"arch":164,"casks":165,"formulae":166,"requirements":167},[33],[],[],{"macos":168},{},"arm64_tahoe",{"arch":34,"artifacts":171,"conflictsWith":181,"dependsOn":184,"downloadUrl":102,"macos":190,"requiresRosetta":20,"tag":191,"version":105},{"apps":172,"binaries":173,"entries":174,"pkgs":180},[],[8],[175],{"declaration":176,"phase":16,"sources":179,"target":15,"type":18},{"binary":177,"target":15},[89,178],{"target":8},[89],[],{"casks":182,"formulae":183},[29],[],{"arch":185,"casks":186,"formulae":187,"requirements":188},[34],[],[],{"macos":189},{},"15","sequoia",{"arch":33,"artifacts":193,"conflictsWith":203,"dependsOn":206,"downloadUrl":43,"macos":190,"requiresRosetta":20,"tag":212,"version":105},{"apps":194,"binaries":195,"entries":196,"pkgs":202},[],[8],[197],{"declaration":198,"phase":16,"sources":201,"target":15,"type":18},{"binary":199,"target":15},[13,200],{"target":8},[13],[],{"casks":204,"formulae":205},[29],[],{"arch":207,"casks":208,"formulae":209,"requirements":210},[33],[],[],{"macos":211},{},"arm64_sequoia",{"arch":34,"artifacts":214,"conflictsWith":224,"dependsOn":227,"downloadUrl":102,"macos":233,"requiresRosetta":20,"tag":234,"version":105},{"apps":215,"binaries":216,"entries":217,"pkgs":223},[],[8],[218],{"declaration":219,"phase":16,"sources":222,"target":15,"type":18},{"binary":220,"target":15},[89,221],{"target":8},[89],[],{"casks":225,"formulae":226},[29],[],{"arch":228,"casks":229,"formulae":230,"requirements":231},[34],[],[],{"macos":232},{},"14","sonoma",{"arch":33,"artifacts":236,"conflictsWith":246,"dependsOn":249,"downloadUrl":43,"macos":233,"requiresRosetta":20,"tag":255,"version":105},{"apps":237,"binaries":238,"entries":239,"pkgs":245},[],[8],[240],{"declaration":241,"phase":16,"sources":244,"target":15,"type":18},{"binary":242,"target":15},[13,243],{"target":8},[13],[],{"casks":247,"formulae":248},[29],[],{"arch":250,"casks":251,"formulae":252,"requirements":253},[33],[],[],{"macos":254},{},"arm64_sonoma",{"arch":34,"artifacts":257,"conflictsWith":267,"dependsOn":270,"downloadUrl":102,"macos":276,"requiresRosetta":20,"tag":277,"version":105},{"apps":258,"binaries":259,"entries":260,"pkgs":266},[],[8],[261],{"declaration":262,"phase":16,"sources":265,"target":15,"type":18},{"binary":263,"target":15},[89,264],{"target":8},[89],[],{"casks":268,"formulae":269},[29],[],{"arch":271,"casks":272,"formulae":273,"requirements":274},[34],[],[],{"macos":275},{},"13","ventura",{"arch":33,"artifacts":279,"conflictsWith":289,"dependsOn":292,"downloadUrl":43,"macos":276,"requiresRosetta":20,"tag":298,"version":105},{"apps":280,"binaries":281,"entries":282,"pkgs":288},[],[8],[283],{"declaration":284,"phase":16,"sources":287,"target":15,"type":18},{"binary":285,"target":15},[13,286],{"target":8},[13],[],{"casks":290,"formulae":291},[29],[],{"arch":293,"casks":294,"formulae":295,"requirements":296},[33],[],[],{"macos":297},{},"arm64_ventura",{"arch":34,"artifacts":300,"conflictsWith":310,"dependsOn":313,"downloadUrl":102,"macos":319,"requiresRosetta":20,"tag":320,"version":105},{"apps":301,"binaries":302,"entries":303,"pkgs":309},[],[8],[304],{"declaration":305,"phase":16,"sources":308,"target":15,"type":18},{"binary":306,"target":15},[89,307],{"target":8},[89],[],{"casks":311,"formulae":312},[29],[],{"arch":314,"casks":315,"formulae":316,"requirements":317},[34],[],[],{"macos":318},{},"12","monterey",{"arch":33,"artifacts":322,"conflictsWith":332,"dependsOn":335,"downloadUrl":43,"macos":319,"requiresRosetta":20,"tag":341,"version":105},{"apps":323,"binaries":324,"entries":325,"pkgs":331},[],[8],[326],{"declaration":327,"phase":16,"sources":330,"target":15,"type":18},{"binary":328,"target":15},[13,329],{"target":8},[13],[],{"casks":333,"formulae":334},[29],[],{"arch":336,"casks":337,"formulae":338,"requirements":339},[33],[],[],{"macos":340},{},"arm64_monterey",{"arch":34,"artifacts":343,"conflictsWith":353,"dependsOn":356,"downloadUrl":102,"macos":362,"requiresRosetta":20,"tag":363,"version":105},{"apps":344,"binaries":345,"entries":346,"pkgs":352},[],[8],[347],{"declaration":348,"phase":16,"sources":351,"target":15,"type":18},{"binary":349,"target":15},[89,350],{"target":8},[89],[],{"casks":354,"formulae":355},[29],[],{"arch":357,"casks":358,"formulae":359,"requirements":360},[34],[],[],{"macos":361},{},"11","big_sur",{"arch":33,"artifacts":365,"conflictsWith":375,"dependsOn":378,"downloadUrl":43,"macos":362,"requiresRosetta":20,"tag":384,"version":105},{"apps":366,"binaries":367,"entries":368,"pkgs":374},[],[8],[369],{"declaration":370,"phase":16,"sources":373,"target":15,"type":18},{"binary":371,"target":15},[13,372],{"target":8},[13],[],{"casks":376,"formulae":377},[29],[],{"arch":379,"casks":380,"formulae":381,"requirements":382},[33],[],[],{"macos":383},{},"arm64_big_sur",{"icon":23,"machineTranslated":20,"name":24,"slug":25,"sourceLocale":26},793,7,{"brewLag":389,"cadence":393,"count30d":394},{"compared":390,"earlierCount":391,"medianMinutes":392},3,1,8187,"irregular",0,[],"https:\u002F\u002Fgithub.com\u002Fhomebrew\u002Fhomebrew-cask\u002Fblob\u002FHEAD\u002FCasks\u002Fp\u002Fp4.rb","用于向 P4 服务器执行 Perforce 命令的命令行客户端。",{"locale":26,"machineTranslated":20,"sourceLocale":73,"status":77},{"arm64":56,"requiresRosetta":20,"status":400,"x86_64":56},"known",[402,403,404,405],"command-line tool","version control","server client","asset tracking","homebrew\u002Fcask","2026-10-09T21:15:37.975171Z",null,{"current":391,"records":410,"size":489,"stats":490,"total":387},[411,418,441,467,474,479,484],{"bodyMarkdown":54,"brewCommittedAt":55,"hasNotes":56,"id":57,"isLatest":56,"isPrerelease":20,"machineTranslated":20,"publishedAt":58,"sections":412,"source":72,"sourceLocale":73,"summary":74,"title":75,"translation":417,"version":78},[413,415],{"area":61,"items":414},[63,64,65,66],{"area":68,"items":416},[70,71],{"locale":26,"machineTranslated":20,"sourceLocale":73,"status":77},{"bodyMarkdown":419,"brewCommittedAt":420,"hasNotes":56,"id":421,"isLatest":20,"isPrerelease":20,"machineTranslated":20,"publishedAt":422,"sections":423,"source":72,"sourceLocale":73,"summary":437,"title":438,"translation":439,"version":440},"P4 2025.2 修复了客户端在同步中断、并行操作、reconcile 和合并处理方面的问题。同步过程中如果按下 Ctrl-C，客户端不再会出现与服务器状态不一致的情况。并行操作期间，通过 `p4 -P` 或 `P4PASSWD` 指定的 ticket 现在可以正确处理。reconcile 在无法打开文件时提供了更完善的错误处理；当文件内容相同时，它也不再将多个删除项匹配到同一个新增项，从而避免提交时因缺少 resolve 记录而失败。合并工具失败的处理在不同平台上保持一致，也不再导致虚假的合并结果。\n\n此外，本版本修复了读取 RCS 文件内容以执行修订版本比较命令时的性能问题。用于扩展的 cURL 更新至 8.16.0，JSON for Modern C++ 更新至 3.12.0。此处说明仅涉及 P4 CLI 组件。[官方变更日志](https:\u002F\u002Fwww.perforce.com\u002Fperforce\u002Fdoc.current\u002Fuser\u002Frelnotes.txt)","2025-11-18T16:27:26Z",4687,"2025-11-13T00:00:00Z",[424,431],{"area":61,"items":425},[426,427,428,429,430],"同步期间按下 Ctrl-C 不再导致客户端状态不一致。","并行操作期间可正确处理 ticket。","reconcile 打开文件失败时提供更完善的错误处理。","合并工具失败不再产生虚假的合并结果。","reconcile 不再将多个删除项匹配到同一个新增项。",{"area":432,"items":433},"组件",[434,435,436],"用于扩展的 cURL 更新至 8.16.0。","JSON for Modern C++ 更新至 3.12.0。","修复读取 RCS 内容以比较修订版本时的性能问题。","P4 CLI 修复涉及同步中断、并行操作中的 ticket、reconcile 处理、合并工具失败等问题；此外还更新了随附的 cURL 和 JSON for Modern C++ 组件。","Perforce Helix 命令行客户端（P4）2025.2",{"locale":26,"machineTranslated":20,"sourceLocale":73,"status":77},"2025.2",{"bodyMarkdown":442,"brewCommittedAt":443,"hasNotes":56,"id":444,"isLatest":20,"isPrerelease":20,"machineTranslated":20,"publishedAt":445,"sections":446,"source":72,"sourceLocale":73,"summary":463,"title":464,"translation":465,"version":466},"P4 2025.1 调整了 `p4 reconcile` 的移动检测方式：只有指定 `-M` 或 `--match-moves` 时，匹配的新增和删除文件才会重新打开为移动。`p4 move -M [-c changelist#]` 可在待处理变更列表中查找匹配文件。移动检测可通过 `--parallel=n` 使用多个客户端线程；`p4 reconcile` 和 `p4 move` 也支持全局 `-I` 进度指示器。\n\nTCP keepalive 现在默认启用。新增的 `net.nagle` 和 `net.quickack` 设置适用于客户端和服务器组件，且只对新连接生效；已有连接不受影响。在 macOS 上，更改 `net.quickack` 不会修改单个套接字选项，文档所述系统级更改需要重启。密码套件列表配置项现可用于客户端、代理和 broker。TLS 最低版本高于最高版本时，现在仍允许最低版本；仅接受 TLS 1.2 或更高版本的服务，其默认密码套件改为 `ECDHE-RSA-AES128-GCM-SHA256`。\n\n修复包括 Windows 中大于 127 的 keepalive 值未生效、连接 Unicode 服务器时并行同步生成零字节 binary+F 文件，以及 Windows 上 AltSync 并发同步失败。cURL 升级至 8.12.1。[官方变更日志](https:\u002F\u002Fwww.perforce.com\u002Fperforce\u002Fdoc.current\u002Fuser\u002Frelnotes.txt)","2025-05-16T01:09:26Z",4698,"2025-05-09T00:00:00Z",[447,453,459],{"area":448,"items":449},"命令",[450,451,452],"reconcile 仅在指定 -M 或 --match-moves 时匹配移动。","p4 move -M 可将待处理变更列表中的匹配增删文件重新打开为移动。","reconcile 新增 --parallel=n；reconcile 和 move 支持 -I 进度显示。",{"area":454,"items":455},"网络",[456,457,458],"TCP keepalive 默认启用；新增 net.nagle 和 net.quickack。","密码套件列表设置现可用于客户端、代理和 broker。","调整 TLS 最低\u002F最高版本处理及 TLS 1.2+ 默认密码套件。",{"area":61,"items":460},[461,462],"修复 Windows 中大于 127 的 keepalive 值及并行同步零字节文件问题。","修复 AltSync 并发同步失败；cURL 升级至 8.12.1。","为 reconcile 增加移动匹配和并行检测，新增网络与 TLS 配置选项，并修复 Windows keepalive、并行同步和 AltSync 问题。","Perforce Helix 命令行客户端（P4）2025.1",{"locale":26,"machineTranslated":20,"sourceLocale":73,"status":77},"2025.1",{"brewCommittedAt":468,"hasNotes":20,"isLatest":20,"isPrerelease":20,"sections":469,"source":470,"translation":471,"version":473},"2024-11-11T19:14:55Z",[],"homebrew",{"status":472},"none","2024.2",{"brewCommittedAt":475,"hasNotes":20,"isLatest":20,"isPrerelease":20,"sections":476,"source":470,"translation":477,"version":478},"2024-05-16T11:11:32Z",[],{"status":472},"2024.1",{"brewCommittedAt":480,"hasNotes":20,"isLatest":20,"isPrerelease":20,"sections":481,"source":470,"translation":482,"version":483},"2023-11-17T13:22:12Z",[],{"status":472},"2023.2",{"brewCommittedAt":485,"hasNotes":20,"isLatest":20,"isPrerelease":20,"sections":486,"source":470,"translation":487,"version":488},"2023-11-08T11:12:07Z",[],{"status":472},"2023.1",20,{"brewLag":491,"cadence":393,"count30d":394},{"compared":390,"earlierCount":391,"medianMinutes":392},{"current":391,"records":493,"size":391,"stats":501,"total":387},[494],{"bodyMarkdown":54,"brewCommittedAt":55,"hasNotes":56,"id":57,"isLatest":56,"isPrerelease":20,"machineTranslated":20,"publishedAt":58,"sections":495,"source":72,"sourceLocale":73,"summary":74,"title":75,"translation":500,"version":78},[496,498],{"area":61,"items":497},[63,64,65,66],{"area":68,"items":499},[70,71],{"locale":26,"machineTranslated":20,"sourceLocale":73,"status":77},{"brewLag":502,"cadence":393,"count30d":394},{"compared":390,"earlierCount":391,"medianMinutes":392}]