分布式版本控制"杀手级应用程序"

Max*_*ler 11 git version-control mercurial dvcs

考虑改用Mercurial或Git?我们也是.我目前正在研究DVCS的好处,结果是巨大的,欲望和必须.

我很想听听社区的典型使用模式.

让我们为DVCS创建一个"前N"生产力功能列表(基于Mercurial,Git或类似).

请描述证明对您/您的团队有效的工作流程,DVCS帮助您实现/改进的程序以及DVCS为您提供的直接"好东西"(不要认为新手用户很清楚).

我认为这样的列表可以帮助那些接近团队的人提出DVCS建议.

显然,这个问题是社区维基.

Von*_*onC 19

一个真正的实际杀手功能是......

合并

DVCS(Git,Mercurial或其他)用于合并(正因为,分发,合并是允许这些工具快速集成来自各种远程存储库的代码的关键特性).
SVN无法完成任务(即使是今天).
看到:


Jak*_*ski 11

从出版中分离出来

这对于较大的功能非常重要,因为这意味着可以通过一系列提交来实现一个功能(每个提交都很小并且自包含,以便通过平分历史来轻松查找错误)达到自己的满意度,并且只有在它们是准备发布它们.

此方法的一种变体是将具有可重组分支的单独公共存储库与正在进行的工作相关联,并且仅在分支准备好进行检查时才推送(或发送拉取请求).


Max*_*ler 5

似乎对我们来说,"杀手级应用"将成为推动代码分阶段的可能性.

我们将拥有DEV repo,所有开发者都在推动它.QA repo将接受来自DEV repo的推送,并将构建其用于测试的代码版本.一旦测试完成,他们会将代码推送到生产仓库(QA仓库是唯一可以推动生产仓库更改的仓库),从中可以构建"生产"版本.

Joel的hginit(靠近页面底部)简要概述了这一点.

一旦我们实际执行了上述设置,我将更新此帖子.


小智 1

“杀手级应用程序”似乎是分布式团队:每个团队都可以拥有自己的存储库并根据需要推送更改,而不是绑定到中央服务器(通过缓慢或不可靠的连接)。