mercurial - 在 Mercurial 中撤销多个变更集的最佳方法是什么?

标签 mercurial

是最可靠的方法来逐一进行,对每个变更集使用 backout 命令,或者有没有办法创建一个大的反转变更集来覆盖一大堆[编辑:非-连续] 变更集。

如果一对一,顺序重要吗? (应该从最后到第一个吗?)

如果不同子项目之间存在 merge ,最佳方法是否会有所不同?

根据您的经验,这一切进展顺利吗? :-)

最佳答案

如果一路上没有 merge ,您可以取消每个单独的更改(以相反的顺序),或者,如果有很多更改,则使用一个大的反向补丁来完成。

如果您在需要撤销的变更集之上有良好的变更集,最好在最近的错误变更集之上提交反向补丁,然后将它们重新定位到分支的尖端。

1 -- 2 -- A -- B -- C -- 3 -- 4
                     \
                      C'B'A'

$ hg up C
$ hg diff -r C:2 > backout.diff
$ hg import --no-commit backout.diff
$ hg ci -m "Backout A, B, C"
$ hg up 4
$ hg rebase -s C'B'A -d .

如果您想撤销 merge 变更集,将会出现问题,请参阅 this wiki page了解更多信息。

在这种情况下,如果可能的话,请考虑重新进行分支并剥离旧的沿袭。否则,您可能必须完全放弃该分支,通过嫁接或移植来挽救好的变更集。

关于mercurial - 在 Mercurial 中撤销多个变更集的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10691993/

相关文章:

django - Mercurial:在初始提交后排除 django settings.py

mercurial - 如何显示 Mercurial 中特定于命名分支的差异

python - 如何从python导入路径中删除当前目录

python - TortoiseHG 图标丢失(Ubuntu Linux 16)

iphone - 我应该使用 Storyboard 和 Mercurial 进行团队合作吗?

merge - 删除TortoiseHG和Mercurial中的修订

Mercurial 传出 Hook

version-control - hg : third party repository inside my own - with auto-pull? 这个怎么解决的?

git - 有没有办法将 git 或 Mercurial diff 输出通过管道传输到 GUI Diff 工具?

mercurial - hg 从 cvs 转换破坏分支