假设我有一个文件 A.txt。我想将其重命名为B.txt。我执行
p4 add A.txt
p4 rename A.txt B.txt
我现在想在同一个变更列表中添加一个new文件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 的数据模型(当前)不支持将删除文件和重新添加文件(逻辑上具有相同名称的不同文件)作为单个原子操作的单个修订的概念。修订版可以具有
add
或 delete
(在本例中为 move/delete
)的操作,但单个修订版不能具有 delete, then add
的操作;您需要两个连续的修订(在两个不同的变更列表中)来表示这两个操作。
如果可能的话,我建议将这一系列操作分成两个变更列表;正如您所描述的那样“挤压”它们将丢失 B.txt 实际上是 A.txt 的重命名变体的信息,并且如果您需要合并任一文件,您将在尝试合并到另一个文件时进行更改。 (如果您确定永远不需要合并这些文件,即它们没有分支到任何地方,并且没有其他人同时处理它们,那么这并不重要。)