0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Perforce演讲回顾(下):版本控制系统Helix Core的常见使用误区及解决办法、实用工具及新功能介绍

龙智DevSecOps 2024-10-08 16:18 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

日前,Perforce携手合作伙伴龙智一同亮相Unreal Fest 2024上海站,分享Helix Core版本控制系统及其协作套件的强大功能与最新动态,助力游戏创意产业加速前行。

Perforce解决方案工程师Kory Luo在活动主会场带来《Helix Core+Unreal Engine工作流程与使用实践》的主题演讲,分享Helix Core在Project Titan项目中的关键角色、与Unreal Engine的配置技巧、常见的使用误区及解决办法,以及Helix Core的最新功能与应用等重磅干货。

此次演讲回顾分为上下两期为您呈现(内容有精简优化);本期为(下)期。

如何避免、解决常见问题

那些发生在Project Titan中,你也可能会遇到的问题

本节,我们将了解一些在管理Project Titan中遇到的问题和解决方法,看看大家是否遇到过同样的问题,以便下次再遇到时能够从容应对。

问题1:使用非流工作区在流版本仓中工作。

wKgaomcE22qANEGcAAC-mTL4GQM792.png

我们版本仓的常用类型有classicdepot和streamdepot。当用户第一次与服务器交互时,会创建一个工作区,用来存储从服务器下载到本地的文件。初始状态下,默认的工作区是classicdepot,stream的选项是空白的。当我们需要在stream depot下操作时,若新手用户没有将工作区与stream depot相对应,这导致会出现的问题是:用户虽然可以进行下载和更改,但无法提交,因为工作区的属性与版本仓的属性不匹配。

解决的方法也很简单:编辑工作区规范(workspace spec),将其附加到相对应的流版本仓即可。但是对于4000多人的ProjectTitan项目,我们无法逐个告知用户,所以我们创建了p4python脚本,通过设置预定任务每小时对workspace spec进行修正,以便在用户发现之前解决问题,从而大大减少用户遇到此问题的几率。

问题2:在OSX系统中,将工作区路径设置到exFat存储。

wKgZomcE22qAO-u1AADqFlvJfjI652.png

如此设置的OSX系统用户,可以正常创建工作区、下载或更改文件,但是当服务器的文件有新版本需再次下载的时候,就会出现Can’t clobber writable file”的报错。

什么原因呢?正常操作下,我们初期下载到本地的文件是read-only只读模式,需要用P4V或UE执行checkout(签出),将文件权限从read-only改成read-write,才能正常进行更改。一旦用户不通过服务器,而在本地直接更改文件的读写权限,这看似没有问题,但在后续的提交或下载时,服务器会将其判断为“离线更改”,而出现无法与服务器最新版本同步的情况。因为服务器担心覆盖掉您的本地内容,导致数据丢失,所以呢会发出“Can’t clobber writable file”的警告。

对于不兼容的文件系统,我们的解决方案也只能是——将其格式化,然后使用相匹配的文件系统。在Project Titan中,用户备份数据后,重新格式化硬盘为APFS,然后就可以继续工作了。

问题3:服务器的储存安全限制。

wKgZomcE22qAR17eAADXEDMimRk917.png

Helix Core对服务器数据的主要储存空间有一些硬性限制,比如对于储存metadata、日志、temp表的磁盘空间,默认值是250MB。即:当磁盘空间不足250MB时,服务器会停止接收任何命令。毕竟,版本控制软件是用来记录所有版本的相关信息的,如果磁盘空间不足,已经无法正常读写还继续接收版本的话,也就丧失版本控制的意义了。

为了避免这一情况,我们需要定时清理旧的磁盘和日志,例如可以保留最近7天的日志,同时可确保在遇到问题时,有足够的日志信息以便追溯问题源头。另外,也可以将旧版本的文件存档到外部硬盘或云端,以确保服务器中的磁盘空间充足,能够满足实际的需求。

当然,最重要的还是要做到密切监控。若问题发生后再着手解决,很可能会影响服务器的运行时间甚至导致停机。这时候,P4Prometheus的重要性就不言而喻了。它可以设置自定义邮件警报,比如设置当磁盘空间不足70%时,向管理员发送邮件警报,以便我们提前采取措施,避免服务器停机。

问题4:服务器大小写问题。

wKgaomcE22qACQubAAld-7LXwRw229.png

我们知道,Linux服务器区分大小写,而Windows不区分。有些团队使用的是Linux服务器,但既有Windows用户又有Linux用户,有大小写就会显得非常混乱。如果两个文件的路径、文件名都相同仅仅是大小写不同,Linux服务器会将其视为两个文件,而上传这样的文件是没有意义的。不过呢,对于涉及多个部门协同工作的项目来说,保留服务器中的大小写属性也很有必要,它能够帮助促进不同部门间的协作和兼容。

