版本控制系统Helix Core的常见使用误区及解决办法、实用工具及新功能介绍

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

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

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


如何避免、解决常见问题:那些发生在Project Titan中,你也可能会遇到的问题

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

那些我们创建的实用工具和脚本:分享和构建一些免费的社区支持工具

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

简易密码重置工具

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

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

强制解锁工具

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

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

超时自动复原工具

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

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

P4项目模版工具

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

那些您需要了解的新功能:了解如何将其应用到您的工作室中

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

虚拟文件同步-Helix Core 2023.1

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

系统资源监控 - Helix Core 2023.1

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

Sparse Streams - Helix Core 2024.1

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

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

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

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

DeltaSubmits- Helix Core 2024.1

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

以上是我们Helix Core的一些功能介绍,以及在Project Titan项目中的一些应用分享。

如需进一步体验Helix Core的强大功能, 欢迎联系Perforce中国授权合作伙伴龙智,获得下载安装支持。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1559872.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

谈谈英国硕士毕业论文如何收集问卷数据

在之前几期文章中,英国翰思教育小编介绍了在写英国硕士毕业论文的时候如何设计问卷,以及设计问卷时需要注意的一些原则和细节。希望通过那些往期内容,可以帮助同学们正确认识毕业论文问卷设计,也可以帮助大家找到合适的问卷设计思…

vantUI用popup和picker和field做关键词搜索功能

<van-field class"mainFileCss" v-model"currentflowmeterLocation" left-icon"search" click"openPicker" center label"位号"placeholder"请输入位号"><template slot"button"></temp…

Linux查看下nginx及使用的配置文件

1、查到nginx进程 ps -aef | grep nginx2、通过进行pid查到nginx路径 pwdx <pid>3、根据路径得到配置文件 path***/nginx -t如下&#xff1a;

基于xml配置文件的Spring事务

在项目中对事务属性通常传播属性&#xff0c;回滚属性&#xff0c;隔离级别&#xff0c;超时属性都取默认值&#xff0c;只有只读属性会如下的配置&#xff1a; 什么意思&#xff1a;Service层你的类里的方法&#xff0c;以get&#xff0c;find&#xff0c;select等开头的方法是…

shell注意点

变量命名&#xff1a; 注意&#xff0c;变量名和等号之间不能有空格&#xff0c;定义变量时&#xff0c;变量名不加美元符号$&#xff0c;这可能和你熟悉的所有编程语言都不一样。同时&#xff0c;变量名的命名须遵循如下规则&#xff1a; 只包含字母、数字和下划线&#xff…

【text2sql】ReFSQL检索生成框架

论文标题为《ReFSQL: A Retrieval-Augmentation Framework for Text-to-SQL Generation》&#xff0c;发表在 EMNLP 2023 上。ReFSQL框架通过结构增强检索器来获取与当前问题语义和模式结构相似的样本&#xff0c;然后通过对比学习机制来引导模型学习到这些样本的特定知识&…

10款超实用的Sketch插件合集,别错过!

在 UI 界面设计领域&#xff0c;Sketch 以其高效、轻便的优势获得了不少设计团队的青睐&#xff0c;帮助全球设计师创造了许多妙不可言的作品。在使用 Sketch 的过程中&#xff0c;使用一些 辅助用的 Sketch 插件&#xff0c;可以让我们更加高效地完成设计任务。本文将将揭秘大…

jenkins中的allure和email问题梳理

一、allure相关 1、我安装了jenkins之后需要再安装allure吗&#xff1f;在jenkins插件中心直接安装allure 1.Allure Jenkins Plugin 只是一个集成插件&#xff0c;它要求你在 Jenkins 服务器上安装 Allure 命令行工具&#xff08;Allure Commandline&#xff09;来实际生成报…

Spring Boot教学资源库:从入门到精通

1绪 论 1.1研究背景 目前&#xff0c;在网络大环境下&#xff0c;越来越多高校开始实行网络教学&#xff0c;利用网络教学方式有利于学生更好的学习。 网络教学是指以计算机及网络为基础&#xff0c;来实现教学资源的上传、存储、传播和共享的教学手段。它是一种教学活动&#…

