perforce - 有没有一种方法可以一步交换文件并在 perforce 中保存历史记录?

标签 perforce

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

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

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

最佳答案

如果您希望每个文件的“身份”跟随它成为新名称(例如当您从其他分支合并时,您希望根据新名称重新映射合并,而不是转到旧名称。

但是,如果您的首要任务是在单个更改列表中发生这种情况,并且您不太关心历史记录是否保留了哪个文件是哪个概念,我会这样做:

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

这将使您在修订图中得到一个漂亮整洁的小 X(我怀疑这是您想要的),但不是真正的重命名。

无论哪种方式,合并到其他分支/从其他分支合并都会有点棘手;如果您使用真正的重命名选项,当您将重命名合并到其他分支时,您需要逐个更改以重复重命名为中间内容然后返回的过程(因为目标分支将具有相同的约束条件,即不被能够重命名到本身已经开放重命名的东西上)。如果选择复制选项,则需要根据每个分支所处的状态以及是否存在需要实际合并的未完成更改来手动指定要合并到哪个文件。

关于perforce - 有没有一种方法可以一步交换文件并在 perforce 中保存历史记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36190754/

相关文章:

encoding - Perforce 和 Jenkins 更改注释编码被破坏

maven - 将 Perforce scm 配置到 Maven 项目中以获取最新的更改列表

merge - 如何在 Perforce 中找出一个变更列表的原始来源

perforce - 从 Perforce 中排除目录

c# - Perforce .net API 直接从服务器/连接超时下载文件

branch - 我可以根据历史时间点在 Perforce 中创建分支吗?

强制备份问题

Perforce RCS 关键字扩展

ios - Perforce 搁置 .strings 文件会更改编码

character-encoding - Perforce 可以区分具有不同编码的文件的两个版本吗?