SVN可以做这个分支模型吗?

时间:2012-05-07 21:45:33

标签: git svn version-control

我是版本系统的新手,并试图决定使用哪一个。有很多信息,但也许有专家可以通过回答以下问题来帮助我。我发现了一个版本/分支模型,它非常类似于我的要求:

http://nvie.com/posts/a-successful-git-branching-model/

我理论上可以用SVN轻松实现这一点吗?像Hotfix和Bugfix分支一样,每个分支合并成多个不同的分支?为什么Git的“合并”应该更容易?

4 个答案:

答案 0 :(得分:5)

在很多StackOverflow答案中建议您链接到的工作流程。但一般来说,主要的想法是将“好代码”和“开发代码”分开 - masterdevelopment分支。此外,保持功能分开,直到它们准备好合并到development分支 - 即featureshotfix分支。

毫无疑问,使用SVN完全可以实现该工作流程或非常类似的工作流程 - 您使用SVN Branches

周围有whole bunch版本控制系统,Nvie Git工作流程非常通用 - 大多数版本控制系统都可能使用通用工作流程。

  

我理论上可以用SVN轻松实现这一点吗?像Hotfix和Bugfix分支一样,每个分支合并成多个不同的分支?

就个人而言,我认为SVN中的分支并不像Git那样容易。 Linus Torvalds agrees - 所以他设计了Git围绕分支的想法。

  

为什么Git的“合并”应该更容易?

Git是围绕分支的想法而设计的。制作分支,使用分支,将两个分支合并在一起,将三个分支合并在一起,将本地和远程存储库中的分支合并在一起--Git擅长分支。 SVN不是以分支为中心的,在我的(有限的)SVN体验中,将两个分支合并在一起并不总是有趣的。

如果你刚开始使用版本控制系统,我会推荐Git。为了在Git和SVN之间进行适当的比较,请检查this link。然而,我会注意到Git是一个有点大脑弯曲的人,特别是如果你是新手 - 从概念上讲,SVN更容易理解。我发现the Pro Git book非常有帮助。

答案 1 :(得分:3)

从您提供的链接:


  

从我来自经典的CVS / Subversion世界,合并/分支   一直被认为有点可怕(“小心合并冲突,   他们咬你了!“)和你每隔一段时间只做一次。

     

但是对于Git来说,这些行动非常便宜而且非常简单   被认为是您日常工作流程的核心部分之一。


就SVN而言,我赞同该声明(我没有真正有效的GIT经验)。在SVN中,合并 耗费时间,坦率地说,这很可怕。你不轻易分支。所以,我猜,答案是“不” - 如果事先知道你必须做大量的分支和合并,不要使用SVN。

答案 2 :(得分:2)

理论上 - 是的,SVN可以实现它。 但是SVN缺乏合并和分支工具。所以合并/分支与SVN有点不方便和可怕(主要问题 - 复杂的树和其他冲突)。

GIT是合并分支的大师 - 他可以解决极其困难的冲突。 它还可以让您轻松跟踪所有分支版本。

SVN与GIT的主要区别:

  • SVN是集中版本控制(CVCS)
  • GIT是分散版本控制(DVCS)

要了解比较情况,请查看此article

答案 3 :(得分:0)

Subversion的优势在于您始终知道特定修订版本中的特定分支/主干是否合并到您的分支(通过svn:mergeinfo),这对于挑选提交是很重要的。 Git提供了被认为可以更好地工作的合并工具。

您可以将SubGit(subgit.com)安装到您的SVN存储库中,并享有这两种方法的优势。安装完成后,SubGit创建了一个链接到该SVN存储库的Git存储库,以便对该Git存储库的任何推送都转换为SVN,反之亦然。转换是即时执行的。