古い質問ですが、これは誰かに役立つかもしれません。
..これは、単一のブランチが分岐したときに発生します。通常、誰かがhg push -f
プルして更新する代わりに実行したときに発生します。あなたの場合、強制ヘッドはたまたま別のブランチにもありますが、これは単一のブランチでも発生する可能性があります。私の解決策は、ブランチがマージされるまで放置することです-少なくとも、ある時点でそれらをマージする計画がある場合. 私の意見では、この解決策は、誤った頭を閉じるよりもきれいです。
ただし、実行hg update default
すると、「デフォルト」名の最新のコミットに移動します。この考えはあなたの場合は正しいと思いますが、実際に必要な「デフォルト」は「デフォルト」ブランチ名の最新のコミットであるため、問題はないはずです。ただし、誤ったヘッドが新しい場合、hg update default
人々は誤ったヘッドに移動し、非常に混乱する可能性があります。
いずれの場合も、これで問題は解決します。
hg update <revision number of correct 'default' head>
hg merge <branch the erroneous 'default' head is on>
したがって、この場合、hg update default
誤ったヘッドに更新されます。
1-2(default)
\
3(default)-4(branch1)
あなたがする必要があります:
hg update 2
hg merge branch1
# results in this graph:
# 1-2---5(default)
# \ /
# 3-4(branch1)
一方、以下では、hg update default
実際に必要なものに更新されます。
1-2------------5(default)
\
3(default)-4(branch1)
..そして、誰にも影響しないので、誤ったデフォルトを無視することができます。..その後、誰かがhg update default; hg merge branch1
. ..結果は次のようになります。
1-2-5----------11(default)
\ /
3-4-[...]-10(branch1)
..希望するデフォルトで役に立たないコミットを行うこともできます。そうすれば、それが最新になり、人々がそうするときに取得するものになりますがhg update default
、履歴にジャンクコミットがあるのは本当に好きではありません。