Mercurial工作流程可以处理突发的高优先级任务

时间:2010-05-11 09:12:05

标签: mercurial workflow

场景是我一天早上上班,拉,更新,合并我的mercurial树。从现在的最新版本开始,我开始处理今天的任务。我达到了一个合乎逻辑的里程碑并做了提交。树现在看起来像这样:

*  <- my first commit for the day
|
*  <- merge commit from shared repos by team

现在老板出现了,发生了一些可怕的事情,需要我立即关注。他希望解决方案尽快推出。

我当天的计划被打乱了。使用mercurial解决这个问题的最佳方法是什么?

  • 我可以编写解决方案并进行另一次提交,然后进行推送。但这很糟糕,因为提交会将我自己的第一次提交作为父级,从而推送不完整的代码。
  • 在一个完美的世界中,也许新编码Im编码将在其自己的分支中。但它的一个小功能和我懒惰,所以它目前驻留在default。我可以尝试找到一种方法将提交从一个分支移动到另一个分支。
  • 我可以忽略恐慌的老板,做两到三次提交来完成这个功能,推送它然后然后开始处理修复程序,将它们作为一个单独的提交并推送。

这些都不好。我想要的是:

  1. 做一次更新,让我回到合并提交。
  2. 执行修复并提交它。
  3. 仅推送修复提交,保持未完成功能提交仍然未按下。
  4. 从而使历史成为这样:

    *  <- fix commit (pushed)
    |
    | *  <- my first commit for the day (unpushed)
    |/
    *  <- merge commit from shared repos by team
    

    我们刚刚在办公室迁移到mercurial,这是我想解决的一个问题。这里任何善变的大师都会分享一些智慧吗?

1 个答案:

答案 0 :(得分:2)

您正在描述的工作流程看起来不错(更新为合并,提交,推送修复)。如果您对匿名分支感到不舒服,可以先将rep-clone复制到合并,提交和推送。