【问题标题】:Can I checkout & commit to several Mercurial hg branches at once?我可以一次结帐并提交多个 Mercurial hg 分行吗?
【发布时间】:2012-07-26 03:06:54
【问题描述】:

我从互联网上 fork 了一个项目,我想编写一些新功能。我想同时编写几个正交功能(例如调试助手、新功能 X、新功能 Y),并将所有这些功能的代码放在我的当前目录中,但是当我提交时,我希望能够说“这些文件转到分支'debug'”,“这些文件转到分支'feature X'”等。这些是'hg分支'意义上的分支。

这样做的原因是上游项目可能不想合并我的调试助手或被黑的错误修复,但我当然想在开发我的功能时使用它们。

实际上,我只想将这些文件中的更改应用到分支,但保留几个分支检出并合并到我当前的工作目录。

这可能吗?也许有一些 hg 扩展可以做到这一点?

谢谢!

【问题讨论】:

    标签: mercurial merge commit branching-and-merging


    【解决方案1】:

    查看mercurial queues (MQ) 了解调试助手或本地黑客等内容。对于您只需要在本地并且可能希望应用于任何修订/分支的补丁非常有用。

    恕我直言,对分支做同样的事情变得乏味,因为您必须非常小心地对不同分支上的调试和功能进行更改,然后将它们合并到本地的一次性分支中才能运行任何东西。您最终可能会在功能分支上产生大量变更集,从而使树处于损坏状态,因为您只能在提交后进行测试。

    【讨论】:

      【解决方案2】:

      我不完全理解你为什么要那样做。如果您的特征是正交的,您可以独立处理它们,直到它们准备好合并。毕竟,这正是分支的用途!

      但要回答您的问题:您可以在分支上 commit,然后,作为工作流程,始终将 up 设置为默认值,将 merge 设置为默认值。这将使默认分支保持为总和其他特性。在提交之前,您需要 update 到功能分支,但这可能会变得乏味。

      事后确定要提交到哪个分支的另一个选项是使用rebase 扩展。在这种情况下,您将提交您的更改,然后执行hg rebase -d targetBranch

      不过,我不建议将历史修订作为标准工作流程的一部分。我闻起来很香。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-16
        • 1970-01-01
        • 2010-09-14
        • 1970-01-01
        • 2012-01-01
        • 1970-01-01
        相关资源
        最近更新 更多