Subversion和GIT集中化

Fel*_*lko 3 svn git version-control

我现在一直在使用颠覆,我正在考虑学习并转换到GIT,因为它现在似乎是大多数人的偏好.

然而,GIT的最大优势之一(及其复杂性的来源)是分散的能力,每个人都有自己的存储库并在需要时合并存储库.我对这个功能不感兴趣,实际上我想将所有内容集中在一台服务器上,既适用于我单独工作的项目,也适用于多个人应始终拥有最新源的项目.相同的服务器,没有或少量的分支/分叉.

考虑到这一点,目前大多数开发是在Windows上使用Visual Studio进行的,并且还需要使用一些简单的svn命令从Linux进行访问,GIT仍然是一个不错的选择吗?是否值得转换?GIT提供的其他功能对我们有什么好处?

Dav*_* W. 5

让我说清楚.

  • 您正在成功使用Subversion.
  • 您不想在Git中使用分布式功能.
  • 您正在使用VisualStudio开发.

那么,为什么要切换到Git?

我知道Git上有很多关于"比Subversion 更好 " 的喋喋不休,但大多数人都是真正不懂版本控制的人.他们看到许多开源项目使用Git并假设如果Linux使用Git,它必须更好.

我同时使用Git和Subversion,发现每个人都有自己的优点和缺点.

  • 当没有中央存储库时,Git很棒.实际上,这是你唯一的选择.
  • 如果您不想了解用户访问的详细信息,Git非常棒.您为关键看门人提供访问权限,并让他们确定允许谁提交代码更改.
  • Git非常适合使用纯粹的敏捷商店.也就是说,没有固定发布时间表或客户承诺的商店.事实上,真正的敏捷过程是考虑到Git而设计的.
  • 当你的所有开发者都是最受欢迎的明星时,Git也很棒.这些家伙都知道Git.它们彼此共享存储库访问.他们测试,他们整合,他们计划,他们互相合作.他们不需要项目经理配置经理,这就是为什么我不经常与这样的明星团队合作.值得庆幸的是,大多数开发团队都不是顶级团队.否则,作为CM,我会失业.

当您有客户强制交付和发布截止日期时,Git的问题就会出现.Git只是在持续集成环境中不能很好地工作,除非你像母鸡一样在你的开发人员身上.发生的情况是,在发布周期结束之前,不会向中央存储库发送任何更改.然后,在发布的最后几天,您一直试图处理不兼容性,冲突和其他问题.

使用像Subversion这样的集中式存储库,开发人员不得不一起工作.他们在代码中进行更小,更多的增量更改.通过良好的持续集成环境,您的QA团队可以提取中间版本并进行测试,而无需等待最终版本.

作为奖励,Subversion通过AnkhSVN与VisualStudio进行了很好的集成.最后是VisualStudio 的Git源代码提供程序,但它依赖于TortioseGit和BASH shell.同时,AnkhSVN是一个完全封装的源代码提供程序,其界面类似于使用VisualStudio或TeamFoundation,因此VisualStudio开发人员非常熟悉它.

因此,除非你的所有开发人员都想要Git,或者你打算使用Git的分布式功能,否则没有理由只为了切换而进行切换.