【发布时间】:2012-11-19 22:08:56
【问题描述】:
我对主(也是唯一的)分支进行了一些更改 (A)。然后我的同事做了一些其他的改变(B)。然后我发现更改(A)被彻底破坏了,我决定完全放弃它们。另一方面,变化 (B) 非常好,幸运的是完全独立于变化 (A)。变化 (B) 的数量远小于变化 (A)。
通常情况下,我会将hg commit --close-branch 设置为described here。但是后来我丢失了更改(B),并且需要在新的活动分支中重新创建它们。我可以做到这一点,只需(手动)识别受影响的文件,并(手动)更新它们,然后提交。这显然不是完美的,因为它需要两个手动步骤,并且还在存储库中创建了一个误导性的提交(误导性是因为这些更改是我的同事不久前做出的,但看起来好像是我今天做出的)。我想这不是世界末日,但有更优雅的解决方案吗?
注意:如果 Mercurial 支持将只是差异从一个提交应用到修订树中的另一个位置,它会起作用。但我怀疑此功能不存在,这是有充分理由的:当逐字应用于另一个父变更集时,差异与现有父变更集非常有用。
【问题讨论】:
-
“如果 Mercurial 支持仅将一个提交的差异应用到修订树中的另一个位置,它就会起作用。” – 确实如此,该命令称为
graft。rebase --keep也做了类似的事情。
标签: version-control mercurial branch