是什么让Git比Subversion更适合合并?

时间:2010-11-18 13:15:10

标签: svn git dvcs branching-and-merging

  

可能重复:
  Merging: hg/git vs. svn

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

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

2 个答案:

答案 0 :(得分:5)

并不是因为它们是分布式的,而是更多的是它们跟踪变更集而不是版本。 (但是,分布式系统通常使用变更集,而集中式系统通常使用版本;这是因为分布式系统不能使用基于版本的方法,而集中式系统可以使用它)。

Subversion说,好吧,首先我有这个版本然后我有那个版本。然后在合并的时候,它需要两个版本,比较它们,并对如何组合它们做出有根据的猜测。 Git,mercurial和类似的SCM,比如说,好吧,首先我没有任何东西,然后有人做了这个改变然后其他人做了这个改变,等等。当它合并时,基本上他们需要做的就是应用正确的改变订购,在这里和那里纠正行号并考虑文件重命名,但基本上就是这样。

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

答案 1 :(得分:3)

Linus torvalds就git做了一个谈话,available on youtube值得关注。在其中,他驳回了所有源代码控制解决方案,但git,然后解释了为什么git很棒。

就我个人而言,我发现git令人沮丧地与我达成协议,我每天都专业地使用SVN。我认为svn足够快,并且可以进行分支和扩展。合并得足以满足我的需求。

但我不是源控制专家!