5

这可能是一个幼稚的问题,但是,正如对象中所问的那样,版本控制软件将分支合并回主干而不生成损坏代码的实际方法是什么?

这是一个简单的例子:我从主干中为程序“Hello World Power edition”创建了一个分支。我添加了对克林贡语的支持。这是一个彻底的改变,改变了函数 printHelloWorld() 的工作方式。

同时,由于错误 #749 导致“Hello World”被写成“Helo World”,主干中的函数 printHelloWorld() 已更改。

现在,我在这里看到的问题是:当我通过分支合并回主干时,我在 sayHello.py 文件中的函数 printHelloWorld() 中试验了一个冲突

VCS 程序如何知道如何从我的分支添加克林贡语支持并将错误修复保留在主干中?避免这种情况的人为驱动或软件驱动的策略是什么?

提前致谢。

4

3 回答 3

3

VCS 程序如何知道如何从我的分支添加克林贡语支持并将错误修复保留在主干中?

VCS 对源代码的语义一无所知,它将它视为一堆文本/二进制文件。VCS 系统使用差异/合并算法来检测您的和当前文件版本之间的冲突。解决此类冲突是您的责任,因为只有您知道这些更改的语义。一些像 SVN 这样的 VCS 会要求您在允许您提交更改之前使用中继中的最新更改更新您的工作副本,以确保不会丢失任何内容。

为了确保您没有破坏任何东西并且所有之前的错误修复都没有破坏,您应该使用代码审查单元测试和其他实践。持续集成是保持软件健康的好方法。

于 2009-01-08T09:08:16.883 回答
0

在这种情况下版本控制系统无法自动合并,您必须手动进行合并。良好的单元测试将帮助您确保不会丢失任何功能。

于 2009-01-08T08:58:19.977 回答
0

在您将分支合并回主干之前,版本控制系统将使用您分支后主干中的更改更新您的工作副本。它只是不允许您在没有此更新的情况下合并。这可确保您在下一次提交中获得主干中的所有错误修复。

在分支上工作的一个好策略是定期将主干中的更改移植到您的分支中。这可确保您不会偏离主干太远,导致您最终合并回主干时遇到问题。

于 2009-01-08T08:59:08.900 回答