我可以在perforce中安全地编辑重命名的文件

时间:2008-09-22 14:41:21

标签: version-control perforce

我有一个我需要移动的文件已经在perforce下。一旦移动它需要一些编辑 - 更新包等 - 适合其新位置。我应该提交移动变更规格然后重新打开以进行编辑,还是我可以一次性完成此操作?如果是,那么适当的事件顺序是什么?

5 个答案:

答案 0 :(得分:7)

我之前一次性完成了这项工作,但根据您的构建过程,我建议您不要这样做。我通常做的是:

  1. 移动文件。
  2. 如果移动需要更改才能进行编译,请将其打开以进行编辑并进行更改。
  3. 提交更改,告知perforce重新打开文件进行编辑。
  4. 对路径等进行更改,这些更改不会导致编译错误,但应进行更新。
  5. 使用适当的说明提交这些更改。
  6. 但是,如果您愿意,可以在上面的步骤(2)中进行所有更改。 Perforce可能会将新文件的标志从集成更改为添加,但它仍会记住该文件的源路径。

    编辑:更好的方法

    我意识到我经常使用不同的方法,但“移动”文件的想法分散了我的注意力。所以,我建议改为采用这些步骤:

    1. 将文件集成到新路径/名称中,将前一个文件保留在那里。我假设这不会破坏你的构建过程。
    2. 提交新文件,在提交后再次检查以进行编辑。
    3. 对新文件和项目进行必要的更改,以便您使用新文件。
    4. 提交新文件的修改。
    5. [可选]您可能需要检查分支规范,看看是否需要将旧文件映射到任何分支中的新文件。
    6. 创建一个删除旧文件的更改列表,稍后再提交。
    7. 此方法允许将编辑与重命名/移动完全分离,同时永远不会使项目处于无法编译的状态。

      另外,为什么要等第6步?有时,特别是在较大的项目中,您可能希望移动另一个人正在编辑的文件。 Perforce会帮助你解决这个问题。通过等待删除文件,您允许您的同事完成编辑并提交,而无需手动移动他们的工作。提交编辑后,可以将它们集成到新文件中,然后可以安全地删除旧文件。

答案 1 :(得分:2)

提交移动更改,然后重新打开以进行编辑(您也可以使用重新打开选项)。 这在更改历史记录中对用户更具可读性。

此外,Perforce的最新版本会在解决后执行对文件更改的检查。因此,在完成某些解析操作后,可能会有投诉编辑文件。

答案 2 :(得分:1)

我会说首先提交然后编辑。它更清晰,更清楚地表明您的存储库中发生了什么。然后只需在新位置签出文件并进行任何更改。这也使得在新位置进行更改以及重命名后所有更改都更加明显。

答案 3 :(得分:0)

“安全”可能是重要的一点。重命名或移动文件后,它将获得修订号“1”,它看起来像是Perforce客户端的新文件。当然,管理员将能够获得其先前的历史记录,但如果文件的编辑/版本历史对您来说很重要,那么获取旧版本会更难。

更新:感谢Jaeger和Greg Whitfield准将发表评论。

即使是Perforce的支持,也很容易追查One True Answer的内容,所以我想我会更新所有人的内容:

  • Perforce将每个文档的所有版本存储在其数据库中。
  • 如果它将您的文件保存为“”或“”类型,则它会将一个文件版本的差异存储到另一个文件,而不是整个文件。
  • 如果您签出文件,不对其进行任何更改,然后重新提交,它将另存为0差异的新版本。这是可配置的,P4可以设置为忽略更改列表项而不会有任何实际的差异。您可以在提交更改列表之前选择“还原未更改的文件...”来强制执行此操作。
  • 使用“重命名/移动...”在P4中移动文件,以便跟踪它们。不要使用Windows资源管理器复制它们,然后在P4中重新添加它们。
  • 如果您使用上下文菜单中的“重命名/移动...”功能,“新”文件将显示修订号“1”,就像它是一个新文件一样。
  • 但是,由于P4保存了对文件执行的所有功能,因此您可以使用CLI命令“p4 filelog -i”
  • 实际获取任何先前版本(甚至恢复“已删除”文件)
  • 如果您想要获取已移动或重命名的文件的修订历史记录并且您不是管理员,则可以右键单击并选择其“修订图”,即使在分支之间移动,也会显示文件的每个版本

根据Perforce的支持,通过分支或文件夹移动更容易跟踪修订历史记录是一项经常被请求的功能,并且在他们当前的路线图中。

Perforce的回答:目前,没有办法移动/重命名/集成文件,仍然保持确切的文件历史记录。

但是,如果您通过右键单击要共享的文件夹来选择“集成...”,则新分支的文件夹和基础文件的文件版本将从修订版#1开始,但是将保留分支文件夹和基础文件与原始文件夹和基础文件之间的集成历史记录,您可以通过该历史记录跟踪文件的修订历史记录。

答案 4 :(得分:0)

是的,你可以。只需重新打开即可编辑分支文件(即新文件)。在P4Win中,有一个上下文菜单(“重新打开以进行编辑”)。