【发布时间】: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 中的相同文件。
- 点击预览按钮,显示
- 单击合并按钮
**如下图所示,Perforce** **不允许我在下面的 Resolve 对话框中选择修订版 8 进行合并**。
Perforce 使用 ClosedLoop.cs 修订版 5 和 8 进行合并。
【问题讨论】:
-
如果您不想集成来自 ClosedLoop#5 的更改,为什么选择更改列表 10006 进行集成?您只需按顺序解决这两个更改:首先合并来自 ClosedLoop#5 的更改,然后合并来自 ClosedLoop#8 的更改。
-
我在帖子开头添加了选择两个更改列表的意图。
-
我认为你的步骤是正确的;也许您只是对这些消息感到困惑。您是否尝试过通过合并工具查看更改是如何合并的?它应该同时包含修订版#5 和#8,因为您指定这两个更改列表都具有与您的功能相关的更改,并且应该合并到目标分支。根据您的意图,我认为一切正常。
-
记住:通过合并工具并解决您的更改后,如果您不喜欢结果,您可以恢复打开的文件并重新开始。在您提交之前,关于合并的任何内容都不是永久性的。
-
我验证它包含用于合并的修订版#5 和#8。虽然我认为它应该只包含最新版本(#8),但它可以接受。