2

我试图将开发人员在工作分支中所做的一些工作合并到一个稳定的分支中。自从 STABLE 和 HEAD 分支的共同祖先分离以来,文件 a、b 和 c 已被至少十几个变更集更改。

我希望由于该开发人员在文件 a、b 和 c 中分别更改了 5 行,因此当我从 HEAD 集成到 STABLE 分支时,我会在待处理的 changset 中获得他的更改,然后我可以查看并提交这些更改。

相反,它似乎已经对文件 A 进行了所有更改,因为这两个文件是分支的,并应用了我同事的工作副本中也存在的所有这些更改。

换句话说,perforce 变更集中似乎没有记录我的同事实际更改的内容,以及之前包含的文件。

如果我浏览提交的变更集,我可以看到我同事的文件版本与前一个版本之间的差异。但是,这似乎并不能决定合并的内容。

变更集不是意味着“在文件的修订版 X 和修订版 X+1 之间进行的一组更改”吗?任何人都可以帮助我理解“集成变更集”的含义,而实际上,Perforce 似乎不跟踪更改,它跟踪文件。

完全有可能我做错了所有事情,并且希望任何关于如何在 Perforce 工作分支和稳定分支之间准确安全地合并的指针,没有你不想集成到的东西稳定的分支正在整合。似乎无论在产品中实际进行的更改多么简单,合并实际上对我都不起作用。

4

2 回答 2

1

Perforce确实文本文件的更改保存为增量(每次提交更改时,二进制文件都会完整保存)。听起来您在集成期间没有正确限制修订范围。

你说工作分支已经“......自从......分支被分开以来,至少已经改变了十几个变更集。” 我们称它们为变更列表 1-12。如果我对您的理解正确,您正在尝试将所做的修改仅集成在其中一个更改列表中,而不是所有更改列表中。

在一个简单的集成操作期间,Perforce 将假定您想要集成自创建分支以来已提交的所有更改。如果您只想要这些更改的子集,则必须指定修订范围。因此,如果您只想集成更改列表 11 和 12 之间发生的更改,您可以指定该修订范围,如屏幕截图中所示。(注意:修订范围包括在内,因此指定范围为 11-12,就像我在此屏幕截图中所做的那样,实际上将包括更改列表 1112 中的更改。如果您只想集成更改列表 12 中所做的更改,请输入 12在修订范围的两个字段中。)

请注意,不可避免的冲突可能难以解决,这取决于分支的分歧程度和变化的性质。

替代文字

于 2010-11-29T21:34:18.200 回答
0

您能否更具体地说明您是如何进行集成的?我的猜测是,您可能已经将所有更改集成到该更改列表中,而不仅仅是该更改列表。如果是这样,您需要做的就是指定相同的更改列表作为集成的上限和下限。

在可视化客户端中很容易做到,但我不确定您需要使用的确切命令行开关。

于 2010-11-24T22:48:49.400 回答