Как скопировать рабочий каталог в новый коммит - PullRequest
1 голос
/ 07 мая 2020

У меня следующая структура фиксации:

a->b->c

Теперь c - эксперимент, и он значительно отличается от b (до точки, где любые изменения в b вызывают конфликты в c). Я бы хотел сохранить c, но больше не хочу поддерживать цепочку. Поскольку существует так много конфликтов между b и c, простая перебазировка была бы кучей работы.

Итак, я хочу сделать

a->b
 \->c'

, где c' - просто копия рабочего пространства в c. В git я бы использовал git reset --soft a и просто сделал бы новую фиксацию для моего c', есть ли что-то эквивалентное, что я могу сделать в mercurial?

Ответы [ 2 ]

2 голосов
/ 08 мая 2020

Похоже, вы хотите использовать revert --all

псевдокоманды (буквы a, c означают количество исправлений коммитов):

  1. update -r a
  2. revert --all -r c
  3. commit -m "new c"
  4. strip -r c

можно найти руководство по использованию revert all с помощью thg GUI здесь

0 голосов
/ 07 мая 2020

Итак, я собираюсь опубликовать то, чем я закончил, но надеюсь, что получу лучший ответ.

  1. Сделайте фиксацию «ничего не делать» в (в моем случае я добавил линия). Нам нужна подделка, потому что при перебазировании на a с b перестанет говорить nothing to rebase.
a->b->c
\->f
hg rebase -s b -d f --keep клонирует всю ветку:
a->b->c
\->f->b'->c'
hg histedit, сложите c 'и опустите f.
a->b->c
\->c''
hg prune c
a->b
\->c''
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...