有没有办法在一个步骤中交换文件,并保留perforce中的历史记录?

时间:2016-03-23 23:38:17

标签: perforce

我有一些文件,例如upgrade01.xupgrade02.x,其中名称定义了一些顺序。由于外部约束,我必须使用这个命名约定,但我想要交换它们,01变为02,02变为01.我尝试将update01.x重命名为临时名称(不提交),然后尝试更改{{1成为update02.x但是perforce不允许我这样做。

我可以将重命名提交给临时的,然后将其重命名为另一个,然后重命名temp,但这是一个怪物的痛苦。此外,历史看起来很奇怪(但这可能是不可避免的)。

有没有办法在一次合理的操作中做到这一点?

1 个答案:

答案 0 :(得分:2)

如果您希望每个文件的“标识”跟随新名称,则可以分两步重命名(将两者都重命名为中间名,然后再重命名为另一名),这可能是首选选项(例如,当您从其他分支合并时,您希望根据新名称重新映射合并,而不是转到旧名称。

如果您的优先权是在一个更改列表中发生这种情况,并且您并不关心历史记录是否保留了哪个文件的概念,我会这样做:

p4 copy upgrade01.x upgrade02.x
p4 copy upgrade02.x upgrade01.x
p4 submit

这会让你在修订图中得到一个漂亮的小X(我怀疑你想要它),但不是真正的重命名。

与其他分支机构合并将无论如何都会有点棘手;如果你去了真正的重命名选项,当你将重命名合并到其他分支时,你需要通过改变来改变以重复重命名为中间然后返回的过程(因为目标分支将具有相同的约束条件)能够重命名为已经打开重命名的东西)。如果您选择复制选项,则需要手动指定要合并到哪个文件,具体取决于每个分支所处的状态以及是否存在需要实际合并的未完成更改。