которая останется в той же ветке, но создаст новое несвязанное изменение, отменяющее все.

вы делаетеhg pull а затемhg update (илиhg merge), есть ли способ это подтвердить? То есть: вернуть ваш репозиторий в состояние до выполненияhg pull?

Я верю, что ты можешь сделатьhg update -r n где вы должны указать набор изменений до извлечения какn, Хотя я предполагаю, что это все равно оставит наборы изменений в вашем хранилище, но это не совсем то, что мы хотим. ??

Ответы на вопрос(5)

hg --rollback можно использовать для отмены последней транзакции, так как l, ong как вашhg pull все еще самая последняя транзакция, то вы можете использовать это. Эту команду следует использовать с осторожностью. ВидетьВот для более подробной информации.

 Marcus Leon24 янв. 2011 г., 17:27
В моем случае я сделал тягу, слияние, затем фиксацию (слияния). Тогда я понял, что хочу поддержать ВСЕ это.hg rollback позвольте мне отказаться от коммита, но я не могу понять, как отступить.
 mikej24 янв. 2011 г., 17:34
Существует один уровень истории отката, поэтому мы должны посмотреть, если кто-то еще отправит другое предложение
Решение Вопроса

hg strip удалит ревизии из репозитория. Как и все мощные команды, это опасно, поэтому будьте осторожны.

https://www.mercurial-scm.org/wiki/StripExtension

Также см:

https://www.mercurial-scm.org/wiki/EditingHistory

Если вы поймаете свою ошибку немедленно (или достаточно скоро), вы можете просто использоватьHG Strip REV откатить последние (одно или несколько) изменений. ...

 Marcus Leon24 янв. 2011 г., 18:03
Кажется, работает -hg strip x гдеx первый набор изменений в тяге, кажется, делает свое дело. После этогоhg out приходит пустой, что мы хотим ..
 ftvs29 июн. 2012 г., 15:08
Клонирование репозитория для создания резервной копии кажется хорошей идеей. SourceTree на OSX может раздеться, доступ к которому можно получить, щелкнув правой кнопкой мыши на ревизии.
 Erik Reppen02 апр. 2013 г., 21:49
Почему бы просто не вернуться к желаемому обороту? Или это на самом деле убивает историю, и это желательно по какой-то причине отменить?

вы не можете откатиться, потому что вы сделали коммит. Что вы можете сделать, это использовать 'hg strip', которая является частью mq (после 2.8 strip в своем собственном расширении), или использовать mq, чтобы удалить изменения. В любом случае я предлагаю вам сделать все на другом клоне, на всякий случай.

Чтобы сделать полосу, обновите до ревизии, которую вы хотите сохранить, а затем

hg strip <REV>

где<REV> первая ревизия, которую вы хотите удалить. Это удалит всех без исключения потомков (включая ваш коммит слияния).

В качестве альтернативы вы можете

hg qnew (if you don't already have a patch queue)
hg qimport <REV>

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

Изменить: Очевидно, вам нужно включить расширение MQ для обоих из них, если вы не используете 2.8 или более поздней версии. В этом случае полоса находится в расширении полосы, а mq в расширении mq. Оба поставляются со стандартной установкой.

вам нужно использовать расширение, как предлагает Берт Ф. (философия в Mercurial - никогда не менять историю)

если вы не возражаете против истории, содержащей вашу ошибку, у вас есть два немного разных вариантаhg update -C -r который создаст новую ветку в указанной вами версии илиhg revert -r которая останется в той же ветке, но создаст новое несвязанное изменение, отменяющее все.

ты можешь:

hg update -C <version>

увидеть ртутныйВопросы-Ответы.

 Marcus Leon24 янв. 2011 г., 17:51
Это, кажется, обновляет мои рабочие файлы до состояния перед извлечением и объединением. НОhg out по-прежнему показывает изменения, которые я вытащил .. иhg push подтолкнул бы тех к центральному хранилищу, что я НЕ хочу делать ..

Ваш ответ на вопрос