Как можно удалить наборы изменений из истории изменений MQ-репозитория?

У меня есть хранилище Mercurial. У него есть очередь исправлений (которая сама по себе является хранилищем, содержащим исправления). К сожалению, я выполнил слишком много неприглядных коммитов в MQ (с hg commit --mq команда). Если я бегу hg history --mq Команда, он будет печатать тонны ненужных наборов изменений, скажем, A, B, B1, B2, B3, B4, C, D . Я просто хочу избавиться от этих B1, B2, B3 и B4, но я не хочу удалять последние C и D. Просто эти промежуточные наборы изменений. Как мне достичь желаемого?

1 ответ

Решение

Предполагая, что нет никаких конфликтов между последующими наборами изменений mq, это довольно просто.

MQ способ заключается в использовании hg qdelete PATCH-ID с исправлениями, которые вы хотите увидеть, удалены. Обязательно, чтобы патчи НЕ применялись.

В качестве альтернативы вы можете использовать обычный способ hg для редактирования вашего хранилища mq:

  • отменить все изменения mq: hg qpop --all
  • Отредактируйте файл.hg / patches / series и удалите строки патчей, которые вы хотите удалить.
  • убедитесь, что все оставшиеся исправления применены корректно, лучше всего сделать одно за другим, поэтому сделайте hg qpush для каждого. Если будет какой-либо конфликт, исправьте это сейчас.
  • Зафиксируйте изменения в репозитории mq в.hg / patches

Если вам требуется один из промежуточных патчей, проверьте наличие hg qfold и друзья.

Другие вопросы по тегам