为什么基于合并的SCM优于基于锁的系统?

时间:2013-02-01 01:48:25

标签: git version-control merge locking

到目前为止,我们的开发团队已经使用了基于锁的SCM(源代码管理)系统。 最近,我们一直面临着用新的,更好的系统替换系统的必要性。

作为一个新系统,我建议使用Git。 除了包括我在内的一些成员,他们从未听说过Git。 所以我给出了一些解释。

问题是他们认为合并系统而不是锁定系统 不是为了保证源代码的完整性。

尽管我解释了Git的系统以及许多众所周知的项目 已经使用Git系统和它的令人敬畏的声誉, 他们从未对Git感到宽慰。

我怎样才能让他们放心呢? 我如何解释合并不是问题?

1 个答案:

答案 0 :(得分:0)

本身基于合并的系统并不比基于锁的系统更好。这一切都取决于你的项目。如果你有不可合并的文件,基于锁的系统可能会更好。

但是,如果我理解你的问题,你想知道如何让你的同事感到高兴。

你可以说linux是一个很好的例子,使用基于锁的系统,Linux开发是不可能的。但是,linux有一个庞大的开发基础,你的团队可能没有。所以这真的不是一个争论。如果对您来说不是问题,那么可伸缩性和多用户的所有好处都不适用。

然而,您的同事担心代码完整性。这就是你应该改变系统的原因。基于锁的方法是以文件为中心的。 (当然有像svn这样的问题的中间解决方案,但是让我们说你使用像cvs och vss这样的东西)。但是,单个文件很少由它自己分发。

也就是说,一个文件的更改会影响其他文件,因为它们相互通信。使用基于锁定的方法,您永远无法确定您的更改将如何影响其他同事的更改。如果您将文件A更新为rev 2并使用文件B rev 1进行测试,然后将您的同事更新文件B更新为rev 2,您如何知道它将起作用?你的同事为什么会认为这可能是一个问题?他只触及文件B,为什么要测试文件A?

使用git,您可以采用基于系统的方法解决问题。每次更改都是对整个存储库的更改,您始终可以拥有一个可以保证工作的版本。关键是,只查看文件,无论如何都会破坏代码的完整性。