Предполагая, что вы уже совершили новую ревизию , но еще не нажали ее ;скажем, ваша история выглядит следующим образом:
A--B--C--★
где C - это недавно зафиксированный набор изменений, с которым вы хотите покончить, но оставьте его модификации в рабочей папке.И ★ - это рабочий каталог (а не реальная ревизия).
Существует несколько способов сделать это.Один из подходов заключается в следующем ...
hg up B
Таким образом ваша история выглядит так:
A--B--★
\
C
Затем выполните
hg revert -r C
, который фактически копирует любые изменения, которые были в C, в вашу рабочую папку.
Тогда вы можете сделать (необязательно)
hg strip C
, которыйуничтожает C из истории:
A--B--★
Преимущество этого подхода состоит в том, что он полностью удаляет C, как будто его никогда не было.
(я упоминал, что с помощью strip
необязателен в этом смысле: если вы оставили C на месте, это принесет небольшой вред. И вам никогда не придется нажимать на него, если он помечен как секретный. Но лично я бы очистил его, сняв.)