如何在版本控制系统中连接两个文件

ana*_*lyg 10 version-control refactoring perforce

我正在重构包含许多源文件的C++项目.当前的重构步骤包括将两个文件(例如,x.cppy.cpp)连接成一个较大的文件(比方说xy.cpp),其中一些代码被抛出,并且还添加了一些代码.

我想告诉我的版本控制系统(Perforce,在我的情况下)生成的文件基于两个以前的文件,因此将来,当我查看修订历史时xy.cpp,我也会看到所做的所有更改x.cppy.cpp.

Perforce支持重命名文件,因此如果y.cpp不存在,我会确切知道该怎么做.Perforce还支持合并,所以如果我有2个不同的版本,xy.cpp它可以从中创建一个版本.由此,我发现加入两个不同的文件是可能的(不确定); 但是,我搜索了一些关于Perforce和其他源代码控制系统的文档,并没有找到任何有用的东西.

我正在尝试做什么?
它是否有一个传统的名称(搜索"合并"或"加入"的文档是不成功的)?

Von*_*onC 1

我不认为这可以在经典的 VCS 中完成。
这些版本控制系统有两种风格(Scott Chacon 的 Getting git幻灯片 50+ ):

  • 基于增量的历史记录:您获取一个文件,并记录其增量。在这种情况下,单位是文件,您不能将其历史记录与另一个文件关联。

  • 基于 DAG 的历史记录:您获取一个内容并记录其补丁。在这种情况下,文件本身可以变化(可以随意重命名/移动),并且它可以是其他两个内容的结果(因此它接近您想要的内容)......但仍在一个的历史记录内文件(来自其 DAG 不同分支的内容)。

替代文本