那如何控制这一问题呢?——可以通过安装CheckCase Trigger,将那些待提交的仅大小写不同、但文件内容完全相同的两个文件名或目录名进行拦截,以避免产生冲突。

那些我们创建的实用工具和脚本

分享和构建一些免费的社区支持工具

接下来,为大家介绍一些我们创建的实用脚本和工具。

工具1:简易密码重置工具

wKgaomcE22yAItIzAAxlFAWw0-k967.png

我们常常会遇到忘记密码的情况。 如果某个用户忘记了,管理员可在P4Admin上操作重置。规模比较小的项目中,管理员一一手动重置是没有问题的,但对于4000人以上的大规模项目,管理员可能每天都收到大量的重置请求,再手动重置的话,无疑会令人崩溃。

对此,我们创建了一个实用脚本,即简易密码重置工具,来帮助管理员自动生成临时密码。在Project Titan中,我们通过Discord聊天软件将密码发送给用户进行重置。国内使用微信的用户更多,那我们也可以根据需求,改为通过微信或邮件来与用户交流。

工具2:强制解锁工具

wKgZomcE22uAcjReAAw2oe8Ba48208.png

由于二进制文件不可合并,一旦某个用户检出后未及时上传,其他任何成员都不能对该文件进行修改。对于小型团队,或许可以和用户沟通,由管理员逐个强制解锁,但对于数百甚至上千人的大体量项目,沟通的成本就会显著增加。所以我们必须使用工具。

通过将我们的强制解锁工具加载到P4V的CustomTools中,右键单击选择“强制解锁”,即可解锁该文件,以确保工作的流通和顺利推进。这对大体量的工作室来说,非常有帮助。

工具3:超时自动复原工具

wKgZomcE22yAXngzAA3zsw2DA_k205.png

这一工具与前面的强制解锁工具有异曲同工之妙,但是更为强硬一些。它会设定一个时间期限,若用户在期限内未对检出的文件进行上传或提交,系统就会自动复原该文件至检出前的状态。复原后,用户的本地更改会全部消失。当然,这很可能会引起用户的不满,但某些情况下,特别是在Project Titan这样的大型项目中,由于人数众多,存在很多迟迟不上传的情况,我们又无法与各个用户高效沟通,这时候,超时自动复原就成为一项必要的手段。

不过在实施此功能时,可以进行一些柔化处理。我们可以设置预警机制,比如提前3天发送邮件提醒用户上传,以减少不必要的工作损失。

工具4:P4项目模版工具

wKgaomcE22yABa8FAA3ME3RgSZs687.png

这是一款面向管理员的模板化服务器部署工具。对于经常需要为项目组部署服务器的管理员来说,这一工具可帮助大大简化部署流程。通过模板工具,管理员可以快速搭建出具有基本功能的服务器环境,后续再根据具体的需求进行微调。

那些您需要了解的新功能

了解如何将其应用到您的工作室中

最后,我们再来看看Helix Core近年来推出的几项瞩目的新功能。

1、虚拟文件同步-Helix Core 2023.1

这项功能在23.1版本中首次推出。什么是“虚拟文件同步”呢?就是工作区同步时,只会下载元数据(包括谁、在什么时间、执行了什么操作以及文件名、文件历史记录等),但不会立即将实体文件下载到本地。只有当用户对文件进行更改时,系统才会将实体文件从服务器端同步到本地。通过这一功能,我们可以大大节省磁盘空间,并提升初期的下载速度。

2、系统资源监控- Helix Core 2023.1

当服务器资源紧张时,我们Helix Core的服务器会将用户的命令行排队,待资源充足后再进行逐个处理,以确保服务器的正常工作,改善系统在高压下的运行时间。

3、Sparse Streams-Helix Core 2024.1

Sparse Streams可以理解为轻量级的分支流,和刚才提到的“虚拟文件同步”类似,Sparse Streams在创建初期,只生成少量的元数据,并允许用户选择需要包含的文件。它不会立即下载大量的实体文件到本地,从而帮助节省磁盘空间,创建流的体验也会非常流畅。

Sparse Streams与其Parent Stream相关联,只有在用户对实体文件进行实际更改时,才会从parent stream中抓取相应的文件到Sparse Streams,并传送给用户。这对于修复小bug或开发一些简易功能非常有用,后续也可以轻松升级为其他类型的流,比如开发流或发布流。

4、支持S3(及兼容S3)对象存储 - Helix Core 2024.1

这一功能扩展了对更具有成本效益的云存储的支持。24.1之前只支持存档(archive depot)版本仓。24.1版本后,支持remotedepot外的所有版本仓类型。(*remotedepot适用于与其他公司或第三方合作时分享文件、数据、代码或数字资产。)

5、Delta Submits - Helix Core 2024.1

