Mercurial Queues — экспорт патча

У меня есть исправление ртутной очереди на моем локальном компьютере, которым мне нужно поделиться с коллегой, которого я бы предпочел не фиксировать в вышестоящем репозитории. Есть ли простой способ упаковать этот патч и поделиться им с ним?


person George Mauer    schedule 28.01.2013    source источник


Ответы (2)


mq хранит патчи в папке .hg\patches\ в виде файлов без расширения.

Вы можете скопировать или отправить эти файлы по электронной почте и использовать hg qimport FILE на другом конце, чтобы перенести их в очередь исправлений в другом репозитории. Обратите внимание, что если вы скопируете его непосредственно в целевую папку .hg\patches\, вам нужно будет использовать переключатель --existing, чтобы hg знал, что не нужно создавать файл.

Папка .hg/patches, кстати, сама по себе может быть репозиторием для отслеживания изменений в самой очереди патчей. Вы можете запустить его с помощью hg init --mq и зафиксировать текущие патчи с помощью hg com --mq.

person Edward    schedule 28.01.2013

  • Если на обеих сторонах включен MQ, вы можете использовать опцию pull|push --mq
  • Вы можете использовать расширение MQCollab
  • Вы можете просто скопировать нужный mq-патч из каталога patch-файлов (по умолчанию: `.hg/patches) и передать его любым способом: патч представляет собой обычный diff, который можно применять к "чужим" файлам в репозитории даже без MQ
person Lazy Badger    schedule 28.01.2013
comment
Не могли бы вы объяснить, как использовать pull|push --mq? - person Joshua Goldberg; 19.06.2015
comment
От себя добавлю, что простой способ сделать ревизию из патча (3-й вариант) - это hg import <patch>. (Сначала я возился с unix patch < <patch>, что более неудобно.) Как уже упоминалось, для этого не требуется mq в месте назначения. - person Joshua Goldberg; 19.06.2015