私は同様のユースケースを持っています:私は一度に異なるブランチからたくさんのチェンジセットをプッシュしましたが、それらは日付順にソートされていなかったので、この質問に来ました. 現在、実際にはそれほど年をとっていない少数の親とのマージがいくつかあります。それらを見るためにログを上下にスクロールするのは面倒です。@ Ry4an の回答で提案されているアプローチに従いました。必要な変更セットの順序を予測 (つまり、計算) できれば、非常に簡単です。
ワークフローがブランチ ヘッドのみをマージする場合は、リビジョン セットを日付で並べ替えることで目的のリビジョン順序を取得できます。これは、次のコマンドで実行できます。
hg log -r 'sort(0:tip, date)' --template '{rev}\n'
次に、リポジトリを複製し、お気に入りのスクリプト言語でループを使用して、リビジョンを時系列で 1 つずつ取得できます。リポジトリを最初から初期化するのではなく、最終的に次のようにしました。
hg clone -r 0 messy-repo sorted-repo
cd sorted-repo
for REV in `hg log -R ../messy-repo -r 'sort(1:tip, date)' --template '{rev}\n'`
do
hg pull ../messy-repo -r $REV
done
(他の誰かがそうする前に :-)) これにより、デルタの計算方法が原因で、リポジトリのストレージ サイズが増加することに注意してください。私は気にしない。