Как вернуться к предыдущему коммиту в Mercurial, не оставляя висячей головы или создавая новую ветку / ревизию? - PullRequest
0 голосов
/ 23 октября 2018

Хорошая новость в том, что я еще не выдвинул никаких изменений.У меня был рабочий код, который я затем зафиксировал как changeset 3526. Затем я сделал hg pull и hg merge.Выполняя слияние, я облажался.

Я хотел бы вернуться к наборам изменений 3526. (Совет в настоящее время находится на наборе изменений 3640.) Но, делая это возвращение, я хотел бы выполнить следующие условия:

  1. Я хочу, чтобы все было так, как будто я никогда не делал hg pull и hg merge.
  2. Мне не нужны ни висячие головы, ни новые ветви.
  3. После успешного выполнения операции я хочу, чтобы журнал hg читал только до changeset 3526, как если бы я никогда не делал hgpull или hg merge.
  4. Я не хочу создавать новую ревизию, которая соответствует 3526 - я хочу вернуться к ревизии 3526.

Какую операцию я должен использовать длявыполнить вышеуказанное?Я знаю, что вы можете делать подобные вещи, используя hg update, hg revert и hg clone.Но я не уверен, какую именно команду мне следует использовать, тем более что в некоторых случаях вы в конечном итоге создаете висячие головы или новые ветви.

Какую именно команду я ищу?

1 Ответ

0 голосов
/ 24 октября 2018

Если вы действительно хотите сделать это, вы можете использовать hg strip.Возможно, вам потребуется указать более одного аргумента ревизии, в зависимости от того, какие именно наборы изменений вы внесли во время hg pull.(Ясно, что -r 3527 необходимо удалить; удаляет ли он все последующие ревизии, зависит от того, все ли они потомки 3527. Использование hg log -G может помочь выяснить это.)

В целом, однако, нетнужно выйти из операции pull.Это принесет вам пользу только в том случае, если вы (а) никогда больше не извлечете из этого хранилища или (б) не зайдете в это хранилище и не измените его так, чтобы в будущем извлекать из этого хранилища не получало эти наборы изменений.Поэтому, если вы не удовлетворены существующим слиянием, вы можете просто удалить слияние и повторить попытку.Нет необходимости бояться нескольких головок внутри ветви, если вы знаете, что вы делаете с ними.

(Вы также должны знать, что ваши локальные номера последовательных ревизий, такие как 3526, относятся к ваш репозиторий. Пока это тот репозиторий, над которым вы работаете / с которым, это не имеет значения: просто имейте это в виду, если вы входите в другую систему, в которой есть репозиторий, который вы периодически используетеделиться с, через тянуть или толкать)

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