我想为我的公司选择一个版本控制系统。到目前为止,我知道我有Git,Subversion和Mercurial。
这些天来,我发现Git是最常用的,所以我不禁要问:仍然有任何特定的原因仍然需要使用Subversion,还是应该直接使用Git?
我想为我的公司选择一个版本控制系统。到目前为止,我知道我有Git,Subversion和Mercurial。
这些天来,我发现Git是最常用的,所以我不禁要问:仍然有任何特定的原因仍然需要使用Subversion,还是应该直接使用Git?
Answers:
SVN完全没有死。它的使用仍然非常广泛,并且很快就不会在任何地方使用。SVN比分布式版本控制更易于使用,尤其是当您实际上没有运行需要分布式版本控制的分布式项目时。
如果您只有一个中央存储库(如果到目前为止它们还足够小而没有源代码控制,那么公司将需要这些存储库),使用SVN与其进行交互要简单得多。例如,使用SVN,您可以通过一次操作从存储库中提取更改,或将存储库中的本地更改提交给SVN,而HG和Git需要两个或三个步骤来完成等效的工作。
在最近的修订中,SVN解决了许多使人们偏爱HG和Git的性能问题。现在它的速度比几年前要快得多,并且在这一点上,除非您确实需要分布式版本控制的高级功能,否则没有充分的理由为您的项目研究HG或Git。
尚未提及客户端工具。您当然可以使用命令行脚本来完成所有操作,但是具有GUI集成可以真正提高生产力。
我们主要与Visual Studio合作;使用SVN集成到IDE中肯定比现在使用Git更好。将来这可能会改变,但是我一定会在版本控制功能方面同样考虑到您的决定。
就像其他所有内容一样,版本控制系统本身并不是目标,而只是使您步入正轨的工具。根据您的情况选择一个可以使您最快到达那里的人。
我是Git迷。最近,我不得不承认,Git的缺点之一是它标识带有哈希的版本与svn的发行版号相反。发布号可以更容易地通过电话或类似方式传递。
那是我能想象的唯一的专业人士。如果您真的想依赖该功能,则可以在分布式和/或集中式VCS Bazaar中使用它。在Git中,有可以达到目的的标签。
无论如何,如果没有快速的分支切换和存储,我简直无法想象。仅这两个功能就击败了SVN,据我所知,到目前为止,同一任务需要创建并检出整棵树到单独的目录中以实现相同的目标。
这些所谓的“分布式版本控制的高级功能”会随时间而来,您不必一开始就学习它们。不要害怕他们。他们在这里是为了帮助您,而不是妨碍您。并且为DVCS设置中央存储库没有问题。
“如果您的任务可以在六个小时内完成,那么即使编写工具需要六个小时,最好编写一个可以在20分钟内完成的工具?”
分布式版本控制是要解决的另一种难题。每个开发人员都需要大量学习。如果您有足够的缓冲空间来适应每个开发人员的学习过程,则应该使用良好的分布式版本控制系统。一旦学习阶段结束,分布式版本控制将比集中版本控制好得多。
分布式版本控制似乎是一种偶然。它在这里停留了很长的时间,最好早一点适应。我还记得当SVN是新的并且人们习惯了CVS时的相同讨论,很多人提出不使用SVN的争论,但最终SVN成为最受欢迎的版本控制系统。
如果公司在现有版本控制系统中建立了很好的源代码,那么迁移到新系统是一项艰巨的任务,但是如果公司规模很小或刚起步,则迁移到新版本控制非常容易。但是,如果您坚持使用较旧的版本控件(在新设置中),则将来会遇到瓶颈,无论如何最终您都必须计划版本控件的迁移。
我已经看到了很多关于SVN的专业评论,但是所有这些评论的性质都是“ SVN不错”,而不是“ SVN更好”。因此,我强烈建议您为项目选择一个分布式版本控制(例如Git)。
与SVN相比,GIT的编辑优势
有人提到工具(用于Visual Studio)是坚持使用SVN的原因。http://gitscc.codeplex.com/为Visual Studio提供了GIT支持。
Once the learning phase is over Distributed Version Control is much better than Centralized Version Control.
我完全不同意这一点。在某些情况下,它可能会带来一些好处,但在许多组织中,诸如svn中易于理解的版本号之类的东西却是巨大的好处。
那些日子有什么特定的原因使用Subversion
除了IDE中的工具支持(我不使用)之外,不是,不是。当然,SVN可能更熟悉,但这是唯一的原因,而且我发现Hg和Git都非常容易(而且非常快)学习。
是的,当您了解分支只是映射希尔伯特空间子流形的同胚内胚函数时,所有这些复杂的指南都描述了Git的琐碎之处。1个
我不明白 但是你知道吗?没关系 使用Git,您不需要了解任何这些知识。
在大多数情况下,Git和Hg易于使用,并且比SVN具有确定的优势。房间里的大象当然是在分支:分支只在Git和Hg中起作用。相比之下,在SVN中,它们充其量是痛苦的,而最坏的是破裂(合并多个头)。
当然,您仍然可以使用SVN。您仍然可以使用Windows XP。但是,大多数尝试过这两种方法的用户都同意,其中一种替代方法要优越得多。
1是的,我知道这是个玩笑。我认为。