Delta Submits是今年新推出的一项非常强大的功能,可减少未压缩的二进制文件在提交时的网络负载。简单来说,它将大文件分割成多个小块,并通过算法比较,仅提交相对于上一版本有更改的一些小块,从而减少上传的负载和时间。在服务器端,这些小块会与之前的版本内容合并重构,生成最新的版本存储在服务器上。对于网络延迟较高的环境,这项功能尤为有用,我们的内部测试显示,上传速度可提升至少3到4倍。

以上是我们Helix Core的一些功能介绍,以及在Project Titan项目中的一些应用分享。如需进一步体验Helix Core的强大功能,欢迎联系Perforce中国授权合作伙伴龙智,获得下载安装支持。

5人及以下的小团队,可以免费使用Helix Core,所有功能与付费版相同。对于没有技术人员专管服务器的团队,我们也提供HelixRemoteAdmin(HRA)服务,涵盖了Helix Core所有产品、Swarm版本审查工具等,由Perforce专业团队帮您部署和持续管理。此外,我们还推出了Helix Core Cloud服务,适用于50人及以下的团队。通过云托管,您可以获得专属的VM,用于部署和运行服务器。这种部署方式更为经济,也非常安全,只有本公司的人员才能访问。同时,我们也提供全面的备份服务,可根据您的需求定制不同的云容量。

