我在perforce中有一个糟糕的集成更改列表。我想支持它,并且更仔细地重做(并且可能以更小的增量)。
我使用Perforce的rollback
命令恢复到以前版本的文件,但是当我尝试重做集成时,Perforce声称没有什么可做的。显然,回滚只是简单地还原文件,但对相关的集成相关元数据没有任何作用。因此,当我尝试重新集成时,Perforce认为“您之前已经集成了两个版本 - 现在无需做任何事情”。
有什么方法可以撤消涉及集成的更改列表,并让软件仓库处于我可以实际再次进行集成的状态吗?
这是一个大项目,整合超过2,000个文件,所以我真的不想被卡住这样做。
答案 0 :(得分:34)
如您所见,回滚更改列表不会“撤消”集成。在perfroce数据库中进行集成后,集成记录将一劳永逸地存储。
如果你想进行整合,你可以。您可以使用命令行中的“-f”标志强制进行集成,而不考虑先前的集成历史记录。实际上,使用此标志将开始集成。如果您使用的是p4v,则在集成对话框中的“高级选项”下会有一个执行相同操作的选项。
如果您只想重新集成某个修订版本范围(即从特定日期开始),请确保同时指定该版本范围。否则,如果你要重做所有的集成,你应该很高兴。集成上的帮助文件确实表明使用没有修订版本范围的-f会强制p4解析执行没有公共基础的合并,因此也要注意这一点。如果您从源文件的所有修订版开始完全集成,那么我认为这个警告将不适用。
HTH。
答案 1 :(得分:2)
一种可能性(虽然不推荐)是“p4删除”集成文件的头部修订版(目标文件)。在随后的更改中,文件尚未被修改,这一点至关重要。
只有拥有相应权限的perforce用户(我认为超级)才能做到这一点。
由于这会删除集成的所有痕迹(包括差异,历史记录,所有元数据),因此不建议这样做。它无法撤消。
为了完整起见,我在这里提到了这一点。如果您认为自己需要这个,请小心不要犯错误。
答案 2 :(得分:1)
我建议您将强制集成简化为特定集成中包含的文件列表
p4描述[ChangeList] | grep" ^ \。\。\。"
否则你可能会影响到比预期更多的文件(任何因提交而改变的文件)或意外地在更广泛的范围内行动。