svn - 是什么让 Git 在 merge 方面比 Subversion 更好?

标签 svn git dvcs branching-and-merging

<分区>

Possible Duplicate:
Merging: hg/git vs. svn

我听说/读到 Git 和 DVCS 总体上优于 Subversion 和集中式版本控制系统。我听说的原因之一是 DVCS 中的 merge 比集中式系统中的 merge 要好得多。

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

最佳答案

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

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

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

关于svn - 是什么让 Git 在 merge 方面比 Subversion 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4215124/

相关文章:

svn - 移动 SVN 支持的文件后检测错误

mercurial - 如何检查 Mercurial 仓库是否处于干净状态?

version-control - 在不实际拉取的情况下检测父存储库和分支之间的冲突

version-control - Hg 几乎犯错了分支

iphone - 如何解决 xib 文件的合并冲突?

svn - 如果我想提交给 SVN 的文件经常更新,我无法足够快地进行合并,会发生什么情况?

svn - 持续集成工具的 Subversion 是否比 Mercurial 更多 "supported"?

git - 如何使用 Git 设置特定路径的权限?

git - 无法将 Spring Cloud Config Server 与远程 Git 集成

git - 如何从已知主机列表中删除永久添加的主机?