什么是有用的分支版本控制策略? [英] What is a useful Branch Versioning Strategy?

查看:104
本文介绍了什么是有用的分支版本控制策略?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们已经转移到一个产品版本的做法,将标志着/增量按照以下格式建立:。 [大] [小] [建设] [修订/补丁] ,以及产能的释放将主要是或大或小的增量(根据变化的范围)。

We have moved to a product versioning approach which will mark/increment builds according to the following format: [Major].[Minor].[Build].[Revision/Patch], and a production release will essentially be an increment of Major or Minor (depending on the scope of changes).

这伟大工程的修补程序和干线构建,而不是这么好分行并行特色发展 - 尤其是因为它很可能我们将建立候选版本关闭分支,而不是合并到主干和释放(不是我的preferred的选择,但可能会更现实,可惜)。

This works great for patches and Trunk builds, but not so well for concurrent feature development in branches - especially as it is likely we would build release candidates off the branch instead of merging to the Trunk and releasing (not my preferred option, but likely to be more realistic, unfortunately).

不管我们是否合并到主干(或没有),没有任何人有任何有用的策略来处理分支版本?我们就需要能够唯一地标识从树枝和主干建立,并最终可能会在任何时候从主干和分支释放。

Regardless of whether we merge down to the trunk (or not), does anyone have any useful strategies for dealing with branch versioning? We'd need to be able to uniquely identify builds from the branches and trunk, and may end up releasing from trunk or branches at any given time.

一些注意事项:


  • 我们可能不知道提前释放顺序是什么,所以试图承担次要版本应该是一个分支,由分支的基础是什么不可能解决问题。

  • 我们可以添加其他号码,以指示分支(如适用),但会在哪里它在逻辑上坐?
  • 产品编号

A(轻量级)情况下可能会有所帮助:

A (lightweight) scenario may help:

Product X\Trunk (ver 1.1.208.0)
Product X\Branches\Feature A (ver 1.1.239.0)
Product X\Branches\Feature B (ver 1.1.221.0)

编辑:我发现迄今位于的 MSDN 虽然它是对并发分支的独特版本有点含糊。

The best documentation I've found thus far is located on MSDN though it is a little vague on unique versioning of concurrent branches.

推荐答案

将近两周的思想,无论是从计算器和业内人士的对话和反馈之后谁我认为是在变革管理方面的专家,我们昨天来到了一个共识的做法。

After almost two weeks of thought, conversations and feedback both from StackOverflow and from people in the industry who I consider to be experts in the field of change management, we came to a consensus approach yesterday.

有确实没有对或错的答案 - 没有银弹 - 要正确处理分支/合并为,恕我直言,从业务到不同的业务和产品到产品。这是我们决定继续:

There's really no right or wrong answer - no silver bullet - to correctly handling branching/merging as, IMHO, it varies from business to business and product to product. This is how we decided to go ahead:

无论主干或分支的,我们将继续以这种格式:[大] [小]号[建设]。[重建]其中重修表明构建版本。分行及躯干会不同步(不同的版本号),但是这不是一个问题,因为我们将定义我们的构建配置和下降的位置明确反正。这将是一个环境管理责任,知道哪个版本部署到哪个服务器。

Regardless of trunk or branch, we'll continue to number based on the format [Major].[Minor].[Build].[Rebuild] where rebuilt indicates the build revision. Branches and trunk will get out of synch (different build numbers), but that's not a problem as we'll be defining our build configurations and drop locations explicitly anyway. It'll be an environment management responsibility to know which version is deployed to which server.

我们可能不会合并功能集成到一个发布分支,因为我们通常有一个更发布分支专注,所以我们会从候选分支释放和合并前增加在树干上(和其他分支如适用)次要版本下降到释放已部署后行李箱(如果适用)。

We probably won't merge features into a release branch as we typically have a more release branch focus, so we'll release from a candidate branch and increment the minor version on the trunk (and other branches if applicable) before merging down to the trunk after a release has been deployed (if applicable).

由于每一个版本引起一个小版本的增量(除了补丁)构建编号绝不会反向走。补丁显然来自PROD分支,因此内部版本号将增加。

Since every release elicits a minor version increment (except patches) the build numbering will never go in reverse. Patches will obviously come from a prod branch, so the build number will increase.

我有个要记住这个线程openand让别人写管理分支版本的preferred技术。

I've a mind to keep this thread openand let others write about their preferred technique for managing branch versioning.

这篇关于什么是有用的分支版本控制策略?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