介于Mercurial的开发和生产之间

Ind*_*ial 3 version-control mercurial branching-and-merging

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

问题:每次我们通过合并到新版本来
恢复development分支时,恢复分支是否真的有意义production,或者我们应该创建独特的命名短期开发分支development-1.1

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

development分支,现在包含在-合并feature分支,然后测试并合并到production的变化被认为是生产就绪.

当我们需要继续处理即将发布的版本时,1.2在此示例中,我们将production-branch 合并到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!
Run Code Online (Sandbox Code Playgroud)

Ry4*_*ase 6

Mercurial 命名分支是永远的,因此一般的建议是只将它们用于总是适用的名称.像"稳定"和"开发"之类的东西,而不是"bug-194534"和"release-1.1"之类的东西.这在wiki中得到了很好解释.

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

一般的建议是使用default作为开发分支,但简而言之,是的,继续重用相同的分支进行开发.

  • "一般的建议只是将它们用于那些总是适用的名字" - 不要假装在一般建议下给它,这是谎言.从wiki引用"...如果你试图使用每个bugfix的分支,你*最终可能会遇到性能问题.Mercurial旨在与数百*分支机构一起工作.它仍然可以很好地工作一万个*枝......" (3认同)
  • @LazyBadger:我同意你的观点,但这不是Ry4an的错.他只是遵循党派路线 - 马特的立场是命名分支不应该用于每个bug,但有些公司做得很好.就像[我以前写的](http://stackoverflow.com/a/8870937/110204),似乎它主要是一个GUI问题. (2认同)