Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control 删除与祖先的合并_Version Control_Mercurial - Fatal编程技术网

Version control 删除与祖先的合并

Version control 删除与祖先的合并,version-control,mercurial,Version Control,Mercurial,我有以下形式的易变回购: ... 27-28----------------------38-39 ... tip \__ 29 __ ... __ 37__/ 正如你所看到的,我不小心把37个合并成了28个,创造了38个。我如何解决这个问题,从而得到一个简单的线性历史,如下所示: ... 27-28-29-...-37-39-...tip 没有简单的方法可以做到这一点。您可能可以使用convert扩展来使用--branch map参数重建具有该历史的存储库,并根据需要手动

我有以下形式的易变回购:

... 27-28----------------------38-39 ... tip
         \__ 29 __ ... __ 37__/
正如你所看到的,我不小心把37个合并成了28个,创造了38个。我如何解决这个问题,从而得到一个简单的线性历史,如下所示:

... 27-28-29-...-37-39-...tip

没有简单的方法可以做到这一点。您可能可以使用
convert
扩展来使用
--branch map
参数重建具有该历史的存储库,并根据需要手动将其缝合在一起,但这将使所有现有克隆无效,更改哈希值,并且是一件很麻烦的事情。不要崇拜线性历史——匿名分支和合并是正常DVCS工作流程的一部分。拥抱它。

如果它还没有被推送,最简单的方法是将
39(及其子代)重设为37的基础,然后简单地
删除
变更集38


您将获得您的线性历史记录,但正如@Ry4an所说,“接受”您的历史记录不会是线性的这一事实,否则它只会让您不高兴……

您的合并是公开的,即您是否已将其推出?一旦更改是公开的,它就不可变,并且不能更改或移动。还有,为什么要线性历史?你想解决什么问题?不,还没有出版。我需要它没有充分的理由。我只是好奇而已。