版本控制 – 在Mercurial的开发和生产之间进行

我已经使用了mercurial一段时间了,但还没有真正习惯使用分支机构,所以在将它应用到实际项目之前,我正在努力弄清楚这个工作流程是否有意义.

问题:
每次我们通过将生产合并到一个新版本来复活开发分支是否真的有意义,或者我们应该制作像开发1.1这样的独特命名的短期开发分支?

工作流程描述:
我们代码的每个生产就绪版本都将被标记(1.0,1.1等)并放置在生产分支中.一旦我们将1.0投入生产,我们立即开始研究下一个版本 – 1.1,打开一个名为development的分支,然后由每个开发人员为每个指定的功能进行子分支,以保持整洁.到目前为止非常简单.

现在,包含合并后功能分支的开发分支将进行测试并合并回生产环境,因为这些更改已被视为生产就绪.

当我们需要继续处理即将发布的版本1.2时,我们将生产分支合并到开发分支中并开始工作.

修订的历史记录:

@    changeset:   8:21e89b501d4e
|\   branch:      development
| |  tag:         tip
| |  description: Development stage for v1.2 opened by merging production into development.
| |
| o  changeset:   7:920ca77aa956
|/|  branch:      production
| |  tag:         1.1
| |  description: Version 1.1 stable (merged from development).
| |
o |    changeset:   6:691b7aa99e42
|\ \   branch:      development
| | |  description: Feature merged in to development
| | |
| o |  changeset:     5:5156cb9cf556
| | |  branch:        feature
| | |  description:   Feature finished
| | |
| o |  changeset:     4:0345dc73e144
|/ /   branch:        feature
| |    description:   Work started on a feature
| |
o |  changeset:    3:9d49be5d8a03
|/   branch:       development
|    description:  Development branch opened
|
o  changeset:     2:ba818420fa88
|  branch:        production
|  tag:           1.0
|  description:   Version 1.0 stable. Woop woop!
最佳答案
使用Mercurial命名分支是永远的,因此一般建议只将它们用于始终适用的名称.像“稳定”和“开发”之类的东西,而不是“bug-194534”和“release-1.1”之类的东西.这很好地解释了in the wiki.

对于具有有限寿命的东西,你最好使用类似书签的东西,它比git调用分支更接近于Mercurial命名分支.短期概念的其他很好的选择是匿名分支或克隆,两者都是非永久性的.

一般的建议是使用default as your development branch,但简而言之,是的,继续重复使用相同的分支进行开发.

转载注明原文:版本控制 – 在Mercurial的开发和生产之间进行 - 代码日志