我最近开始使用Mercurial跟踪项目的更改。在我开始处理某个功能之前,我做了几次修改。现在,我想在实现该功能之前回到我的修订版,并尝试以一种非常不同的方式实现它。但是,我希望在第一次实现时保留一些更改,因为无论我选择哪种实现,它们都适用。
在开始实现该功能之前,更新回到修订版的最佳方法是什么,但是有选择地将默认分支中的更改合并到一个新的独立分支中?这是与Mercurial合并/分支的正确方法吗?如果我这样做,我可以稍后“删除”其中一个分支,转而支持此功能的一个特定实现吗?
答案 0 :(得分:3)
如果你有像Beyond Compare这样的外部差异程序,这很容易。
hg bcompare
将运行Beyond Compare)hg branch
)或设置书签(hg bookmark
)以跟踪此新的更改集。有关差异的说明,请参阅http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/。当您决定所需的实施时,您可以更新到您不想要的分支机构的负责人,并使用hg commit --close-branch
将其标记为已关闭,但仍然会将其保留为已关闭作为存储库中的头。如果您想将其作为头部删除,请更新到您执行想要的分支主管并使用hg merge --tool internal:local <rev-of-the-other-head>
进行合并,但保留所有想要的更改。
答案 1 :(得分:1)
我知道这个问题有点陈旧,但今天我在处理一个项目时碰到了类似的问题。我花了几天的时间去尝试默认分支上的一个功能。这是我用来使代码库恢复良好状态的过程。
移植现已在mercurial的包装盒中发货,只需要您启用它。该文档位于Mercurial wiki。希望这有帮助!