Разница между обновлением Mercurial и отступлением - PullRequest
5 голосов
/ 19 июля 2009

В чем разница между этими 2 командами (я хочу откат к ревизии 1):

hg update -r 1
hg backout -r 1 --merge

(в примере версией подсказки является 3)

1 Ответ

11 голосов
/ 19 июля 2009

Для начала, обновление -r 1 отменит ревизии 2 и 3 в вашем рабочем каталоге, тогда как возврат -r 1 --merge отменит ревизию 1, сохранив ревизии 2 и 3. Но есть более фундаментальное отличие:

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

перед:

0 - 1 - 2 - @3

после возврата:

0 - @1 - 2 - 3

после возврата --merge; совершить

0 - 1 - 2 - 3 - @5
     \- 4 - - - /

Поскольку обратный эффект влияет только на рабочий каталог, он невидим для любого пользователя, который клонирует ваш репозиторий. Они окажутся в 3 до и после возврата. Принимая во внимание, что после возврата они заканчиваются на 5, который не имеет изменений, сделанных на 1.

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