远程工作时,我们的团队只能通过远程桌面访问我们的源代码到我们的办公室 PC,因此我们从来没有真正在离线模式下工作。像 Mercurial 或 Git 这样的分布式版本控制系统是否仍然比我们当前的集中式 Subversion 设置更有优势?如果是这样,它们是什么?有什么缺点或陷阱吗?我在很多地方读到过,转向分布式版本控制需要改变思维。有人可以解释在这方面需要改变什么吗?
最佳答案
如 differences between DVCS and CVCS 中所述(集中式VCS),主要优点是:
最后一点需要最大的“思维改变”并且有点可怕(“我可以从任何 repo 中提取?!”)
但是,一旦您意识到这些好处,您就可以真正拥有更高效的开发周期,因为您能够监控(通过获取同行的提交)一些同事的开发。如果他们正在开发您需要的功能,您可以尽快开始集成它。
(使用 DVCS 要记住的是,它不会阻止设置“中央”存储库,以供其他开发人员从中提取)
至于持续集成,您可以推送到桌面上的本地存储库,而不是直接从您的存储库推送到负责 CI 的中央服务器,这将运行所有测试,然后自动推送(如果“绿色”)代码到“中央” repo 。
它非常有效,您现在可以将“永远不会破坏构建”的代码推送到官方中央仓库,从而使您的 CI 服务器几乎毫无用处;)
关于version-control - 对于实际上从不分布式的团队来说,分布式版本控制有哪些优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2947220/