如何在公司中设置分布式版本控制

时间:2009-03-19 09:15:16

标签: git mercurial dvcs

根据我在开源项目中使用分布式版本控制系统(DVCS)(如git和mercurial)的经验,大多数设置模型都使用集中设置进行项目(想想GitHub)。

将分布式VCS引入公司时,您是否拥有集中式设置模型

4 个答案:

答案 0 :(得分:4)

拥有某种中央存储库是个好主意,因为它允许您共享代码,但也有一个分支,您可以直接生成构建/导出快照。该服务器可能有多个分支,其中一个被认为是“主干”分支。任何以前的版本都有自己的分支,并且根据您团队的层次结构(即如果您被分成小组,每个小组处理应用程序的一个方面),那么可能有基于团队或功能的分支,但如果您不赞成不这样做是不必要的。

当然,因为它是分布式的,每个开发人员也将拥有自己的本地存储库,以使事情变得美观和快速。或者他们每个人都可以拥有多个存储库。例如,喜欢在上下班途中工作的开发人员可能在他的工作站上有一个存储库,而在他的笔记本电脑上有另一个存储库,他的笔记本电脑上的分支机构可以从他工作站上的分支机构中“检出”。这取决于他。我想“分布式”部分使这类事情变得更容易,因为你可以在离开网络时提交甚至分支。

如果您正在从非分布式VCS转换,那么您可以直接进入与之前相同的模型,因为DVCS足够灵活,可以以相同的方式工作。否则,您可以从具有一些分支的单个中央存储库开始,稍后创建更多存储库和分支总是非常容易。

最后一件事是你还需要备份。各个开发人员都拥有相同内容的副本这一事实增加了冗余,但它不是而不是备份。

我经常使用的DVCS是Bazaar。我也尝试过Mercurial。

答案 1 :(得分:3)

是的,但你有很多选择。我见过的最好的图表解释了其中一些是http://whygitisbetterthanx.com/#any-workflow

答案 2 :(得分:0)

这并不是将它们与其他类型的VCS(称为cetralized VCS)区别开来的功能。

因此,如果公司有svn经验,例如。使用存储库和备份模型的专用服务器,您可以为DVCS应用几乎相同的东西。

答案 3 :(得分:0)

是的,我认为对于公司或公司中的至少一种产品来说,拥有集中式设置模型是最好的或者最简单的。毕竟, 试图制作一个连贯的产品。

然而,DVCS灌输了一种不同的工作精神和模式,您可能希望或不想在您的团队中鼓励。特别是,它增加了实验(只使用本地副本,你不打扰任何人)。维护旧版本更容易,或者如果您进行了许多客户特定的更改,需要跟踪它们而不将它们放在实际产品中。

当你的团队在非现场工作时,这是非常宝贵的。在我的公司,工程师经常在现场进行最后一分钟的更改,出于安全原因,他们没有互联网访问权限。中央VCS根本不适用于这种情况。

所以有一个中央存储库,但是可以以分散的方式工作的事实是非常宝贵的。在工作流程方面,DVCS是集中式VCS的超集。当然,如果您认为您不需要(或想要!)其他选项,您仍然可以选择使用集中式VCS。