【问题标题】:Mercurial Experimentation WorkflowMercurial 实验工作流程
【发布时间】:2010-09-16 15:55:00
【问题描述】:

在尝试实现某个功能时,我在 Mercurial 工作流程中遇到了问题。我尝试了三种不同的方法来实现该功能,方法是提交每个更新,然后更新到以前的变更集——所以我最终得到了三个不同的分支。

一旦我选择了一个分支作为该功能的“正确”实现,我想删除其他分支,这样我就没有多个头了。我如何以简单的方式做到这一点?我最终将三个分支合并在一起,这是毫无意义的,因为我只想要一个分支的代码。

【问题讨论】:

    标签: mercurial workflow branch


    【解决方案1】:

    除了mq extension中的hg strip,您还可以简单地使用standard clone command

    $ hg clone -r the-good-head . ../pruned
    

    ../pruned 中获得一个克隆,它只包含好头(及其所有祖先)。这是在 Mercurial 中修剪内容的安全、内置方法,它的优点是在命令之后您仍然拥有完整的两个存储库。因此,如果您犯了错误,则只需删除 ../pruned 克隆。

    【讨论】:

      【解决方案2】:

      以下关闭一个分支

      hg commit --close-branch
      

      它不会出现在

      hg branches or hg heads
      

      【讨论】:

      • 它仍然出现在 hg 头中。我实际上并没有创建一个分支,只是一个 3 头九头蛇!
      • 它对我有用。你碰巧有-c 作为hg heads 的默认选项吗?
      • Mercurial 1.3.1 中还有一个错误,这在最新版本的 Mercurial (hg head) 上运行良好。
      【解决方案3】:

      启用内置 mq 扩展并运行hg strip

      @pyfunc 的回答将关闭的分支保留在修订历史记录中,除非您不需要的分支很大,否则我实际上会这样做。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-30
        • 2012-12-13
        • 1970-01-01
        • 2012-02-27
        • 1970-01-01
        • 2013-12-19
        相关资源
        最近更新 更多