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

我希望由于该开发人员在文件a,b和c中分别更改了五行,所以当我从HEAD集成到STABLE分支时,我会在待处理的changset中得到他的更改,然后我可以进行检查然后提交。

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

换句话说,在perforce变更集中,似乎没有记录,我的同事实际发生了什么变化,与以前包含的文件没有变化。

如果我浏览提交的变更集,则可以看到我的同事的文件版本与前一个版本之间的区别。但这似乎并不能确定合并中要包含的内容。

变更集是否意味着“在文件的修订版X和修订版X + 1之间进行的一组更改”? 有人可以帮助我理解“集成变更集”的事实,而实际上Perforce不会跟踪变更,而是跟踪文件。

我完全有可能做错所有事情,并且希望获得任何指示,这是关于如何可以在Perforce工作分支和稳定分支之间准确而安全地合并,而又不需要您不想得到的东西集成到稳定的分支中,然后进行集成。看来,无论产品中实际进行的更改多么简单,合并实际上对我来说都不起作用。

有帮助吗?

解决方案

Perforce 将更改保存为 text 文件(增量文件(二进制文件在每次提交更改后全部保存))。听起来好像您在集成过程中没有适当地限制修订范围。

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

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

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

“替代文本”

其他提示

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top