【问题标题】:Overwriting branch with default in Mercurial在 Mercurial 中使用默认值覆盖分支
【发布时间】:2023-03-25 06:50:01
【问题描述】:
假设我有一个名为feature_x 的功能分支正在处理,然后变更集樱桃挑选并移植到默认值,然后分支被关闭。不是最好的流程,但它是 Mercurial,所以没有办法改变历史。
现在我将再次处理功能 X,我觉得重用 feature_x 分支最不令人困惑。但是,如果我重新打开该分支并将default 合并到它,我就会遇到两个问题。第一次合并冲突,在该分支中修改的第二次更改,但从未合并到默认值中。所以我想要的是干净的石板,分支feature_x,但与当前default 中的内容完全相同。有没有比创建会影响名称的新分支更清洁的方法?
【问题讨论】:
标签:
mercurial
branching-and-merging
【解决方案1】:
我认为你最好的选择是从 default 的当前提示开始一个新的分支,称为 feature_x2 或 feature_y,并将过去留在过去。
但这里有一些其他选项:
旧的 feature_x 分支是仅限于本地的仓库还是被推送?如果是前者,您可以hg strip 它并在当前default 处再次启动分支。
-
如果feature_x 名称非常非常重要,您可以使用internal merge tools 将默认分支合并到其中,并强制它完全反映默认分支
hg merge -r default --tool internal:other
或者您可以在branch_x 的顶端提交default 的(文件系统)副本。然后你可以沿着你快乐的方式继续那个分支。
我不知道 2. 或 3. 是否会导致奇怪的合并问题。我会测试看看合并回默认(或其他移植?)是否会在以后引起问题。