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

Version control 我可以安全地在perforce中编辑重命名的文件吗,version-control,perforce,Version Control,Perforce,我有一个文件需要移动,已经在perforce下了。一旦移动,它需要一些编辑-更新包等-适合其新位置。我应该提交move changespec,然后重新打开它进行编辑,还是可以一次性完成?如果是,事件的适当顺序是什么?提交移动更改,然后重新打开进行编辑(您也可以使用重新打开选项)。 在更改历史记录中,用户更易于阅读 此外,Perforce的最新版本会在解析后检查文件的更改。因此,在某些解决操作完成后,编辑文件时可能会有投诉。我以前曾一次性完成过此操作,但根据构建过程的不同,我建议不要这样做。我通常

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

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


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

我以前曾一次性完成过此操作,但根据构建过程的不同,我建议不要这样做。我通常做的是:

  • 移动文件
  • 如果移动需要更改才能编译,请打开它进行编辑并进行更改
  • 提交更改,通知Performance重新打开文件进行编辑
  • 对路径等进行更改,这些更改不会导致编译错误,但应该更新
  • 提交带有适当说明的更改
  • 但是,如果您愿意,您可以在上面的步骤(2)中进行所有更改。Perforce可能会将新文件的标志从integrate更改为add,但它仍会记住文件的源路径

    编辑:更好的方法

    我意识到我经常使用不同的方法,但“移动”文件的想法分散了我的注意力。因此,我建议采取以下步骤:

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

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

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

    更新:感谢准将杰格和格雷格·惠特菲尔德的启发性评论

    即使从Performce支持部门也很难找到一个真正的答案,因此我想我应该向每个人通报我们发现的情况:

    • Perforce将每个文档的所有版本存储在其数据库中
    • 如果它将您的文件保存为类型
      ,则它将存储一个文件版本与另一个文件版本之间的差异,而不是整个文件
    • 如果签出文件,不对其进行任何更改,然后重新提交,则该文件将另存为具有0差异的新版本。这是可配置的,P4可以设置为忽略变更列表项,而不存在任何实际差异。在提交变更列表之前,可以通过选择“还原未更改的文件…”强制执行此行为
    • 使用“重命名/移动…”移动P4中的文件,以便跟踪它们。不要使用Windows资源管理器复制它们,然后在P4中重新添加它们
    • 如果使用关联菜单中的“重命名/移动…”功能,“新建”文件将显示修订号“1”,就像它是一个新文件一样
    • 但是,由于P4保存了对文件执行的所有功能,因此您实际上可以使用CLI命令
      P4 filelog-i
    • 如果您想查看已移动或重命名文件的修订历史记录,而您不是管理员,则可以右键单击并选择其“修订图”,即使在分支之间移动,该图也会显示文件的每个版本
    根据Perforce支持,通过分支或文件夹移动更容易跟踪修订历史是经常要求的功能,并且在他们当前的路线图中

    Perforce的答案是:目前,没有一种方法可以移动/重命名/集成文件,同时仍然保持精确的文件历史记录


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

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

    我想说的是,始终先提交,然后编辑。它更干净,使您的存储库中发生的事情更加明显。然后只需在新位置签出文件并进行任何更改。这也使得更明显的是,更改是在新位置进行的,并且在重命名后所有更改都可以正常工作。

    Perforce跟踪移动的文件(假设您在Perforce中移动文件,而不是在Perforce不知情的情况下删除和复制文件),并且很容易获得