~15名开发人员的Mercurial工作流程 - 我们应该使用命名分支吗?

Joe*_*der 32 mercurial branch

我的团队刚开始使用Mercurial和一个中央存储库.我们让哈德森建立了"默认"分支的尖端 - 这基本上是我们的主线.我们在旧的VCS上签了一个签到政策,在您登录主线之前必须完成代码审查,测试等工作.

所以,假设您正在处理功能X.您正在处理某些内容,基于"默认",然后您将部分功能作为检查点提交.在本地你的"默认"现在已经破了 - 你还没有与任何人分享它,但如果你要推动,那么现在你已经在主线中破解了代码.

即使你等到你把它全部整理好了,似乎有些情况(例如同时处理两件事情),你需要推动一些改变但不是全部.

此外,如果您检查所有检查点更改,那么将在主线中进行一些修改,而主线中的其他修订将不构建.

我们已经开始使用命名分支 - 但是我做的阅读越多,我认为我们错误地使用了命名分支.

有关如何设置一个良好的工作流程的任何建议,允许我们运行Hudson并保持我们的主线政策?

ale*_*rul 18

首先,我强烈推荐Mercurial的分支指南

接下来,你可以推送当前的分支:Nudge - 一个更温和的推送版本

也许你可以决定每个分支只允许一个头:32.防止产生多个头的推动

与命名分支相关的其他SO问题:


mch*_*mch 2

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

开发人员总是推送到测试存储库,但只从主线拉取,因此他们只拉取经过测试的代码。如果他们需要共享未经测试的变更集,他们可以直接在彼此的本地存储库之间推送/拉取。也许可以将 Hg 配置为使主线仅接受来自测试存储库的推送,这样开发人员就不会意外地推送到主线而不是测试。

拥有一个评论存储库可能也很好。因此开发人员推送测试,Hudson 推送测试过的代码进行审查,然后将审查过的代码推送到主线。

免责声明:我只在琐碎的项目中以琐碎的方式使用过汞。