Mercurial にマージしたい 2 つのパッチがあります。残念ながら、これらのパッチをエクスポートしたブランチを削除しました。2 つのパッチをマージする方法を教えてください。
ubuntu 12.04 ボックスで Mercurial 2.0.2 を使用しています。
MQ を有効にしており、空のパッチ キューから開始すると仮定すると、次のようになります。
> hg qimport patch1 # Import & apply the first patch into a patch queue
> hg qimport patch2 # Import & apply the second patch into a patch queue
> hg qpop; # Pop the second patch (unapply)
> hg qfold patch2 # Fold the second patch into the first (result is called 'patch1')
> hg qexport > new_merged_patch
その後、次のいずれかを実行できます。
> hg qfinish -a # Convert the currently applied patches (e.g. patch1) to changesets)
また:
> hg qpop # Pop the merged patch
> hg qdel patch1 # Delete it from the queue
正直なところ、これに MQ を使用するのはやり過ぎですが、知っておくと便利な拡張機能です。
パッチをパッチ ファイルとして持っている場合は、それらを重ねて適用し、結果に基づいてパッチを生成できます。
$ patch -p0 < patch1
$ patch -p0 < patch2
$ hg diff > cumulative.patch
パッチ レベル は-p0
、パッチの構造によって異なる場合があります。