Как удалить определенные наборы изменений из определенного клона Mercurial? - PullRequest
50 голосов
/ 23 декабря 2010

У меня есть клон центрального репо в редакции 2048. Я хочу удалить последние 10 наборов изменений в моем локальном репо, как если бы я вернулся вовремя две недели назад.Я полагаю, я мог бы удалить свое локальное репо и сделать "hg clone -rev 2038", но это было бы долго (клонирование репо занимает несколько минут).Есть ли способ просто «снять» некоторые наборы изменений?

Примечания:

  • Я не пытаюсь отменить наборы изменений.В конце концов я снова вытащу эти наборы изменений из центрального репозитория.
  • Я не пытаюсь обновить рабочий каталог до более ранней версии;Я действительно хочу повлиять на репозиторий.
  • У меня нет исходящих изменений или ожидающих изменений в моем текущем репо и рабочем каталоге.

Ответы [ 4 ]

82 голосов
/ 23 декабря 2010

Используйте команду strip:

hg strip -r 2039

Эта команда предоставляется StripExtension .Он распространяется как часть Mercurial 2.8 и более поздних версий, но вам нужно сначала включить его, добавив следующие строки в ваш .hgrc или Mercurial.ini: MqExtension .

Чтобы предотвратить случайное уничтожение истории, команда создаст в .hg/strip-backup/ резервный пакет, который можно при необходимости hg unbundle снова.

19 голосов
/ 23 декабря 2010

Клонирование вашего локального репо должно быть быстрым. Я полагаю, «несколько минут» относится к удаленному репо?

Вы можете использовать hg clone <local repo> <new repo> -r <revision> только для клонирования до определенной ревизии.

12 голосов
/ 20 мая 2014

Чтобы удалить набор изменений, который уже был зафиксирован и отправлен, используйте:

 hg backout -r (changeset number)

Чтобы удалить ревизию, которая была зафиксирована, но не была отправлена, используйте:

  hg strip -r (changeset number)
7 голосов
/ 28 августа 2012

Для версий, предшествующих Mercurial 2.8, Strip был частью MqExtension.
Если вам нужно включить старые расширения MQ, вы можете сделать это, добавив:

[extensions]

hgext.mq =

вВаш файл ~ / .hgrc (или mercurial.ini).

Раньше информация о Strip была здесь , но теперь ее можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...