Mercurial Queues: объединение патчей

Я играл с Mercurial и ртутными очередями, и теперь у меня есть довольно разумная рабочая версия. Однако, прежде чем я отправлю патч, я хотел бы взять эту спагетти-историю и объединить ее в отдельные, логические шаги, а не в полуперекрывающийся повторяющийся беспорядок «сделай-отмени-повтори-слегка по-другому», как сейчас, если только чтобы уменьшить количество патчей.

Как мне это сделать?


person Eamon Nerbonne    schedule 18.03.2010    source источник


Ответы (1)


hg qfold это путь. Будьте очень осторожны с ним. Убедитесь, что вы заранее прочитали все инструкции. Разумно также создать версию вашей очереди исправлений (как вложенный репозиторий), чтобы у вас были резервные копии:

hg qinit [-c]

инициализировать новый репозиторий очередей

Репозиторий очередей по умолчанию не имеет версии. Если указан параметр -c, qinit создаст отдельный вложенный репозиторий для исправлений (qinit -c также можно запустить позже, чтобы преобразовать неверсионный репозиторий исправлений в версионный). Вы можете использовать qcommit для фиксации изменений в этом репозитории очереди.

person Johannes Rudolph    schedule 18.03.2010
comment
Спасибо, это сработало! Кто-то еще утверждал, что hg export ... > combined.patch был бы столь же эффективен и без MQ — так ли это? - person Eamon Nerbonne; 20.03.2010
comment
Начиная с версии mercurial 1.5, вы также можете импортировать несколько патчей подряд, поэтому нет необходимости объединять их при экспорте. Вам все еще понадобится MQ, чтобы удалить ваши изменения, или вам нужно будет клонировать чистый репо и применить там комбинированные исправления, а затем отказаться от своей ветки. Слишком много работы ИМХО. - person Johannes Rudolph; 20.03.2010