メイン(および唯一の)ブランチにいくつかの変更(A)を加えました。次に、同僚がいくつかの変更を加えました (B)。その後、変更 (A) が絶望的に壊れていることがわかり、完全に破棄することにしました。一方、変更 (B) はまったく問題なく、幸いにも変更 (A) から完全に独立しています。変化 (B) は変化 (A) よりもはるかに小さい。
通常、ここで説明したとおりhg commit --close-branch
にします。しかし、その後、変更が失われ (B)、新しいアクティブ ブランチでそれらを再作成する必要があります。影響を受けるファイルを(手動で)特定し、それらを(手動で)更新してからコミットするだけで、それを行うことができます。これは明らかに完全ではありません。これには 2 つの手動の手順が必要であり、リポジトリに誤解を招くコミットも作成されます (変更は少し前に同僚によって行われたため、誤解を招く可能性がありますが、今日は私によって行われたように見えます)。世界の終わりではないと思いますが、もっとエレガントな解決策はありますか?
注: Mercurialがリビジョン ツリー内の 1 つのコミットから別の場所への違いのみの適用をサポートしていれば、機能していたはずです。しかし、正当な理由から、この機能は存在しないのではないかと思います。差分と既存の親チェンジセットが別の親チェンジセットに逐語的に適用されたときに役立つことは非常にまれです。