6

可能重复:
合并:hg/git vs. svn

我听说/读到 Git 和 DVCS 通常比 Subversion 和集中式版本控制系统更好。我听说的原因之一是 DVCS 中的合并比集中式系统中的要好得多。

两者在合并方面有什么区别?例如,当你重新集成一个分支时,是什么让 Git 比 Subversion 更好?

4

2 回答 2

5

与其说它们是分布式的,不如说是它们跟踪变更集而不是版本。(然而,分布式系统通常使用变更集,而集中式系统通常使用版本;这是因为分布式系统无法使用基于版本的方法,而集中式系统可以摆脱它)。

Subversion 说,好吧,首先我有这个版本,然后我有那个版本。然后当需要合并时,它会获取两个版本,比较它们,并就如何合并它们做出有根据的猜测。Git、mercurial 和类似的 SCM,比如说,好吧,首先我什么都没有,然后有人做了这个更改,然后其他人做了那个更改,等等。当它是合并时间时,基本上他们需要做的就是应用正确的更改顺序,在这里和那里更正行号并考虑文件重命名,但基本上就是这样。

Subversion 并没有足够的信息来执行智能合并:它只看到差异,但看不到它们的来源。

于 2010-11-18T13:23:57.037 回答
3

Linus torvalds 做了一个关于 git 的演讲,可以在 youtube上找到,值得一看。在其中,他驳斥了除 git 之外的所有源代码控制解决方案,然后解释了为什么 git 很棒。

就个人而言,我发现 git 令人沮丧,我每天都专业地使用 SVN。我认为 svn 足够快,并且分支和合并足以满足我的需要。

但我不是源代码控制专家!

于 2010-11-18T13:31:56.110 回答