翻译P4V官方教程(5)Resolving Conflicts in P4V

本文介绍了在并行开发环境中如何使用Perforce的P4V工具进行文件冲突管理和二进制文件锁定。通过Merge功能,详细解释了AcceptSource、AcceptTarget和AcceptMerged选项,以及如何使用P4Merge进行手动合并。对于二进制文件,建议使用Checkout时的文件锁定,以防止编辑冲突。整个过程涵盖了从检查文件状态、编辑、合并、解决冲突到提交的完整步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

冲突

并行开发意味着多人可以同时处理同一个文件:
在这里插入图片描述

这可以使团队工作流程更高效,但如果两个用户更改同一个文件,或者您编辑的文件版本不是最新版本,则可能会出现冲突。

P4V 提供了一些用于管理这些冲突的功能和工具。

对于文本文件,首选是 Checkout 然后编辑您的文件,之后根据需要将更改 合并(Merge) 到更新的版本中。对于共享的二进制文件(如 Office 文档、图像和其他多媒体),在 Checkout 时锁定文件是最好的。

Merge

让我们先来看看使用 P4V 的 Merge。在开始任何工作之前,您可以通过查看图标来查看文件的状态。文件上的蓝色复选标记表示它已被其他用户签出:
在这里插入图片描述

鼠标悬停会显示 Joe Coder 现在有这个文件:
在这里插入图片描述

我们需要对 EBolt.java 进行一些更改,因此我们将其拖放到 Pending Changelist 窗格中。红色勾号显示我们现在已检出此文件:
在这里插入图片描述

而其他用户会看到 EBolt.java 上的蓝色勾号,这样他们就知道我们正在处理该文件。

我们打开文件进行编辑,然后保存。

现在我们准备提交我们的更改,但我们从黄色三角形可以知道有一些签入,我们的文件现在已经过时了。
在这里插入图片描述
我们需要将我们的工作区更新到最新版本,因此我们选择 EBolt.java 进行右键 Get Latest Revision
在这里插入图片描述
文件上的问号表示我们有冲突
在这里插入图片描述
在解决冲突之前,我们不允许提交此文件,因此我们右键选择 Resolve
在这里插入图片描述
随后会出现 Resolve 对话框,我们会看到一些选项。
在这里插入图片描述

  • Accept Source 意味着从库中获取新文件并放弃您的更改。
  • Accept target 则相反。当您执行提交时,它将用您的文件替换当前库中的文件。
  • Accept Merged 意思是,如果没有逐行的冲突, 文件将自动合并在一起。
  • 而这里,我们将选择 Run Merge Tool 来手动执行合并。

下图是 P4Merge,它是 P4V 内置的三窗口型合并工具。在中间窗口中,我们可以看到我们 checkout 的原始文件称为“base”。左侧是与我们的“source”冲突的更改,右侧是我们输入的更改“target”。所有三个选项都显示在下方的编辑窗口中。
在这里插入图片描述
假设,最佳选项是我们的编辑,那么就可以选择其对应的符号:
在这里插入图片描述
我们还可以通过编辑窗口,来进行完全不同的修改:
在这里插入图片描述
合并完成后,保存文件并关闭合并工具。
在这里插入图片描述
随后将出现一个验证对话框,以确保我们要将新的合并文件保存在原始编辑之上。
在这里插入图片描述

当我们选择 “Yes” 时,本地工作区中的合并操作就完成了,文件已准备好提交到 depot。

接下来,我们右键单击以打开 Submit 对话框,输入简短的更改列表描述,然后点击提交按钮。
现在,最新版本的 EBolt.java 与之前提交的所有版本一起在 depot 中。

锁定

对于 Office 文档、图形、音频和视频等二进制文件,在 checkout 时锁定文件会让编辑更容易。 这可以防止其他人在您完成之前提交更改。 文件锁定很容易使用,checkout 文件后,它会出现在 Pending Changelist 中,并带有平常的红色勾号。现在右键单击文件并选择Lock或使用 Cntl-L 快捷方式。
在这里插入图片描述

其他用户现在将看到蓝色勾号和锁定图标,这样他们就知道您已将其checkout 。
在这里插入图片描述

最好的做法是,仅将其用于无法合并在一起的二进制文件,例如 Office 文档和媒体文件,例如图形、音频和视频。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值