我在perforce中有一个糟糕的集成更改列表。我想收回它,并更仔细地重做(可能是以较小的增量)。
我使用Perforce的rollback命令恢复到以前版本的文件,但当我尝试重做集成时,Perforce声称没有什么可做的。显然,rollback只是还原文件,但不会对关联的集成相关元数据执行任何操作。因此,当我尝试重新集成时,Perforce认为“你已经集成了两个版本--现在没有什么可做的”。
有没有什么办法可以撤销涉及集成的更改列表,并将仓库留在可以重新进行集成的状态?
这是一个很大的项目,集成超过2,000个文件,所以我真的不想被困在手动做这件事上。
发布于 2011-03-05 03:43:24
正如您所看到的,回滚更改列表不会“撤销”集成。在perfroce数据库中发生集成之后,集成记录将被一次性存储。
如果你想重新做一次集成,你可以。您可以从命令行使用'-f‘标志来强制集成,而不考虑以前的集成历史。从本质上讲,使用此标志将开始您的集成。如果您使用的是p4v,在集成对话框中的“高级选项”下有一个执行相同操作的选项。
如果您只想重新集成某个修订范围(即从特定日期开始),请确保您也指定了该范围。否则,如果你要重做所有的集成,你应该可以正常工作了。integrate上帮助文件指出,没有修订范围的-f的使用将强制p4解析器在没有公共基础的情况下执行合并,因此也要注意这一点。如果你是从源文件的所有修订版完全集成开始的,那么我认为这个警告将不适用。
HTH。
发布于 2012-11-08 22:41:20
一种可能性(尽管不推荐)是"p4擦除“集成文件(即目标文件)的头修订。重要的是,这些文件在随后的更改中还没有被修改。
只有具有适当权限(我认为是超级)的perforce用户才能这样做。
由于这会删除集成的所有痕迹(包括差异、历史记录、所有元数据),因此不建议这样做。这是无法撤销的。
我只是为了完整性而在这里提到这一点。如果你认为你需要这样做,要非常小心,不要犯错。
发布于 2014-06-09 23:46:10
我建议您将强制集成磨练为仅包含在特定集成中的文件列表
p4 describe ChangeList | grep "^...“
否则,您可能会影响比预期更多的文件(提交后已更改的任何文件),或者意外地在更大范围内执行操作。
https://stackoverflow.com/questions/5198180
复制相似问题