Как можно удалить наборы изменений из истории изменений 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
и друзья.