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

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

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

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

hg revert 

---- ОБНОВЛЕНИЕ ---

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

hg status

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

---- ОБНОВЛЕНИЕ ---

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

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

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

21
задан AP257 15 August 2010 в 21:52
поделиться

3 ответа

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 . Очень солидный материал, он удаляет все неотслеживаемые файлы из рабочего каталога.

13
ответ дан 29 November 2019 в 20:47
поделиться

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

hg revert -r REV

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

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

hg revert --all

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

РЕДАКТИРОВАТЬ

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

20
ответ дан 29 November 2019 в 20:47
поделиться

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

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

5
ответ дан 29 November 2019 в 20:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: