我正在使用Perforce P4V客户端(版本2013.1/611291,日期为2013年3月20日).
我试图从主分支合并/集成到我的功能分支.自从我这么做以来已经很长时间了,因此大量的文件被添加到更改列表中.然后我解决了无法自动合并的冲突文件.然后我提交了变更清单.在这之后,我发现一些文件仍处于混乱的冲突状态.究竟为什么对我来说是一个谜,但我没有尝试修复它们,我认为完全撤消Merge/Integrate并重新开始会更容易.
要撤消合并/集成,我使用了"退出"选项.所有受影响的文件都被添加到"退出"更改列表中,然后我提交了它.我的功能分支现在又回到了它的开始状态,除了显然现在所有受影响的文件都将其修订版号增加了两倍,受影响文件的历史记录显示了集成,然后是后续"退出".
问题是如果我再次尝试Merge/Integrate选项,那么Perforce想要放入集成更改列表的文件数量现在只是它最初尝试集成的一小部分.换句话说,它并没有添加大量的文件,我知道这些文件在主分支的开发方面肯定是进一步向前发展的.
我似乎能够解决这个问题的唯一方法是使用高级选项Force integration on all revisions, disregarding revision history (-f).设置此选项后,它将添加以合并分支中的所有文件.
我怀疑问题与文件现在在其历史记录中标记了集成这一事实有关,因此Perforce使用该点作为基础.混乱的整合被"退出"的事实对此没有任何影响.
我也试图做回滚,但同样的问题仍然存在.
我怎么解决这个问题?
编辑 我后来意识到存在以下类似问题: 如何在Perforce中撤消集成,并且仍然能够重做它?
正如你已经提到的那样,摆脱这种情况的唯一方法就是使用the运行强制集成-i.您仍然可以使用p4 resolve -as ...和p4 resolve -am ...上次解决更改,然后手动解决剩余的冲突以执行合并.除了历史记录将显示在先前的合并提交中更改的2个额外版本的文件以及用于将其备份的提交.
与其他版本控制系统(git例如)不同,遗憾的是不可能在perforce中重写历史记录,使其忘记集成历史记录并重新开始.
这是我公司的原因之一,所有架构师和SCM都非常挑剔并重申他们的工作流建议,关于在执行集成时严格遵循分支之间的集成路径perforce.