Я недавно начал работать с 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
для этого? Спасибо.