Mercurial:避免跳过祖先修订的方法
Mercurial : Way to avoid skipping ancestor revision
我遇到了与what does 'skipping ancestor revision' mean when using 'graft'?
类似的问题
但是这个SO主题不给出解决方案,只给出解释。
更详细:昨天同事犯了一个错误并推送了它。其他同事和我在此之后添加了提交。为了快速修复这个错误,我使用 hg backout 取消了这个提交号 11511。
但是我不想放弃这个提交,所以我创建了一个新分支(从回退提交)并且我试图嫁接 11511 提交但是 Mercurial 说:
跳过祖先版本
我想获取包含 11511 提交更改的分支来修复错误。解决方案是什么?
好的,我对你的问题有点误解。
下一行下面的部分是如何在需要时重新应用错误的变更集。
这里的重要部分是您没有丢失任何东西。退出变更集不会从历史记录中删除原始变更集,而是创建另一个与您退出的变更集相反的变更集,实际上删除了原始变更集引入的变更。
因此,在您决定恢复那些糟糕的更改之前,您无需执行任何操作。那时,当您想要恢复错误的更改时,您可以按照我在下面提到的进行操作。你要做的是更新紧接在原始坏变更集之前的变更集,然后将坏变更集移植到它上面,这将创建一个与你退出的原始坏变更集平行的新头。
这个新头部以后可以合并回头部。
解决此问题的另一种方法是简单地撤销撤销变更集。
Mercurial 感到困惑,因为您正试图嫁接一个已经存在于历史记录中的提交(并且没有意识到撤消将其还原)。
有几个可能的解决方案。一,使用 -f
选项强制 hg graft
继续:
hg graft -f -r 11511
或者,您可以在您创建的分支上再次撤销已撤销的提交。
我遇到了与what does 'skipping ancestor revision' mean when using 'graft'?
类似的问题但是这个SO主题不给出解决方案,只给出解释。
更详细:昨天同事犯了一个错误并推送了它。其他同事和我在此之后添加了提交。为了快速修复这个错误,我使用 hg backout 取消了这个提交号 11511。 但是我不想放弃这个提交,所以我创建了一个新分支(从回退提交)并且我试图嫁接 11511 提交但是 Mercurial 说:
跳过祖先版本
我想获取包含 11511 提交更改的分支来修复错误。解决方案是什么?
好的,我对你的问题有点误解。
下一行下面的部分是如何在需要时重新应用错误的变更集。
这里的重要部分是您没有丢失任何东西。退出变更集不会从历史记录中删除原始变更集,而是创建另一个与您退出的变更集相反的变更集,实际上删除了原始变更集引入的变更。
因此,在您决定恢复那些糟糕的更改之前,您无需执行任何操作。那时,当您想要恢复错误的更改时,您可以按照我在下面提到的进行操作。你要做的是更新紧接在原始坏变更集之前的变更集,然后将坏变更集移植到它上面,这将创建一个与你退出的原始坏变更集平行的新头。
这个新头部以后可以合并回头部。
解决此问题的另一种方法是简单地撤销撤销变更集。
Mercurial 感到困惑,因为您正试图嫁接一个已经存在于历史记录中的提交(并且没有意识到撤消将其还原)。
有几个可能的解决方案。一,使用 -f
选项强制 hg graft
继续:
hg graft -f -r 11511
或者,您可以在您创建的分支上再次撤销已撤销的提交。