Perforce - "rebase" 之前的提交

Perforce - "rebase" a previous submission

因此,前一段时间,我 p4 提交了一些更改。然后我意识到现在还不是时候这样做。所以我立即提交了另一个与更改 1 相反的提交。我使用了 [=13= 中的“使用添加和删除以及编辑备份旧的更改列表”]中描述的方法]

现在是更改 1 的正确时机,它应该基本上 "rebased" 从那时起所做的所有更改之上,就好像它是一个新的提交。

$ p4 changes -m 5 ...
Change 5 on 2015/02/16 by person1 'message'
Change 4 on 2015/02/16 by person2 'message'
Change 3 on 2015/02/16 by person3 'message'
Change 2 on 2015/02/12 by me 'Undo the previous submission'
Change 1 on 2015/02/12 by me 'submission'

查看文档,我不清楚如何执行此操作。我尝试这样做:

$ p4 submit -c 1
Change 1 is already committed.

有什么建议吗?

遵循相同的 "back out" 步骤,但这次取消更改 2:

  1. 同步更改 1
  2. 打开
  3. 同步更改 2
  4. 忽略
  5. 同步后续更改
  6. 合并

合并结果将包含从 1 开始的更改以及后续更改,您可以提交了。

Perforce 没有撤销更改的特殊概念。当您退出更改 N 时,您实际上只是在提交一个新的更改,它是 N 的倒数。 (也就是说,它删除更改 N 添加的行,添加更改 N 删除的行,等等)

假设您提交的更改 B 取消了更改 N。如果您稍后想重新应用更改 N,您应该取消更改 B:您正在应用反向更改的反向更改以获取回到原来的。