【发布时间】:2010-09-12 00:40:40
【问题描述】:
我有一个需要移动的文件,该文件已被强制执行。一旦移动它需要一些编辑 - 更新包等 - 适合其新位置。我应该提交移动更改规范,然后重新打开它进行编辑,还是我可以一次性完成?如果是,那么适当的事件顺序是什么?
【问题讨论】:
我有一个需要移动的文件,该文件已被强制执行。一旦移动它需要一些编辑 - 更新包等 - 适合其新位置。我应该提交移动更改规范,然后重新打开它进行编辑,还是我可以一次性完成?如果是,那么适当的事件顺序是什么?
【问题讨论】:
我以前曾一次性完成过此操作,但根据您的构建过程,我建议您不要这样做。我一般是这样的:
但是,如果您愿意,您可以在上面的步骤 (2) 中进行所有更改。 Perforce 可能会将新文件的标志从集成更改为添加,但它仍会记住文件的源路径。
编辑:更好的方法
我意识到我经常使用不同的方法,但“移动”文件的想法让我分心。所以,我会推荐这些步骤:
此方法允许将编辑与重命名/移动完全分开,同时不会使项目处于无法编译的状态。
另外,为什么要等待第 6 步?有时,尤其是在较大的项目中,您可能想要移动另一个人正在编辑的文件。 Perforce 会告诉你这一点。通过等待删除文件,您允许您的同事完成编辑并提交,而无需手动移动他们的工作。修改提交后,可以将其整合到新文件中,然后可以安全删除旧文件。
【讨论】:
p4 move 基本上是 p4 integrate 和 p4 delete 的组合。
提交移动更改,然后重新打开以进行编辑(您也可以使用重新打开选项)。 这在更改历史记录中对用户来说更具可读性。
此外,最新版本的 Perforce 会在解析后检查文件的更改。因此,在完成某些解析操作后,可能会出现对编辑文件的投诉。
【讨论】:
我会说总是先提交然后编辑。它更干净,使您的存储库中发生的事情更加明显。然后只需在新位置签出文件并进行任何更改。这也使得更改是在新位置中进行的并且在重命名后可以正常工作的情况更加明显。
【讨论】:
是的,你可以。只需重新打开以编辑分支文件(即新文件)。在 P4Win 中,有一个用于此的上下文菜单(“重新打开以进行编辑”)。
【讨论】:
“安全”可能是这里的一个重点。一旦你重命名或移动文件,它会得到一个修订号“1”,这对于你的 Perforce 客户端来说就像一个新文件。当然,管理员将能够获取其以前的历史记录,但如果文件的编辑/版本历史记录对您很重要,那么获取旧版本会有点困难。
更新:感谢 Commodore Jaeger 和 Greg Whitfield 对 cmets 的启发。
即使在 Perforce 支持下,也很难追查到 One True Answer 是什么,所以我想我会向大家更新我们的发现:
<text> 或 <ktext> 类型,那么它会将一个文件版本的差异存储到另一个文件而不是整个文件。p4 filelog -i 访问任何以前的修订版(甚至恢复“已删除”文件)
根据 Perforce 的支持,通过分支或文件夹移动更轻松地跟踪修订历史是一项经常被请求的功能,并且在他们当前的路线图中。
Perforce 的回答:目前,没有办法移动/重命名/集成文件并仍然保持准确的文件历史记录。
但是,如果您通过右键单击要共享的文件夹来选择“集成...”,则新分支文件夹和基础文件的文件版本将从修订 #1 开始,但是分支文件夹与底层文件和原始文件夹与底层文件之间的集成历史将保留,您可以通过它跟踪文件的修订历史。
【讨论】: