研讨会回顾|AI驱动的DevOps云端转型:Atlassian Cloud + AI 实战指南

400-666-7732

研讨会回顾

AI驱动的DevOps云端转型:Atlassian Cloud + AI 实战指南

Perforce用户文章转载:一图看懂 | 我用这张图,看懂了 P4 Reconcile

来源:游戏QA   作者:向华        发布时间:2021-12-14 09:50

本篇作者向华是一名游戏行业从业者,也是 Perforce 用户。

你好,我是向华。

前原神项目 P4 Admin,持续集成开发者,8 年游戏测试开发工程师。

这是向华的第 5 篇原创内容。

最近在工作中,发现有不少同事对 P4 Reconcile 理解不深。

何为 Reconcile?

何时用,有啥效果?

需要注意什么?

今天的话题讨论一下,帮助大家一图看懂 P4 Reconcile。(文末有《一图看懂 P4 Reconcile.png》)

何为Rwconcile?
Reconcile,英文意思是 「使协调一致」。
P4 用户都知道,就算是 Checkout 了一个文件,在 P4 服务器上都会有状态记录,并把状态广播给其他在线的 P4 用户。
而 P4 Reconcile 是将没有记录在 P4 服务器上的本地改动打开在 Pending Changelist 中。
然而,在某些特殊的情况下,我们需要用文件管理软件(Windows 的资源管理器,Mac 的 Finder 等),强制作出一些文件的修改、删除或添加。
而这些本地改动状态不会同步到 P4 服务器上。
怎样才能让服务器「知道」状态,并同步给其他 P4 协作者呢?
答案是 P4 Reconcile
它能使「本地改动」与「P4 仓库」协调一致。
达到 Reconcile 的「协调」目的。
何时用,啥效果?
通常有 2 种场景会用到。

01    回家没网我改了一通

举个例子。
昨天,程序同学小张回到家,发现网断了,但又得赶需求,只好打开笔记本上的 P4 Workspace,强行去掉了部分代码文件的只读权限,并完成了需求开发。

 ▲ 本地强行设置可写权限,修改并保存文件

可以看到上图中强行设置可写的两个 C# 文件并没有进入 Pending Changelist。
P4 服务器没有记录到这两个修改状态,其他 P4 协作者更不可能「知道」。
除以上两个文件以外,小张在 Scripts 目录中,修改了若干其他代码文件。
问题来了,今天他想要提交这些被改动的文件,该怎么做?
用 P4 Reconcile

02   我不清楚我改了哪些文件

说来也怪,开发者怎么能不清楚自己修改了哪些文件呢?
实际开发时确实容易发生。某些美术工具在保存源文件时,会同时悄摸摸地改动相关的其他文件。
举个例子。
美术同学阿兰本月产出了 20 组不同尺寸的美术素材文件,交稿之际,准备提交 P4。
但她发现新增和修改的素材文件,及美术工具引发的内容修改分散在项目文件夹各处,东一个西一个,毛估一下,竟然在十几个子文件夹中都有改动。
为了防止漏提交素材文件,该怎么做?
还是用 P4 Reconcile!

怎么操作,有啥效果?

P4 Reconcile 做得足够智能,它能将新增、修改和删除的文件统统列出来,并帮助开发者放在 Pending Changelist 中。

来看下图。

    ▲ 在文件变更的最小顶级目录,执行Reconcile

    ▲ 新增、删除、修改的文件被P4 Reconcile一网打尽

当一个文件被放在 Pending Changelist 后,称之为 Opened Files,中文理解就是,文件被打开了。

而在 P4 中,只有状态为 Opened 的文件,用户才能提交至仓库。

温馨建议
虽然在 Workspace 中的每级目录都可以执行 P4 Reconcile,但从工程实践的角度,仍然给出 2 条温馨建议。

 

01    在顶层目录不执行 Reconcile

因为顶层目录执行 Reconcile 会很慢。
顶层目录包含了整个项目的大量文件,Reconcile 会去比对该范围内所有文件与 Depot 仓库中对应文件之间的差异,当文件越多,执行速度会越慢。
另外,P4V 的 GUI 需要渲染出执行结果的文件列表,文件列表过长,会直接导致 P4V 假死,影响你的办公效率。
所以,建议在顶层目录不执行 Reconcile,在包含文件较多的文件夹也不适宜执行 Reconcile。
反过来,这就要求开发者对工程路径有清晰的规划,并对修改的范围有明确的掌控力。
稀里糊涂的修改最终会导致 Reconcile 的滥用。

02    谨慎使用 Reconcile -w

这会清理所有本地变更,是真正意义上的与仓库文件「协调一致」。
执行结果将本地的修改一举清除,建议谨慎使用。
它还有个别名叫 p4 clean。该命令是 Workspace 清理专用命令。
一图看懂

P4 Reconcile 为本地不清晰的文件修改,提供了一套重新「协调」本地与仓库的解决方案。

一图胜千言,方便理解和收藏。

上硬菜↓

结语
今天的干货就到这里,希望对你有帮助。
如果你有任何 P4 的 最佳实践经验 或 疑难问题,请扫码加友与我交流,共同成长。
更多精彩,下期再会!
你好,我是向华。
前原神项目 P4 Admin,持续集成开发者,8 年游戏测试开发工程师。

Helix Core是一款高效的版本控制软件。追踪,管理并保护用户的源代码、二进制文件及其他数字资产。

最新文章

相关产品

分享到:
关于龙智

龙智DevSecOps解决方案

龙智深耕DevSecOps相关领域近十年,集成DevOps、ITSM、Agile管理思路及该领域的优秀工具,提供软件研发生命周期管理解决方案,以及实施、培训、升级、数据迁移、定制开发、运维等服务。

龙智致力于帮助企业实现软件开发运营一体化,并确保安全防护融入软件研发的整个生命周期中。龙智提供从产品规划与需求管理、开发,到测试、部署以及运维全生命周期的解决方案与管理工具,帮助企业科学、高效、安全地管理软件开发,更快、更好地交付软件产品。

近年来,龙智团队潜心开发,先后帮助金融、通信、互联网、汽车、芯片、游戏、医疗等行业的1000多家企业促进开发安全运营的一体化的实践。 秉承着打造开放式DevSecOps的理念,龙智与国外其他多家DevOps工具顶级厂商如Atlassian、Perforce、Mend(原WhiteSource)、CloudBees、SmartBear等合作,将国际市场上先进的工具引入中国市场,帮助企业打造量身定制的DevSecOps解决方案、ITSM解决方案,助力企业高效开发与运维。

我们的自研产品包括Confluence水印插件,Timewise-Jira计划及实际工时管理插件,Jira服务台企业微信应用插件等;我们还与全球DevOps领域领先的企业建立了合作伙伴关系,我们是:

· Atlassian全球白金合作伙伴

· Perforce中国授权合作伙伴

· Mend (原WhiteSource)中国授权合作伙伴

· CloudBees中国授权合作伙伴

· SmartBear中国授权合作伙伴