Perforce P4V中"Rollback ..."和"Back Out Submitted Changelist #####"之间的区别是什么?

Dav*_*sen 197 perforce p4v

我想从我的一个签到中撤消更改.在特定更改列表的右键单击上下文菜单中,有以下两个选项:

  • 回滚...
  • 退出提交的变更清单

这两者有什么区别?在什么情况下我应该使用哪一个?

rav*_*ven 222

这两个操作都将一组文件恢复到以前的状态,并且本质上是比使用p4 obliterate命令更快,更安全的撤消错误的方法(并且您不需要管理员访问权限来使用它们).

在"Rollback ..."的情况下,这可以是任意数量的文件,甚至是整个仓库.您可以告诉它回滚到特定的修订版,更改列表或标签.文件将恢复到创建该修订,更改列表或标签时的状态.

在"Back Out Submitted Changelist #####"的情况下,还原操作仅限于在changelist #####中提交的文件.如果没有对这些文件进行任何更改,那么这些文件将恢复到您提交更改列表之前的状态.如果对这些文件中的任何文件进行了后续更改,Perforce将告诉您这些文件现在已过期.您必须同步到头版本,然后解决差异.这样,您不会无意中破坏您实际想要保留的任何更改.

这两个操作基本上都是将旧版本作为新版本提交.当您执行"回滚..."时,您将文件恢复到他们在特定时间点所处的状态,无论之后发生了什么.当您执行"退出..."时,您试图撤消在特定时间点所做的更改,同时保留自此以后发生的更改.

  • 我认为**"退出已提交的更改列表#####"将**尝试**以保留在给定更改列表之后对相同文件所做的更改. (18认同)

Sma*_*key 17

撤消变更列表提交

您无法撤消成功更改列表提交,但您可以通过两种方式撤消以前提交的更改:

回滚将文件或文件集还原到指定的更改列表,日期或修订版.在该时间点之后所做的任何更改都不会保留. 退出将删除在给定更改列表,日期或修订版本中所做的特定更改,但允许用户保留在后续修订版中所做的更改.

有关详细信息,请参阅http://www.perforce.com/perforce/doc.current/manuals/p4v/Working_with_changelists.html


use*_*717 8

回退可恢复或撤消我们的更改.它这样做的方式是,P4撤消我们本地工作区上的更改列表(默认或新的)中的更改.然后,我们必须像其他更改列表一样提交/提交此备份更改列表.第二部分在这里很重要,因为它不会自动退出服务器上的更改列表,我们必须提交备份的更改列表(这在您执行之后有意义,但我最初假设它会自动执行此操作).

正如其他人所指出的,Rollback具有更强大的功能 - 它可以恢复特定日期,更改列表或修订的更改#