Предположим что:
Как описано здесь, процесс слияния изменяет состояние рабочего каталога.
В моем сценарии я не хочу освобождать незафиксированные изменения, которые находятся в моем рабочем каталоге, потому что в той точке, я интересуюсь изменением состояния MyRepo; не состояние моего рабочего каталога.
Существует ли способ пройти процесс слияния, включая разрешение конфликтов вручную, не влияя на содержание мой рабочий каталог? Это может обработать быть сделанным во временных файлах только? Или я должен отложить свои изменения, сделать слияние и затем не отложить для восстановления моего рабочего dir к состоянию, которым это было перед слиянием?
Я новичок в Mercurial, но не могли бы вы клонировать из своего локального репозитория и скопировать свою рабочую копию в клон? Затем вы могли бы выполнить слияние в оригинале? Вы бы сохранили состояние вашей рабочей копии в клоне, будучи свободным, чтобы разрешить изменение исходной рабочей копии.
Сначала проверьте это. Я никогда не делал этого в hg.
Просто сделайте это в клоне.
hg merge
, которые вы хотите Возврат в MyRepo не приведет к изменению рабочего каталога MyRepo, так что это безопасное действие.
Помните, что в Mercurial клоны невероятно быстрые и дешевые - в современных файловых системах они используют скрытые жесткие ссылки, поэтому они даже не занимают много места на диске.
Вы не можете этого сделать. Как говорится в документации, слияние действительно является операцией рабочего дерева. Разрешение конфликтов без тестирования результата - это безумие. Либо отложите, либо зафиксируйте изменения, а затем выполните слияние. Если вы не хотите, чтобы фиксация была видна где-либо, вы можете зафиксировать изменение, обновить предыдущую ревизию, объединить новую ветку, применить временно зафиксированный патч и удалить эту временную ветвь.
Вы можете клонировать свой репозиторий до последней отметки, объединить изменения с клоном, зафиксировать, а затем вытащить новый набор изменений из клонированного репозитория обратно в текущий.