具有选择性功能部署和持续集成的Mercurial工作流

具有选择性功能部署和持续集成的Mercurial工作流,mercurial,merge,workflow,branch,teamcity,Mercurial,Merge,Workflow,Branch,Teamcity,对于一个由12名开发人员组成的团队,您能否帮助我确定使用mercurial进行源代码管理和使用team city进行构建服务器构建和部署产品的流程和工作流 我们有一个跟踪问题和增强请求的系统。其中大多数都是相当小的bug和增强,由一个开发人员在一两天到一周的时间内完成。我想要完成的是让业务人员和IT管理人员为开发人员工作的票据协商优先级。完成后,这些更改将提交并推送到中央存储库,并在票务系统中标记为dev complete。然后,qa和业务团队应该能够从标记为dev complete的记录单中进

对于一个由12名开发人员组成的团队,您能否帮助我确定使用mercurial进行源代码管理和使用team city进行构建服务器构建和部署产品的流程和工作流

我们有一个跟踪问题和增强请求的系统。其中大多数都是相当小的bug和增强,由一个开发人员在一两天到一周的时间内完成。我想要完成的是让业务人员和IT管理人员为开发人员工作的票据协商优先级。完成后,这些更改将提交并推送到中央存储库,并在票务系统中标记为dev complete。然后,qa和业务团队应该能够从标记为dev complete的记录单中进行选择,并根据优先级、必要的qa数量和qa资源可用性将这些记录单包含在下一版本的产品中

我最初认为我可以通过让开发人员为每个票证在一个新的命名分支上提交更改来实现这一点。这样,可以将每个所选票据的分支合并到默认值中,并且可以执行构建和部署到qa(以及最终的生产)

这方面的问题是持续集成。在我看来,我只能静态地配置teamcity来构建我们中央存储库中的特定分支。也许这是我们正在使用的teamcity版本的一个限制。目前正在使用5.0.3,但升级是一种选择(我们可能会做一些事情)。也许有一些棘手的方法可以让它在tip上构建,从而在提交触发构建的分支的头上构建?如果开发人员正在提交并推动所有内容的不同分支,并且这些分支直到一段时间后才合并为默认分支-足够晚了,qa现在正在等待这些更改生成,并且如果存在损坏的生成,成本更高-没有一个特定的分支可供我们进行持续集成构建

也许我把这件事弄得过于复杂和/或忽略了一些简单的事情。谢谢你的帮助。有没有一种方法可以完成对发布版的选择性集成,并且在开发人员进行推送时仍能持续集成?

使用Jenkins(以前的Hudson),开发人员很容易复制现有作业(例如:构建最新的“默认”分支的作业)并进行小的更改(例如:在“jim”分支机构中建立最新负责人的工作)。(尽管阅读我上面关于为什么命名分支机构可能不是您所做工作的正确选择的评论)。teamcity大概也有类似的情况


另一种方法是按照您所说的那样做,让构建者始终构建“tip”,而不管分支如何。您可能只需要将“tip”作为分支名称就可以实现这一点。它不是分支说明符,但teamcity可能只是执行“hg update-C-r BRANCHNAME”和“tip”就可以了。

我试图采取的方向是行不通的。必须以另一种方式进行。命名分支对于Bug和features之类的短期工作来说不是正确的选择。它们最好保留为“稳定”和“实验”之类的永恒概念,并在发布时使用标记。阅读本文,但请注意,两个同时出现的p如果时间足够短,来自两个开发者的USHE将使TeamCity超越第一个。我也在Jenkins身上看到了这一点。单独的工作可以避免这一点,但技巧总是容易受到影响。感谢信息人员。我将在构建配置中的分支中尝试一下技巧。我从未想到过简单的方法是可行的。我看到了关于命名分支的观点。我会考虑这个问题,和我的团队讨论这个问题。我会回到这里报告结果并接受答案。只是插上小费是行不通的。