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

Dav*_*sen 14 perforce

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

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

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

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

rav*_*ven 11

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

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

您现在在项目目录中有两个额外的文件,但它们没有任何损害.现在检查出来smallFile1.cs,并smallFile2.cs和你的项目文件(S).添加对较小文件的引用,删除对big的引用,相应地编辑小文件等.最后,标记bigFile.cs为删除并提交更改.

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

  • 您不必先提交。您可以打开文件进行编辑,并在同一更改中进行重构。 (2认同)
  • 看起来像那样,但是您不会失去集成关系。它将显示为带有编辑的合并。 (2认同)

Sco*_*aad 6

您可以使用integrate命令.

当您对需要传播到另一个文件的文件进行更改时,请使用p4 integration启动该过程.

命令的简单形式将是

p4 integrate fromFile toFile
Run Code Online (Sandbox Code Playgroud)

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

  1. run p4与toFile集成为新文件,fromFile是大型原始文件
  2. p4提交
  3. p4将fromFiletoFile编辑为原始版本的较小版本.
  4. p4提交

使用此方法,您的文件历史记录信息将保留在文件的所有未来版本中.


Dav*_*sen 5

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

  1. 按照 raven 和 Scott Saad 的建议,从源文件集成到两个目标文件
  2. 在提交新文件之前,p4 edit对两个文件都做一个
  3. 做出改变
  4. p4 提交

完整的文件历史记录显示在修订图和延时视图中。我可以看到跳过中间提交的唯一缺点是操作类型从“集成”更改为“添加”。因此,其他人可能没有意识到文件历史记录还有更多内容。

我想我稍微更喜欢两次签到的过程。