将单个文件重构为多个文件并在Perforce中维护版本历史记录的正确方法是什么?

时间:2011-02-16 22:38:18

标签: perforce

我有一个太大的文件,应该重构为两个较小的文件。在Perforce中执行此操作的最佳方法是什么,以保持与原始文件的关系?

我正在添加两个新文件,并在这种情况下删除原始文件,但我希望有一些解决此问题的一般解决方案。

我认为最简单的情况是添加一个包含原始内容子集的新文件,并从原始文件中删除该内容,但保留原位(以后删除它很简单)。

如果可以在单个更改列表中完成操作以避免任何会破坏构建的签名,那将是最好的。

3 个答案:

答案 0 :(得分:11)

这不能在一次检查中完成,但它肯定可以在不“破坏构建”的情况下完成。假设您要将bigFile.cs分为smallFile1.cssmallFile2.cs。首先将大文件集成到两个小文件中并提交它们。

p4 integrate bigFile.cs smallFile1.cs
p4 integrate bigFile.cs smallFile2.cs
p4 submit

您现在项目目录中有两个额外的文件,但它们没有任何损害。现在查看smallFile1.cssmallFile2.cs以及您的项目文件。添加对较小文件的引用,删除对big的引用,相应地编辑小文件等。最后,将bigFile.cs标记为删除并提交更改。

您现在已将大文件拆分为两个较小的文件,较小的文件历史记录将显示其大文件来源。

答案 1 :(得分:6)

您可以使用integrate命令。

  

当您对文件进行更改时   需要传播到另一个   文件,用p4启动进程   集成。

命令的简单形式是

p4 integrate fromFile toFile

因此,我会执行以下任务:

  1. 运行p4与作为新文件的 toFile 集成, fromFile 作为大型原始文件
  2. p4 submit
  3. p4将 fromFile toFile 编辑为原始版本的较小版本。
  4. p4 submit
  5. 使用此方法,您的文件历史记录信息将保留在未来所有文件修订版中。

答案 2 :(得分:4)

这实际上可以完成一次签入。步骤如下:

  1. 从源文件集成到两个目标文件,如raven和Scott Saad建议
  2. 在提交新文件之前,请对这两个文件执行p4 edit
  3. 进行更改
  4. p4 submit
  5. 完整的文件历史记录显示在修订图和延时视图中。我可以看到跳过中间提交的唯一缺点是操作类型从“集成”变为“添加”。因此,其他人可能没有意识到文件历史记录还有更多内容。

    我认为我稍微喜欢双签入流程。