假设我在P4中有一个文件foo.c,树的顶部是foo.c#8。
出于某种原因,我想将foo.c#4移为foo.c#9(实际上是将版本4移到树的顶部)。
一种方法是手动执行此操作(同步版本4,进行复制,然后同步到树顶,编辑并复制4,然后重新提交)。
有没有更优雅的方式将foo.c#4推到树顶?
答案 0 :(得分:4)
您想要撤消#5至#head修订的声音:
p4 undo foo.c#5,#head
p4 submit
或者,如果您愿意,则要撤消所有高于#4的修订:
p4 undo "foo.c#>4"
p4 submit
或者,即使您有更高的修订版,如果您只想撤消#5至#8,也可以:
p4 undo foo.c#5,#8
p4 submit
如果有更高版本,则最后一个变体将需要sync
/ resolve
解决冲突的步骤(因此您可以在更高版本中合并,而忽略#5至#8)。
如果您使用的服务器版本已有几年历史,则可以尝试p4 copy
:
p4 copy foo.c#4 foo.c
p4 submit
如果您使用的服务器版本早于此版本,这是通过常规的旧p4 sync
执行此操作的最优雅的方法:
p4 sync foo.c#4
p4 edit foo.c
p4 sync foo.c#head
p4 resolve -ay
p4 submit
请注意,类似于undo
的示例,您可以选择将sync foo.c#head
转换为sync
和resolve -ay
的中间版本,然后选择sync
和resolve -am
以后的版本,如果您想构建一个在保留更高版本的同时“撤消”某些更改的修订。
这是使用p4 print
进行操作的一种方法(简单情况下的命令较少,但IMO不太优雅,因为它无法扩展到更复杂的用例):
p4 edit foo.c
p4 print -o foo.c foo.c#4
p4 submit