合并由两个开发人员修改的文件

时间:2013-06-30 13:26:42

标签: svn version-control

我是一名学习如何使用源代码控制软件的开发人员。我看过Subversion documentation。我试图理解合并的概念。

我可以将文件合并在一起,假设两个开发人员正在处理不同的类。如果两个开发人员在同一个类上工作,合并工具是否有效?我意识到可以说这种编码实践打破了SOLID:'开放 - 封闭'原则(http://en.wikipedia.org/wiki/SOLID_%28object-oriented_design%29),因此如果Subversion认为开发人员遵循开放的封闭原则,我就会徘徊。

如果在trunk中对class1进行了更改并且在分支中对class1进行了更改,那么分支和主干是否可以合并?

1 个答案:

答案 0 :(得分:1)

<强>模式

版本控制系统不承担任何特定模式。您可以使用它们来实现不同的工作流程,开发人员可以使用最佳实践。 但是,分支和合并可以被视为基本概念,并且大多数团队在其工作流程中使用。与例如Subversion相比,Subversion中的分支不是非常自然操作。 Git的。基本上它只是另一个目录的副本(很可能是/trunk)。所以你可以说Subversion甚至不假设你使用分支。甚至没有专门用于分支的svn命令。

合并和自动合并

可以合并单个类的两个修订版。对于Subversion,它们只不过是文本文件。它不会识别任何类似的子结构。

如果两个更改在同一位置,则合并算法很可能会自动合并文件。如果是,则合并过程将被暂停,您需要手动解决冲突。然后,您可以手动选择接受文件的一个版本,单独从任一方接受块,或者以任何其他方式手动合并文件。

请注意,自动合并有时可能无效。在最坏的情况下,它们将完美合并,程序仍然是可编译/可执行的。但是,它不会按预期运行。所以检查合并的结果是个好主意,特别是如果它们是自动合并的。