version-control - 对于实际上从不分布式的团队来说,分布式版本控制有哪些优势?

标签 version-control

远程工作时,我们的团队只能通过远程桌面访问我们的源代码到我们的办公室 PC,因此我们从来没有真正在离线模式下工作。像 Mercurial 或 Git 这样的分布式版本控制系统是否仍然比我们当前的集中式 Subversion 设置更有优势?如果是这样,它们是什么?有什么缺点或陷阱吗?我在很多地方读到过,转向分布式版本控制需要改变思维。有人可以解释在这方面需要改变什么吗?

最佳答案

differences between DVCS and CVCS 中所述(集中式VCS),主要优点是:

  • 本地提交(您可以在私有(private)分支中更频繁地提交,然后清理要推送到其他仓库的历史记录)
  • publication process (你从多个仓库拉取,或者快速建立中间仓库推送到,在那里你可以做中间任务,比如持续集成测试)

  • 最后一点需要最大的“思维改变”并且有点可怕(“我可以从任何 repo 中提取?!”)
    但是,一旦您意识到这些好处,您就可以真正拥有更高效的开发周期,因为您能够监控(通过获取同行的提交)一些同事的开发。如果他们正在开发您需要的功能,您可以尽快开始集成它。
    (使用 DVCS 要记住的是,它不会阻止设置“中央”存储库,以供其他开发人员从中提取)

    至于持续集成,您可以推送到桌面上的本地存储库,而不是直接从您的存储库推送到负责 CI 的中央服务器,这将运行所有测试,然后自动推送(如果“绿色”)代码到“中央” repo 。
    它非常有效,您现在可以将“永远不会破坏构建”的代码推送到官方中央仓库,从而使您的 CI 服务器几乎毫无用处;)

    关于version-control - 对于实际上从不分布式的团队来说,分布式版本控制有哪些优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2947220/

    相关文章:

    svn - 如何在颠覆中智能地改变分支?

    version-control - 有免费的私有(private)Bazaar 在线源主机吗?

    java - 如何自动将时间戳字段添加到标记提交日期的 Java 类

    Git Extensions 有不属于我自己的未决更改?

    svn - 删除SVN分支

    git - 无法通过SSH git fetch

    git - 重用 git 存储库的一部分

    Git - 将分支存储在单独的本地目录中

    version-control - 如何在团队开发中正确使用 NuGet?

    java - 我应该将 IDE 项目文件 checkin 版本控制系统吗?