私は最近、MQ を使い始めました。変更セットが十分に洗練されるまで、分離されたパッチに取り組み、レポに影響を与えずにコミットするというアイデアが好きだからです。それ以前は、Mercurial のシェルフ拡張機能を使用していましたが、少し不安定でした。私がまだ MQ で理解しようとしているのは、パッチを互いに分離し、特定の順序で適用せず、異なるブランチ間で適用する方法です。これが私の通常の流れです -
1.新しいパッチの作業を開始します。
hg qnew fix-bug-1234 -m "fix bug 1234"
# do some work
hg qrefresh
2.作業する新しい機能/バグを取得します。
hg qpop fix-bug-1234
hg qnew some-feature -m "implement feature X"
# some work on feature X (perhaps in a different branch)
hg qrefresh
3.この時点で、バグ修正の作業に戻りたいと思います。機能の作業は脇に置きます。私はそれが次のように簡単だと思った:
hg qpop some-feature
hg qpush fix-bug-1234
# wrap up bug fix
hg qfinish fix-bug-1234
# get back to work on feature
ただし、MQ は常にシリーズで作成された最新のパッチを使用しているようで、使用している qpop/qpush コマンドに関係なく適用されます。私が作業しているファイルも完全に分離されていることに注意してください (ただし、同じ場合もあります)。
ここで何か不足していますか?これに使用hg qqueue
する必要がありますか?ありがとう。