いまいちMercurial Queue (以下MQ) の使い方がわからなかったので使ってなかったのだけど、週末に自分の作業用のレポジトリをMQに移行した。その際のメモ。
- 現在使っている自分自身のハードディスク内のレポジトリからパッチをすべて作成し直す。
- hg cloneをやるか、hg revertをやって、レポジトリをきれいにする。
- hg qinitの実行
- hg qimport -n <パッチの名前> <パッチのファイル名>をすべてのパッチに対して実行してパッチをインポート
バグ毎にパッチを再作成。追加ファイルの場合は、先にhg addしておかないと、パッチの中に入らないので注意
hg revertをやった場合は、*.origファイルができてしまうので、hg cloneで別のディレクトリにレポジトリのクローン使った方が楽(時間はかかるけど)
.hg/patchesというディレクトリが作成される
先ほどできた.hg/patchesの中にパッチファイルが作成される。hg qimportだとパッチが当てられた状態にはならないので、必要に応じてhg qpushでパッチを当てる。-aオプションを使えば全部のパッチを当ててくれる。
思ったより簡単だった。hg pushなどをする時には、hg qpopでパッチを取り除いておけばいいだけ。
あと注意点として、hg qrefreshでパッチファイルを更新する際、追加・削除のファイルがある場合は、hg qrefreshする前に、hg addやhg removeなどを実行しておくこと。この動作にちょっと悩んだ。