【问题标题】:Perforce: Integrating multiple changelists which contain same files with different revisions to branchPerforce:将包含具有不同修订版本的相同文件的多个更改列表集成到分支
【发布时间】:2014-11-14 10:29:02
【问题描述】:

共有 10 个变更列表 10006、10009、... 10089 属于分支 1 中的一个新特性,我想将该特性合并到分支 2 中。

如下所示,许多更改列表包含具有不同修订版本的相同文件。

更改列表 10006 包含文件:ClosedLoop.cs(#5)、C(#2)、D.cpp(#2) , K(#3)
更改列表 10009 包含文件:D.cpp(#7)、E(#6)、H(#2)、M(#5)、Z(#2)
...
changelist10089 包含文件:ClosedLoop.cs(#8), U(#7), I(#9)

我选择所有 10 个更改列表进行合并,因为每个列表都包含一些独特的文件。 (如10006中的文件C和K,10089中的文件U和I)

问题
Perforce 使用旧版本(ClosedLoop.cs rev. 5)而不是新版本(ClosedLoop.cs rev. 8)进行合并。 Perforce 同时使用 ClosedLoop.cs 修订版 5 和 8 进行合并,而不仅仅是最新版本(修订版 8)

详情
我按照步骤在视频中的分支之间合并文件 (https://www.youtube.com/watch?v=6hCPZPl68ng)。
在合并/集成对话框中,我执行以下步骤:
1. 选择“过滤器”标签
2.勾选“选定的chagelists”
3. 从列表中检查多个更改列表。选定的更改列表包含具有不同修订的相同文件。 如下所示, changelist 10006 包含修订版 5 中的 ClosedLoop.cs,而 changelist 10089 包含修订版 8 中的相同文件

  1. 点击预览按钮,显示

  1. 单击合并按钮
问题是 **Perforce 使用较旧的修订版(修订版 5)进行合并,而不是较新的修订版(修订版 8)**,如下所示。
**如下图所示,Perforce** **不允许我在下面的 Resolve 对话框中选择修订版 8 进行合并**。

Perforce 使用 ClosedLoop.cs 修订版 5 和 8 进行合并。

【问题讨论】:

  • 如果您不想集成来自 ClosedLoop#5 的更改,为什么选择更改列表 10006 进行集成?您只需按顺序解决这两个更改:首先合并来自 ClosedLoop#5 的更改,然后合并来自 ClosedLoop#8 的更改。
  • 我在帖子开头添加了选择两个更改列表的意图。
  • 我认为你的步骤是正确的;也许您只是对这些消息感到困惑。您是否尝试过通过合并工具查看更改是如何合并的?它应该同时包含修订版#5 和#8,因为您指定这两个更改列表都具有与您的功能相关的更改,并且应该合并到目标分支。根据您的意图,我认为一切正常。
  • 记住:通过合并工具并解决您的更改后,如果您不喜欢结果,您可以恢复打开的文件并重新开始。在您提交之前,关于合并的任何内容都不是永久性的。
  • 我验证它包含用于合并的修订版#5 和#8。虽然我认为它应该只包含最新版本(#8),但它可以接受。

标签: perforce p4v


【解决方案1】:

通过单独指定每个更改列表,您将为每个更改列表设置合并,该更改列表将仅包含该更改列表中的特定更改。为 #5 和 #8 安排了单独的合并,因为每个合并只会带来在该特定修订中所做的更改——所以如果你要跳过 #5 合并而只执行 #8 合并,你将不会得到在 #5 中所做的更改(即使这些更改存在于内容 #8 中,如果您指定只需要 #8,合并将尝试排除它们,就像它将排除 #6 和 #7 一样)。

您可能想要做的是完全按照 Perforce 为您设置的操作——先合并 #5,然后再合并 #8。每次合并都会将一个更改列表的编辑值带入目标文件,一旦您完成了这两个更改,您将拥有这两个更改列表,但没有中间的。

这篇知识库文章介绍了这种“樱桃采摘”合并的机制:http://answers.perforce.com/articles/KB_Article/Cherry-Picking-Integrations

如果您不想对每个文件进行多次合并,则可以通过指定范围将所有内容作为单个集成进行,例如:

p4 整合 branch1/...@10006,10089 branch2/...

当然,这将包括 branch1 上该范围内的所有更改列表。进行单独的樱桃采摘合并(这是您已经设置的)是获得这些特定更改的唯一方法,仅此而已。

【讨论】:

  • 您的链接已损坏。
  • 如果你想在 Perforce 上查找 2016 年之前的文档(新所有者从旧网站上删除了很多东西),Wayback Machine 是一个有用的资源:@​​987654322@跨度>
猜你喜欢
  • 2010-11-07
  • 1970-01-01
  • 2011-11-20
  • 1970-01-01
  • 1970-01-01
  • 2020-01-26
  • 2016-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多