LINUX.ORG.RU

Подскажите, правильно ли я понимаю работу с mercurial queues


0

0

В общем если я правильно понял из разных статей, для работы с mq нам надо сначала импортировать набор патчей командой hg qimport.

Затем требуется изъять эти патчи из истории изменений командой hg qpop -a.

После этого мы может делать с полученными патчами, что хотим — удалять, объединять редактировать и т.д.

Затем когда мы захотим внести произведенные изменения обратно в историю, нам сначала надо экспортировать наши отредактированные патчи командой hg qpush -a, а затем обновить историю командой hg qfinish -a.

Все верно? Или мое дрянное знание английского где то меня подвело? И есть ли нормальные статьи на русском для введения в суть mq?

★★★★★

>В общем если я правильно понял из разных статей, для работы с mq нам надо сначала импортировать набор патчей командой hg qimport.

Нет. Вернее, не обязательно. Можно начать с пустой очереди командой hg qinit.

Затем требуется изъять эти патчи из истории изменений командой hg qpop -a

Не требуется. Просто нужно сделать текущим нужный патч (командами qpop | qpush) и редактировать файлы проекта. Затем hg qref обновляет патч.

После этого мы может делать с полученными патчами, что хотим — удалять, объединять редактировать и т.д.

Чаще всего руками в патчи лезть не надо, надо использовать qrefresh

Затем когда мы захотим внести произведенные изменения обратно в историю, нам сначала надо экспортировать наши отредактированные патчи командой hg qpush -a, а затем обновить историю командой hg qfinish -a.

Да.

Резюмируя: mq --- это такое средство редактрования коммитов, пока они локальны.

Zenom ★★★
()
Ответ на: комментарий от Zenom

В качестве примера.

Я работаю над проектом. Сегодня мне надо реализовать 2 связанные фичи, но они достаточно различны, чтобы оформить их разными коммитами. У меня в репозитории уже проинициализирована очередь патчей командой hg qinit и в данный момент очередь пуста.

Я командую hg qnew feature1.patch и начинаю писать код. Когда работа над фичей закончена, я делаю hg qref. Теперь вторая фича. Командую hg qinit feature2.patch и начинаю работать над ней. Вдруг выясняется, что для выполнения текущего этапа нужно было сделать что-то в предыдущем. Я делаю qref чтобы сохранить то, что уже сделано, qpop чтобы вернуться к пердыдущей фиче, вношу необходимые изменения, делаю qref, qpush и продолжаю работу над второй фичей. Когда работа закончена, в последний раз делаю qref, а затем qfin -a

Zenom ★★★
()
Ответ на: комментарий от fat_angel

У меня hg 1.3.1

Начиная с 1.5 qinit, qcommit, qrestore, и qsave объявлены как deprecated и вместо них рекомендуются аналоги без q с опцией --mq

Zenom ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.