Mercurial extension mqを使う [Linux]
問題定義
・ブランチを作るとそのブランチがごみになったときにリポジトリが美しくないので残したくない
・なんだかんだでhg diffの出力をパッチとして管理しておくと何かと便利
・しかし多段パッチ管理は面倒
という場合に使える。
が、他のページを見ていても説明が長いので簡潔に書いておく。
hg mqつかいかた
・罠
LennyのMercurialはちょっと古いので最後のqfinishが実装されていない。
ソースをコンパイルして動かすとhgextが無いのでmqが最初から動かない
・準備
hg qinit [-C ?]
mqのコマンドが使えるようになる。
・パッチの登録
変更前に
hg qnew patch-name
すでに変更している場合には-fをつける
変更が終わったら
hg qrefresh
でパッチとして登録
・パッチの確認
hg qseries
でパッチをいくつ保存しているか確認できる。
今適用されているパッチの表示は
hg qdiff
・パッチの削除
hg qdelete パッチ名
・パッチのリポジトリ化
hg qfinish
・親リポジトリとのマージ
hg qpop -a
hg pull -U
hg qpush -a
でコンフリクトがなければ問題なし
コンフリクトがあったら
qsave -mとかで3WAYマージをするらしいが
やってないのでよくわからない
qfinishのときにコメントをつけられるようにしてほしかった。
qmessageとかあったきもする。
・ブランチを作るとそのブランチがごみになったときにリポジトリが美しくないので残したくない
・なんだかんだでhg diffの出力をパッチとして管理しておくと何かと便利
・しかし多段パッチ管理は面倒
という場合に使える。
が、他のページを見ていても説明が長いので簡潔に書いておく。
hg mqつかいかた
・罠
LennyのMercurialはちょっと古いので最後のqfinishが実装されていない。
ソースをコンパイルして動かすとhgextが無いのでmqが最初から動かない
・準備
hg qinit [-C ?]
mqのコマンドが使えるようになる。
・パッチの登録
変更前に
hg qnew patch-name
すでに変更している場合には-fをつける
変更が終わったら
hg qrefresh
でパッチとして登録
・パッチの確認
hg qseries
でパッチをいくつ保存しているか確認できる。
今適用されているパッチの表示は
hg qdiff
・パッチの削除
hg qdelete パッチ名
・パッチのリポジトリ化
hg qfinish
・親リポジトリとのマージ
hg qpop -a
hg pull -U
hg qpush -a
でコンフリクトがなければ問題なし
コンフリクトがあったら
qsave -mとかで3WAYマージをするらしいが
やってないのでよくわからない
qfinishのときにコメントをつけられるようにしてほしかった。
qmessageとかあったきもする。
コメント 0