【发布时间】:2011-03-03 20:08:53
【问题描述】:
我有一个问题,在重构尝试中,我将文件从一个地方复制到另一个地方并将它们添加到我的 scm (perforce) 中。当我完成并且一切正常时,我删除了旧的(移动的)文件。
我可以将文件历史相互关联吗?最好的办法是按照本应完成的方式进行“移动”..
感谢您的帮助!
【问题讨论】:
我有一个问题,在重构尝试中,我将文件从一个地方复制到另一个地方并将它们添加到我的 scm (perforce) 中。当我完成并且一切正常时,我删除了旧的(移动的)文件。
我可以将文件历史相互关联吗?最好的办法是按照本应完成的方式进行“移动”..
感谢您的帮助!
【问题讨论】:
假设您的原始文件是//source/old/file.c#5,并且您将其移至//source/new/file.c,然后删除了修订版//source/old/file.c#6 中的旧文件。您需要使用 -i 标志从旧文件集成到新文件,这样 Perforce 将允许您在它不知道集成历史记录的两个文件之间进行集成:
p4 integrate -i //source/old/file.c#5 //source/new/file.c
然后解析文件。通常在集成时你会想要接受文件的合并版本,但在这种情况下,你最感兴趣的是让 Perforce 知道你已经完成了集成,所以你可以使用 -ay 来“接受你的”,丢弃旧版本的文件:
p4 resolve -ay //source/new/file.c
然后提交修改。
(理想情况下,您应该先集成,然后进行任何更改,然后提交所有内容,但这样文件将在 Perforce 的集成历史记录中链接。)
【讨论】: