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

问题:
每次我们要通过将 development 合并到新版本中来重新创建 production 分支真的有意义吗,或者我们应该创建像 development-1.1 这样的唯一命名的短期开发分支?

工作流描述:
我们代码的每个生产就绪版本都将被标记( 1.01.1 等)并放置在 production 分支中。一旦我们将 1.0 投入生产,我们立即开始下一个版本 - 1.1 的工作,通过打开一个名为 development 的分支,然后每个开发人员为每个分配的功能创建子分支以保持整洁。到目前为止非常简单。
development 分支,现在包含合并的 feature 分支,然后被测试并合并回 production ,因为这些更改已被视为生产就绪。

当我们需要继续处理即将发布的版本时,在本例中为 1.2,我们将 production 分支合并到 development 分支中并开始工作。

修订历史说明:

@    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

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

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

关于version-control - 在 Mercurial 的开发和生产之间切换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9153623/

10-13 07:55