如何在 Perforce 中重命名一个文件,然后使用第一个文件的旧名称添加另一个文件?

How do I rename a file in Perforce, then add another file with the old name of the first file?

提问人:Dean DeRosa 提问时间:10/26/2023 更新时间:10/28/2023 访问量:17

问:

假设我有一个文件 A.txt。我想将其重命名为 B.txt。我执行

p4 add A.txt
p4 rename A.txt B.txt

我现在想在同一更改列表中添加一个新文件 A.txt。

当我执行时

p4 add A.txt

我收到错误消息

A.txt - can't add (already opened for move/delete)
A.txt - warning: add of existing file

有没有解决方法可以实现我想要的行为。否则,我将继续将 A.txt 的原始内容复制到 B.txt 并修改 A.txt。

版本控制 perforce file-rename

评论


答:

1赞 Samwise 10/28/2023 #1

Perforce 的数据模型(目前)不支持单个修订的概念,即删除文件并重新添加它(逻辑上是具有相同名称的不同文件)作为单个原子操作。修订版可以有 或 的动作(在本例中),但单个修订版不能有 ;您需要两个连续的修订版本(在两个不同的更改列表中)来表示这两个操作。adddeletemove/deletedelete, then add

如果可能的话,我建议将此操作序列拆分为两个更改列表;按照您的描述“压缩”它们将丢失 B.txt 实际上是 A.txt 的重命名变体的信息,如果您需要合并任何一个文件,您将从一个文件尝试合并到另一个文件。(如果您确定您永远不需要合并这些文件,即它们没有分支到任何地方,并且您没有其他人同时处理它们,这并不重要。