伪随机调制

伪随机调制是一种利用伪随机序列来调制信号的技术&#xff0c;广泛应用于现代通信系统中。其主要目的在于增强信号的抗干扰能力和隐蔽性&#xff0c;同时提升数据传输的安全性。以下是关于伪随机调制的详细介绍&#xff0c;包括原理、数学表达以及应用。 一、原理 1. 伪随机序…

ITSS-IT服务工程师和ITSS-IT服务经理的区别

培训目的差异&#xff1a;ITSS 服务项目经理的培训旨在为应对 IT 服务行业一线管理人员短缺的问题提供有力支持&#xff1b;而 ITSS 服务工程师的培训则致力于向 IT 服务业输送初级人才&#xff0c;协助企业将一部分内部成本转移至社会。 培训方向区分&#xff1a;ITSS 服务经理…

基于Springboot+Vue的智能推荐旅游平台 (含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统中…

【Python】Conda离线执行命令

以下链接证明了想要离线使用conda命令的方法 启用离线模式 — Anaconda documentation 基本上大部分的命令都会提供网络选项 例如creat命令 conda create — conda 24.7.1 文档 - Conda 文档

英国商科毕业论文选题常见错误与解决思路

每到毕业季&#xff0c;英国商科毕业论文的选题和确定题目往往是留学生头痛的一大难题。如何有效确定英国毕业论文题目&#xff1f;如何避免题目中出现一些错误导致研究不能进行&#xff1f;在这篇文章中&#xff0c;翰思教育小编将逐一分析各种可能的问题以及如何避免这些问题…

12.JVM类加载机制

一、什么是JVM JVM是一种计算设备规范&#xff0c;虚构出的一个计算机&#xff0c;具有跨平台的特性&#xff1b; 包含类加载器、程序计数器、执行引擎、堆栈、方法区&#xff08;元数据区&#xff09;、本地方法栈 二、类加载全过程 加载过程如下&#xff1a;加载 --》验证…

Spring Cloud Netflix Hystrix 熔断器讲解和案例示范

在分布式微服务架构中&#xff0c;每个服务之间相互依赖&#xff0c;当某个服务出现故障或延迟时&#xff0c;如果没有有效的故障隔离机制&#xff0c;可能导致整个系统雪崩式的失败。Netflix Hystrix 作为一种熔断器模式&#xff0c;旨在通过隔离服务之间的调用&#xff0c;提…

bladex漏洞思路总结

Springblade框架介绍&#xff1a; SpringBlade是一个基于Spring Boot和Spring Cloud的微服务架构框架&#xff0c;它是由商业级项目升级优化而来的综合型项目。 0x1 前言 最近跟一些大佬学习了blade的漏洞&#xff0c;所以自己总结了一下&#xff0c;在渗透测试过程中&#x…

数据排列组合实现

示例 将以下几组数据 &#xff08;“01”, “02”&#xff09;&#xff0c;&#xff08;“A1”, “A2”, “A3”&#xff09;&#xff0c;&#xff08;“B1”, “B2”&#xff09;&#xff0c;&#xff08;“D1”, “D3”&#xff09;排列组合成&#xff0c;如&#xff1a;01:…

如何利用phpstudy创建mysql数据库

phpStudy诞生于2007年&#xff0c;是一款老牌知名的PHP开发集成环境工具&#xff0c;产品历经多次迭代升级&#xff0c;目前有phpStudy经典版、phpStudy V8&#xff08;2019版&#xff09;等等&#xff0c;利用phpstudy可以快速搭建一个mysql环境&#xff0c;接下来我们就开始吧…

【纯前端实现xlsx的解析并处理成table需要的格式】

概要 xlsx纯前端导入并解析成json 整体架构流程 xlsx导入并解析成json&#xff0c;并与table中的数据进行对比&#xff0c;根据唯一标识更新对应数据项 技术名词解释 vue2xlsx 技术细节 首先下载xlsx依赖 npm install xlsx --save然后在需要导入xlsx的地方 这里主要用in…