代码之家  ›  专栏  ›  技术社区  ›  Joe Schneider

Mercurial工作流适用于约15名开发人员-我们应该使用命名分支吗?

  •  32
  • Joe Schneider  · 技术社区  · 16 年前

    我的团队刚刚开始使用Mercurial和一个中央存储库。我们让哈德逊建立了“默认”分支的顶端——这基本上是我们的主线。我们与老风投有一个签入政策,即在签入主线之前必须进行代码审查、测试等。

    那么,假设您正在处理功能X。您正在处理一些东西,以“默认”为基础,然后提交一个部分功能作为检查点。在本地,您的“默认值”现在已被破坏——您还没有与任何人共享它,但如果您要进行推送,那么现在您的主线中的代码已被破坏。

    即使你等到一切都解决了再去推动,似乎在某些情况下(例如,同时做两件事),你需要推动一些改变,但不是全部。

    此外,如果您签入所有检查点更改,那么在生成的主线中会有一些修订,而在未生成的主线中会有其他修订。

    我们已经开始使用命名分支,但是我读得越多,我就越觉得我们错误地使用了命名分支。

    关于如何建立一个良好的工作流程,使我们能够运行哈德逊和保持我们的主线政策,有什么建议吗?

    5 回复  |  直到 16 年前
        2
  •  2
  •   mch    16 年前

    你可以考虑至少两个储存库。“主线”存储库中有经过测试和审查的代码。只有在Hudson对代码进行了测试,并且完成了所有检查之后,代码才会被推送到这个存储库中。“测试”存储库将是主线的克隆。这是Hudson监视的存储库,因此每当变更集被推送到测试存储库时,Hudson测试都会被激活。如果测试通过,您可能可以设置一个Hudson构建步骤,将更改从测试存储库推送到主线。

    免责声明:我只在琐碎的项目和琐碎的方式上使用过Hg。

        3
  •  2
  •   gurney alex    16 年前

    我们在我的公司所做的是使用命名分支来区分稳定版本(我们只提交bug修复)和下一个开发版本,我们定期从稳定到默认(使用 hg merge stable 在默认分支上)。

    免责声明:我们不使用哈德逊。

        4
  •  2
  •   crazyscot    16 年前

    这是一个心态问题。分布式VCSE不要求您保留单个中央存储库。

    与其让主线对所有人开放以进行检查,不如将其设置为具有有限的写访问权限。只有经过批准的变更集(测试、签署,对您有意义的任何变更集)才会并入主线。

    • 让开发人员在自己的工作站上发布变更集(记住,分支很便宜),并让主线审查过程直接从那里获取变更集。
        5
  •  0
  •   Philip    12 年前

    你也可以考虑使用 Bookmarks 扩展而不是命名的分支。

    推荐文章