P4 intrechanges -f 输出澄清

问题描述 投票:0回答:1

执行此命令后:

p4 交换 -f“原始流”“检查 CL 的流”

输出包含不同文件的多种类型的结果: • 分支 • 整合 • 编辑 • 添加

如果您能帮助我理解它们在比较一个流的 CL 与另一个流的 CL 时的含义,我将不胜感激。

遗憾的是,该命令的官方帮助页面没有这些详细信息: https://help.perforce.com/helix-core/server-apps/cmdref/current/Content/CmdRef/p4_interchanges.html

亲切的问候, 安德烈

perforce
1个回答
0
投票

要更好地理解这个 IMO,首先要做的是查看单个文件的

p4 filelog
输出,如下所示:

C:\Perforce\test\integ\ichanges>p4 filelog foo
//stream/main/integ/ichanges/foo
... #4 change 569 edit on 2025/01/13 by Samwise@dvcs (text) 'Edit foo at line 4.'
... #3 change 568 edit on 2025/01/13 by Samwise@dvcs (text) 'Edit foo at line 3.'
... #2 change 565 edit on 2025/01/13 by Samwise@dvcs (text) 'Edit foo at line 1.'
... ... branch into //stream/main/integ/ichanges/bar#1
... #1 change 564 add on 2025/01/13 by Samwise@dvcs (text) 'Add foo with 10 lines.'

您可以看到文件的每个修订版都有一个关联的“操作”(如添加/编辑/等),用于描述文件的修改方式。 该操作为您提供了有关该修订与其他修订如何相关的更多背景信息; “编辑”始终是对现有修订的更改,而“添加”始终是创建全新文件,依此类推。 每当您打开文件时,您都会看到这些相同的操作,例如

p4 edit
打开文件进行“编辑”。

当您在两个文件(或两个流,这相当于将一个流中的每个文件集成到另一个流中的相应分支文件中)之间运行

p4 integrate
p4 merge
时,Perforce 会找出源文件的哪些修订版本需要集成到目标文件中,并使用它来设置合并,如下所示:

C:\Perforce\test\integ\ichanges>p4 merge -n foo bar
//stream/main/integ/ichanges/bar#2 - integrate from //stream/main/integ/ichanges/foo#3,#4
... must resolve content from //stream/main/integ/ichanges/foo#3,#4

在这种情况下,

foo#3
foo#4
是需要集成到
bar
中的两个修订(请注意,我们可以在
p4 filelog
输出中看到,
foo#2
是分支到
bar#1的起源) 
,因此仅需要集成该点之后的修订)。

当我们运行

p4 ichanges
时,我们只是采用这两个修订并列出相关的变更列表(568 和 569):

C:\Perforce\test\integ\ichanges>p4 ichanges foo bar
Change 568 on 2025/01/13 by Samwise@dvcs 'Edit foo at line 3.'
Change 569 on 2025/01/13 by Samwise@dvcs 'Edit foo at line 4.'

添加

-f
只是添加有关导致列出每个变更列表的软件仓库修订的信息:

C:\Perforce\test\integ\ichanges>p4 ichanges -f foo bar
Change 568 on 2025/01/13 by Samwise@dvcs 'Edit foo at line 3.'
... //stream/main/integ/ichanges/foo#3 edit
Change 569 on 2025/01/13 by Samwise@dvcs 'Edit foo at line 4.'
... //stream/main/integ/ichanges/foo#4 edit

IMO,这通常不是有用的信息(这就是默认情况下不包含它的原因),除非您尝试调试

p4 ichanges
并且大型变更列表中的哪些特定修订显示为需要集成并不是立即显而易见的。 比较集成中包含的更改的更好方法是实际打开文件进行集成,然后进行解析,这将以 3 向合并的形式向您显示更改(您始终可以在提交之前恢复更改)。

© www.soinside.com 2019 - 2024. All rights reserved.