分布式源代码管理的优势是什么?

时间:2015-11-19 00:06:05

标签: version-control backup distributed-system

这不是Git Vs. SVN问题。它是关于分布式源控制系统的感知优势是否实际上与他们所说的一样有用。

根据维基百科的优点是:

1)默认情况下,没有规范的代码库参考副本;只有工作副本。

2)常见操作(例如提交,查看历史记录和还原更改)很快,因为不需要与中央服务器通信。

3)只有在其他同伴之间共享变更时才需要进行沟通。

4)每个工作副本都有效地充当代码库及其变更历史的远程备份,防止数据丢失。

https://en.wikipedia.org/wiki/Distributed_version_control

但是,我确实对此有疑问。第2点。是的。提交更快,但维基百科在这里讨论的是提交到本地源代码控制实例。仍然需要同步到中央服务器。也许这可以安排在后台运行,但在正常情况下,大多数用户将同时提交和同步。如果他们不这样做,他们必须绕过源代码控制最重要的部分之一:备份代码。第三点也有同样的问题。

当您的网络连接有限时,分布式系统应该是特别有利的。它允许您利用源代码控制,而无需与其他用户物理连接到同一网络。从表面上看,这是有道理的,但我问自己一个问题:我什么时候会以断开连接的方式实际使用源代码管理?

如果我发现自己将代码提交给我的本地实例,但没有将它同步到中央服务器,我会把自己打到手腕上。这是因为如果事实上我正在进行一项大的,有潜在风险的变更,我应该在一个分支机构工作并定期向中心实例提交。我不应该依赖我的本地实例作为备份,因为我的计算机可能随时被破坏,被盗或损坏。定期提交到中央存储库对任何源控制系统都至关重要。

当然,有时候我可能会说一个我无法访问互联网的发展中国家。在这些情况下,分布式系统是显而易见的选择,并且显然是有利的。但是,我说有99%的时间,我要么有互联网连接,要么只需要等待一小段时间才能连接互联网。众所周知,分布式系统是不是过度杀伤?除非你真的在没有良好互联网连接的地方工作,否则它只会增加系统的复杂性而几乎没有什么好处呢?

你有过与我的观点相悖的经历吗?

1 个答案:

答案 0 :(得分:1)

  

仍然需要与中央服务器同步

没有。它可能偶尔发生或根本不会发生(在纯粹的DVCS"工作方式中)

  

在正常情况下,大多数用户将同时提交和同步

Wean为每个人说话,即使对于大多数"也是如此。每个人都有自己的习惯

  

如果他们不这样做,他们必须绕过源代码控制最重要的部分之一:备份代码

停止这个游戏!!! 请记住:本地克隆不是,而且从来没有|将替换良好,正确,正确的备份。 SCM是仅用于源代码管理的工具,仅此而已

  

众所周知,分布式系统是不是太过分了?

没有

  

它不会增加系统的复杂性,但效益不大

没有