在Mercurial中使用默认值覆盖分支

时间:2014-06-12 15:02:20

标签: mercurial branching-and-merging

假设我有一个名为feature_x的功能分支已经处理过,然后更改集樱桃挑选并移植到默认值,然后分支被关闭。不是最好的流程,但它是Mercurial,所以没有办法改变历史。

现在我将再次使用功能X,我觉得重用feature_x分支最不会让人困惑。但是,如果我重新打开该分支并将default合并到它,我有两个问题。第一次合并冲突,在该分支中修改的第二个更改,但从未合并为默认值。所以我想要的是干净的石板,分支feature_x,但是具有default中当前所有内容的精确副本。有没有更简洁的方法,而不是创建一个会影响名称的新分支?

1 个答案:

答案 0 :(得分:3)

我认为您最好的选择是从名为defaultfeature_x2 feature_y的当前提示开始新分支,并将过去留下。

但是这里还有其他一些选择:

  1. 旧的feature_x分支机构仅在本地限制在您的仓库中还是被推送?如果是前者,您可以hg strip它并在当前default再次启动分支。

  2. 如果feature_x名称确实非常重要,您可以使用internal merge tools将合并默认值添加到其中,并强制它通过执行

    来完全反映默认分支
    hg merge -r default --tool internal:other
    
  3. 或者您可以在default的提示之上提交branch_x的(文件系统)副本。然后,你可以沿着快乐的方式继续在那个分支上。

  4. 我不知道2.或3.是否会导致奇怪的合并问题。我会测试看看合并回到默认(或其他移植?)可能会导致问题。