Subversion合并变化的原因

时间:2015-01-26 22:46:40

标签: git svn merge

虽然我通常使用git,但至少在工作中,我被迫使用Subversion。我知道很多(如果不是全部)两者之间的差异归结为git被分发并且Subversion是集中的,但是Subversion中的合并似乎有一个额外的复杂层,似乎是分开的。特别是--reintegrate选项对我来说似乎没有必要。

是否有特定的设计决策导致Subversion具有不同类型的合并,或者可能是集中式系统的不太明显的后果?或者我只是没有看到在git中合并的选项与Subversion中可用的合并形式之间存在某种联系?

2 个答案:

答案 0 :(得分:1)

你可能会在这个主题上搜索一些good resources,但我会增加两美分:

  1. Subversion最初没有跟踪哪个版本合并到哪个分支。它有一个树枝模型作为树枝 - 没有周期,没有跟踪你将相同的变化重新整合到两个不同的分支的事实。您通过手动选择所需的提交来进行合并。在该模型之上添加了更先进的合并技术,这自然导致了某些笨拙。

  2. 从技术上讲,这个关于合并的问题与分布式v集中模型没有关系,你会得到与单个孤立的git repository v svn相同的差异。

答案 1 :(得分:0)

我对SVN知之甚少,但据我所知,SVN在版本之间存储差异,而Git存储实际快照(当然是优化的)。我认为这方面可能比Git分布的事实更具影响力。如果有的话,Git可以分配的原因是因为它的数据模型。