文殊堂さん:
フジワラです。
私が思いつく方法は2つぐらいかな?
(1) 対話的パッチ適用ツールを使う
設定ファイルの [ui] セクションで patch 項目が設定されている場合、
qpush 実行時にこの項目に設定されたツールが実行されます。
なので、これに対話的なパッチ適用を行うツールを設定してやればよいのですが、
「対話的なパッチツール」なるものがそもそも存在するの?ってあたりは、
私もよく知りません(笑)。
BOS Book では mpatch なるものを紹介していて、mpatch のページを
ざっと見る限りでは、rej 内容をマージしてくれるのかな?
http://oss.oracle.com/~mason/mpatch/
# 対話的ではないですが…
(2) 3-way merge でパッチを適用する
BOS Book では「Updating your patches when the underlying code changes」
と題して、ベースソースの改変でパッチが適用できなくなった場合に、
通常のマージと同じように 3-way merge しながらパッチを適用する方法を
説明しています。
http://hgbook.red-bean.com/read/managing-change-with-mercurial-queues.html#sec:mq:merge
大雑把なフローとしては:
1. qpush で適用
2. qsave で適用状態を保存
3. 新規適用対象リビジョンに update
4. qpush --merge でマージ実施
5. qrestore で qsave 状態を破棄
手順 4 で [ui] merge に設定されたマージツールが起動されるので、
設定ファイルを一時的に変更するか、--config グローバルオプションで
上書きして対話的なマージツールを起動すればOKです。
qpush --merge はマージ失敗時に状態を更に戻す(resolve とかができない)ので、
衝突が発生する場合は対話的なツールじゃないと駄目っぽいです。
以前、私の BOS Book 翻訳過程で書いた簡単な図解付きの説明が
以下にあるので、ご参考までに。
http://inside.ascade.co.jp/node/17
On 5月11日, 午後3:15, monjudoh <
monju...@gmail.com> wrote:
> 文殊堂です。
>
> MercurialQueueで出てしまった.rejファイルの取り込み作業を
> 対話的に行う方法はありますか?