当前位置:  开发笔记 > 编程语言 > 正文

为什么分布式源代码控制被认为更难?

如何解决《为什么分布式源代码控制被认为更难?》经验,为你挑选了3个好方法。

人们向新手推荐SVN来源控制似乎相当普遍(至少在这里),因为它比其中一个分布式选项"更容易".作为SVN的一个非常随意的用户,在为我的许多项目切换到Git之前,我发现根本不是这种情况.

概念上更容易设置DCVS存储库git init(或其中任何一个),而不必在SVN的情况下设置外部存储库.

SVN,Git,Mercurial,Bazaar之间的基本功能都使用基本相同的命令来提交,查看差异等.这真是一个新人真正要做的事情.

与SVN的"提交一切"政策相比,Git要求更改的方式在提交之前显式添加的微小差异在概念上很简单,除非我错了,否则在使用Mercurial或Bazaar时甚至都不是问题.

那么为什么SVN更容易被认为呢?我认为这根本不是真的.



1> Mecki..:

如果您仅为自己使用版本控制,SVN可能更难,因为设置更难.但是,如果您希望通过Web与多个开发人员合作,则服务器端控件具有以下优势:

你有一个中心位置,它总是有最先进的官方来源,是SVN服务器

由于每个人总是将他的更改与中央服务器合并,因此碰撞的次数要少得多,手动修复的次数要少得多

您可以对源进行集中控制

您有一个正式的修订号而不是修订版哈希,在所有开发人员中都是相同的并且显示正式进度(这是一个向上计数的数字,不像哈希,它只是一个身份指纹,所以你可以看到哪个代码更新或者年龄较大,只是这个数字


我不想听起来相反,但是在我看来,没有一个因为使用DVCS而产生任何额外的混乱,因为你总是知道你的东西和"他们的"之间的相对年龄.

2> Soraz..:

分布式版本控制系统是A Very Good Thing(tm),但我发现采用的主要障碍是教育用户新的SCM给出的新可能性.

这与经常缺乏光彩的UI工具(半完成的乌龟实施等)相结合,给许多同事们留下了一个空白的目光,他们为了一个好的UI工具而长期以来一直在使用命令行.

此外,使用像CVS这样的工具,我发现人们厌恶分支和合并,因为他们真的不想被困一整天做三向合并,通常不确定哪个是合适的合并.

我的观点是:首先告诉人们他们获得了什么(不仅仅是"嘿,看看这个新酷玩具"),并准备他们使用命令行是要走的路,而频繁的恒定时间分支是一件好事. .

许多系统(如mercurial)都带有完整的补丁队列系统,这意味着从持续集成的角度来看,您知道生产中的任何内容都已经过QA批准.像这样的东西很难用CVS或SVN做好.

使用Mercurial,人们可以拥有当前工作的私有存储库,所有开发人员在服务器上共享开发人员树.CI系统监视开发人员树并提取所有更改,构建和执行单元测试.如果一切都通过,它会将更改传播到测试树,从而为QA人员构建可交付成果.添加的每个变更集都会获得一个令牌.当QA认为某个功能完成时,他们会使用此令牌注释测试树,然后相关的更改集会自动传播到生产树.

使用这种方法,您永远不会手动向生产分支或测试分支提交任何内容.而是代码的状态和QA的签名决定了生产分支的内容,



3> Ben Hoffstei..:

我认为在概念上更容易想到一个集中式存储库,其中每个开发人员提交他的工作与整个存储库的多个副本,其中没有一个代表"真相".由于大多数开发人员都熟悉客户端 - 服务器模型和后端数据库的概念,因此这是一个自然概念.

当然,分布式源代码控制系统的优势在于它们不必遵循这个模型,但对于新手来说,它似乎更容易掌握.

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有