源控制 - 分布式系统与非分布式系统 - 有什么区别?

Ran*_*der 14 version-control tfs mercurial dvcs

我刚刚阅读了Spolsky关于分布式与非分布式版本控制系统的最后一篇文章http://www.joelonsoftware.com/items/2010/03/17.html.这两者有什么区别?我们公司使用TFS.这个阵营到底是什么阵营?

Von*_*onC 31

不同之处在于出版过程:

  • CVCS(集中式)意味着:要查看同事的工作,您必须等待他们发​​布(提交)到中央存储库.然后,您可以更新您的工作区.
    • 你是一个活跃的制作人:如果你不发表任何东西,没有人会看到任何东西.
    • 您是一个被动的消费者:当您刷新工作区时,您会发现新的更新,并且无论您是否需要,都必须处理这些更改.

.

  • DVCS意味着:没有"一个中央存储库",但每个工作区都是一个存储库,要查看同事的工作,您可以参考他/她的回购并简单地将其历史记录放入您当地的仓库.
    • 您是一个被动的制作人:任何人都可以"插入"您的回购并将您所做的本地提交拉入他们自己的本地回购.
    • 您是活跃的消费者:除非您明确指出(通过合并或rebase),否则您从其他仓库中提取的任何更新都不会立即集成到您的活动分支中.

版本控制系统是关于掌握数据变化的复杂性(因为并行任务和/或并行工作在一个任务上),以及与其他人(其他任务和/或其他人)协作的方式在CVCS之间是完全不同的和DVCS.

TFS(Team Foundation Server)是一个项目管理系统,其中包括CVCS:Team Foundation版本控制(TFVC),以"工作项"的概念为中心.
它的集中方面强制实现一致性(除了源之外的其他元素)
另请参阅此VSS到TFS文档,该文档说明了如何使其适应可访问一个参照的团队.
一个参考意味着它更容易维护(无需执行同步或数据刷新),因此管理的元素(任务列表,项目计划,问题和要求)数量更多.


Luc*_*ero 12

简单来说,集中式VCS(包括TFS)系统具有中央存储,每个用户都可以获取并提交到这一个位置.

在分布式VCS中,每个用户都拥有完整的存储库,并且可以进行更改,然后将这些更改同步到其他存储库,通常不需要服务器.