当涉及到非常小的项目(仅几个devs)时,分布式版本控制系统(例如git)与具有中央存储库的系统相比有多高的效率?
我喜欢拥有一个中央存储库的想法,因为它看起来更优雅,更有条理。然而,在看了莱纳斯·托瓦尔兹的谷歌演讲之后,我有自己的疑虑。但是,这么小的项目真的能明显地看到所有这些好处吗?
发布于 2011-05-07 05:12:18
DVCS并不意味着您不能拥有一个中央存储库。我不知道有多少人会这样想。可能的svn工作流是可能的git工作流的子集,所以如果您想开始使用git 就像这样,没有什么可以阻止您。但是,如果您希望稍后使用分布式功能,则相反的情况并不成立。就我个人而言,我更希望有一些我可能永远不会使用的选项,而不是后来发现我想使用一个不可用的选项。
发布于 2011-05-07 04:40:04
这在很大程度上取决于开发人员。
如果您的开发人员是分布式的(多个位置、不同的时区,可能在一段时间内断开连接(旅行等)),那么分布式版本控制系统就有很多优点。我遇到了一种不幸的情况,就是在一个集中的版本控制系统上工作,它跨越很长的距离和不同的时区,其中签入/退出和分支非常缓慢,结果是每个人都停止正确地使用版本控制。DVCS的学习曲线较高,但在分布式情况下,收益往往大于曲线。
如果你的开发人员都在同一间办公室里,用闪电般的速度连接到服务器上,那么签入/退出和分支是快速而容易的。在这种情况下,它归结为学习曲线和偏好-如果你的发展都是老手颠覆,没有太多的理由去使用DVCS。如果他们都对搬到DVCS上感到兴奋,他们就会学得足够快。
所有这些都假定:
发布于 2011-05-07 19:49:05
我认为分布式版本控制系统的优势在任何规模上都是显而易见的。从现在开始,我将提到git,因为这是我最有经验的DVCS,而且它比DVCS更容易说和读。
我真的把集中式版本控制系统的优势看作是git优势的一个子集。如果您想要有一个带有git的中央存储库,请继续。它可以在服务器上,如果你喜欢,就像你的SVN服务器;或者它可以在一个网络驱动器,甚至一个usb棒。您可以连接到您的中央存储库提交,就像您可以使用CVS;或者,您可以在公园工作一天没有互联网连接,提交您喜欢的,然后推送到您的服务器在一天结束。我更喜欢后者。
我的开发团队很小,根据我们正在进行的项目,我们在3-5个开发人员之间变化。我们的工作环境有一些奇怪的限制,使得集中式系统难以实现。相反,我们使用Git使我们能够在我们开发的各种独立网络之间协调我们的工作。Git或任何DVCS的真正优势在于,它允许您停止考虑物理开发资源:服务器、开发人员、公园;并让您自由思考,纯粹从分支和时间的角度来思考,这是VCS空间中的真正维度。
这是我要说的,有点原创,这里有一些链接,应该证明更多的信息:
http://thinkvitamin.com/code/why-you-should-switch-from-subversion-to-git/
http://tom.preston-werner.com/2009/05/19/the-git-parable.html
https://softwareengineering.stackexchange.com/questions/74453
复制相似问题