Подтвердить что ты не робот

Mercurial: как я могу вернуться к конкретной ревизии?

Я работаю на реальном сервере. Я обновился, чтобы опрокинуться, и это вызвало проблемы: мне нужно вернуться к конкретному набору изменений (388), где все было в порядке.

У меня нет никаких изменений на сервере, локальный набор изменений вообще не имеет значения. На самом деле я на самом деле хочу убить любые локальные случайные изменения или слияния, чтобы не путать вещи.

Как я могу вернуться к определенному набору изменений и убить любые локальные изменения? Это как-то связано с:

hg revert 

---- UPDATE ---

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

hg status

У меня нет вывода. В противном случае у меня неприятное ощущение, что, когда я буду тянуть наконечник, будут конфликты, с которыми приходится сталкиваться - чего я хочу избежать, потому что локальные изменения не имеют ценности.

---- UPDATE ---

Для кого-то еще в этой ситуации то, что в конечном итоге было исправлено для меня, было:

rm -rf <repo_dir>
hg clone http://repository
hg update -r 388

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

4b9b3361

Ответ 1

server:
- ..
- rev 386
- rev 387
- rev 388
- rev 389

clone to production

-- testing stuff, it doesn't work!
-- panic!
-- rev 390 (in panic)
-- rev 391 (in panic)
-- cool down, thinking, need to go back to 388
-- one way: hg update -C -rev 388 (to keep 390, 391)
-- other way: rm -rf dir (to discard 390, 391)
-- hg clone http://server/hg
-- cd dir
-- hg update 388 
-- testing, now works

Существует также замечательное расширение Purge extension. Очень прочный материал, он удаляет все невоспроизводимые файлы из рабочего каталога.

Ответ 2

Просто используйте приведенную ниже команду, чтобы перейти к ревизии.

hg revert -r REV

Это противоречит --all.

Чтобы убить все локальные изменения, все должно работать.

hg revert --all

Не используйте rollback. Это необратимая процедура, поэтому ее следует использовать с осторожностью.

ИЗМЕНИТЬ

Вы можете обновить параметр --clean. Это отменит любые незафиксированные изменения. А затем обновите несколько наборов изменений.

Ответ 3

Я не думаю, что это действительно ясно, что вы хотите, но моя интерпретация будет hg update -C -rev 388, но вы можете быть в равной степени после возврата или, возможно, (маловероятного) даже откат. мой ответ на этот вопрос дает хорошую разницу между обновлением и возвратом

вам действительно нужно выработать то, что вы хотите видеть в рабочей копии, и то, что вы хотите, чтобы состояние истории было похоже на выбор между ними.