以上就是本次演讲的全部内容,谢谢大家!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制系统
    +关注

    关注

    41

    文章

    6893

    浏览量

    113551
  • 版本管理
    +关注

    关注

    0

    文章

    12

    浏览量

    325
  • 版本控制
    +关注

    关注

    0

    文章

    26

    浏览量

    137
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    VCS安装教程及常见问题和解决办法

    一、简要介绍 在对蜂鸟E203处理器进行运行系统级仿真测试时,可以利用VCS这一编译型仿真工具来对运行E203的模拟测试。本文即介绍在Linux
    发表于 10-27 07:58

    「龙智×Perforce」研讨会干货回顾Perforce工具链在汽车行业的应用与中国本土化落地实践

    研讨会干货回顾来了!本次会议不仅带来了Perforce工具在汽车软件研发中的技术优势与全球价值,更输出了龙智“验证-赋能-护航”的本土落地三部曲。推荐给每一位汽车软件人~
    的头像 发表于 08-21 14:35 607次阅读
    「龙智×<b class='flag-5'>Perforce</b>」研讨会干货<b class='flag-5'>回顾</b>:<b class='flag-5'>Perforce</b><b class='flag-5'>工具</b>链在汽车行业的应用与中国本土化落地实践

    版本控制教程】如何使用Unreal Engine 5 + UE源代码控制Perforce P4)

    项目越大,越需要靠谱的版本控制系统Perforce P4不仅是Epic官方推荐的源代码控制工具,更是大厂团队协作的核心支持之一。如何配置P
    的头像 发表于 06-25 11:22 1140次阅读
    【<b class='flag-5'>版本</b><b class='flag-5'>控制</b>教程】如何使用Unreal Engine 5 + UE源代码<b class='flag-5'>控制</b>(<b class='flag-5'>Perforce</b> P4)

    主流版本控制工具Git vs Perforce P4:架构模式、性能、大文件管理及分支管理对比详解

    Git vs Perforce P4,如何选型?架构模式、性能、大文件管理、分支策略四大维度对比,帮你全面了解两者的核心差异,选择更合适你团队需求的版本控制系统
    的头像 发表于 06-13 14:52 575次阅读
    主流<b class='flag-5'>版本</b><b class='flag-5'>控制</b><b class='flag-5'>工具</b>Git vs <b class='flag-5'>Perforce</b> P4:架构模式、性能、大文件管理及分支管理对比详解

    Helix QAC 2025.1 重磅发布!MISRA C:2025® 100%覆盖

    Helix QAC 2025.1新增功能 Helix QAC 2025.1实现了对新版MISRA C:2025®标准的 100% 覆盖,并提供对应的合规模块。此版本还扩展了对 CERT
    的头像 发表于 05-13 16:48 1112次阅读
    <b class='flag-5'>Helix</b> QAC 2025.1 重磅发布!MISRA C:2025® 100%覆盖

    DevOps与功能安全:Perforce ALM通过ISO 26262合规认证,简化安全关键系统开发流程

    Perforce ALM(原Helix ALM)通过了国际权威认证机构 TÜV SÜD的ISO 26262功能安全流程认证!该认证涵盖Perforce ALM解决方案的所有领域,包括需
    的头像 发表于 04-11 14:11 553次阅读
    DevOps与<b class='flag-5'>功能</b>安全:<b class='flag-5'>Perforce</b> ALM通过ISO 26262合规认证,简化安全关键<b class='flag-5'>系统</b>开发流程

    Perforce品牌及产品名更新:涵盖版本控制Perforce P4(原Helix Core)、静态代码分析Perforce QAC(原Helix QAC)等

    Perforce推出全新P4平台及P4 One客户端!从广为人知的“P4”到Helix CorePerforce P4,此次品牌重塑是一次初心回归,也是对开发者和数字创作团队需求的深
    的头像 发表于 03-28 15:04 1097次阅读
    <b class='flag-5'>Perforce</b>品牌及产品名更新:涵盖<b class='flag-5'>版本</b><b class='flag-5'>控制</b><b class='flag-5'>Perforce</b> P4(原<b class='flag-5'>Helix</b> <b class='flag-5'>Core</b>)、静态代码分析<b class='flag-5'>Perforce</b> QAC(原<b class='flag-5'>Helix</b> QAC)等

    数据管理/版本控制升级指南:龙智解读SVN痛点、Perforce Helix Core功能优势及三种迁移方法

    还在用SVN?它可能已经拖累了你的效率!龙智最新直播回顾,揭秘如何通过Perforce Helix Core实现高效、安全的版本
    的头像 发表于 03-04 16:47 662次阅读
    数据管理/<b class='flag-5'>版本</b><b class='flag-5'>控制</b>升级指南:龙智解读SVN痛点、<b class='flag-5'>Perforce</b> <b class='flag-5'>Helix</b> <b class='flag-5'>Core</b><b class='flag-5'>功能</b>优势及三种迁移方法

    版本控制安全简报】Perforce Helix Core安全更新:漏洞修复与国内用户支持

    Perforce Helix Core近日发布安全补丁,解决高危DoS漏洞,安全性进一步增强!获取支持,可咨询Perforce授权代理商龙智,我们提供咨询、试用、安装部署、培训、技术支
    的头像 发表于 02-27 17:12 889次阅读
    【<b class='flag-5'>版本</b><b class='flag-5'>控制</b>安全简报】<b class='flag-5'>Perforce</b> <b class='flag-5'>Helix</b> <b class='flag-5'>Core</b>安全更新:漏洞修复与国内用户支持

    PLC异常工作的原因和解决办法

    PLC(可编程逻辑控制器)异常工作的原因及解决办法
    的头像 发表于 02-24 17:27 1847次阅读

    版本控制系统Helix Core 2024.2增强功能:与OpenTelemetry协议集成、Delta同步和传输等

    Helix Core 2024.2新增功能Helix Core 2024.2版本拥有众多旨在
    的头像 发表于 01-03 16:03 792次阅读
    <b class='flag-5'>版本</b><b class='flag-5'>控制系统</b><b class='flag-5'>Helix</b> <b class='flag-5'>Core</b> 2024.2增强<b class='flag-5'>功能</b>:与OpenTelemetry协议集成、Delta同步和传输等

    端子失效的常见原因及解决办法

    端子失效的常见原因及解决办法 在现代电子设备和电路系统中,端子作为连接各个组件的关键部分,其稳定性和可靠性至关重要。然而,端子失效的情况时有发生,这不仅影响设备的正常运行,还可能导致安全隐患。 端子
    的头像 发表于 12-29 10:47 2382次阅读

    SVN十问:一文带你了解Subversion历史、使用挑战及替代方案Perforce Helix Core

    Subversion (SVN) 作为开源的集中式版本控制系统,已无法满足现代化的数据管理与版本控制需求。越来越多的团队开始转向更快速、更安全、更可扩展的
    的头像 发表于 12-27 16:09 991次阅读
    SVN十问:一文带你了解Subversion历史、使用挑战及替代方案<b class='flag-5'>Perforce</b> <b class='flag-5'>Helix</b> <b class='flag-5'>Core</b>

    龙智直播预告:揭示现代化数据管理与版本控制优势、从SVN迁移到Helix Core的实践指导、迁移步骤等

    2025年1月9日(周四)14:00-14:45,Perforce中国授权合作伙伴-龙智将在线直播,分享为何您的传统数据管理与版本控制系统需要升级、Perforce
    的头像 发表于 12-16 15:35 624次阅读
    龙智直播预告:揭示现代化数据管理与<b class='flag-5'>版本</b><b class='flag-5'>控制</b>优势、从SVN迁移到<b class='flag-5'>Helix</b> <b class='flag-5'>Core</b>的实践指导、迁移步骤等

    常见垫圈故障及解决办法 防漏垫圈的设计与应用

    常见垫圈故障及解决办法 1. 垫圈老化 故障现象: 垫圈因长时间使用而老化,失去弹性,导致密封性能下降。 解决办法: 定期检查垫圈的老化情况,及时更换新的垫圈。 2. 垫圈变形 故障现象: 由于安装
    的头像 发表于 12-12 15:31 1869次阅读