繁体   English   中英

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

[英]Distributed Version Control “killer applications”

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

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

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

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

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

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

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

合并

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

从出版中分离出来

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

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

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

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

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

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

对于OSS项目

贡献率低的进入壁垒

首先,大多数DVCS都有很好的工具来处理补丁(通常通过电子邮件发送),既可以创建它们也可以应用它们。 贡献者可以使用任何工具创建补丁(尽管最好使用项目使用的DVCS创建补丁,因为一些DVCS在补丁中添加额外信息),并将其发送到项目的邮件列表,或直接发送给项目维护者,或将其附加到问题跟踪器中的错误报告/功能请求。

其次,你不需要提交位来贡献。 只需克隆项目存储库,您就可以使用DVCS的全部功能。 然后,您可以发送补丁或拉取请求,或推送到“暴徒”分支; 有很多可能性。

对于项目维护者来说,这也是一个优点:他/她不必担心他/她可以信任谁提供“提交位”,即访问存储库,就像CVCS中的情况一样。 Karl Fogel在制作开源软件中写道 如何运行一个成功的自由软件项目。 他发现对于项目来说更好的是访问控制等限制更好地是社交而不是技术; 由于不需要决定是否提供提交许可,DVCS更进一步。

大多数功能可离线使用

使用像Subversion这样的集中式VCS,离线时唯一能做的就是编辑内容。 有些系统确实提供了对其他功能的有限访问(例如在Subversion中你可以差异并从repo恢复到最新版本),但是大多数使VCS变得有用的东西,那就是

  • 阅读历史
  • 检查旧版本
  • 提交
  • 创建分支

只有在连接到中央服务器时才可以。

使用DVCS,上面的所有操作都在本地工作,如果需要进入中央服务器,您可以在以后再次在线时将其推送到中央服务器。

如果您总是在线(例如在办公室),这可能并不重要,如果您经常需要离线工作,例如在旅途中或在家中使用不稳定的连接时,这可能是至关重要的。

我特意开始使用git因为我经常在路上工作而且通常没有(可靠的)连接。

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

与他人共享更改而不发布

对我来说,杀手级应用程序,当我是一个大型团队时,能够与其他工程师一起工作,共享更改,而无需通过中央服务器。 这意味着我们可以以受控的方式共享未完成的功能(即没有“从我的树中复制此文件”),这一切都正常工作。

  • Alice开始研究一个功能,但是在发布之前需要Bob做一些事情。
  • Bob直接接受了Alice的更改,完成了该功能。 爱丽丝和鲍勃可能会在他们之间来回走动。
  • 质量保证人员查理接受鲍勃和爱丽丝的改变。 测试他们。 他们没事! 他将整个推送到主服务器上。 其他人现在可以获得该功能 - 完整且经过测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM