hg resolve --list
Из документации :
Слияния с неразрешенными конфликтами часто являются результатом неинтерактивного слияния с использованием внутренней конфигурации слияния:настройки, или инструмент слияния командной строки, такой как diff3.Команда resolve используется для управления файлами, участвующими в слиянии, после запуска hg merge и до запуска hg commit (т. Е. Рабочий каталог должен иметь двух родителей).
Изменить 5 января 2012 года:
(сегодня я получил положительный голос за этот ответ, поэтому я снова его рассмотрел. Я обнаружил, что неправильно понял вопрос.)
Вопрос в том, что «я выполнил извлечение данных из удаленного репозитория, а еще не выполнил слияние. Могу ли я увидеть, какие конфликты возникнут при выполнении слияния?»
Мой ответ вышеявно неправильно.После прочтения связанной документации, я не думаю, что есть встроенный метод для этого.Однако есть способ сделать это, не разрушая ваше рабочее дерево исходников.
Предположим, вы клонировали репозиторий A из некоторого удаленного источника в репозиторий B на вашемлокальная система, т.е. hg clone http://hg.example.com/A B
.После этого вы вносите изменения в свой локальный репозиторий, B , которые включают по крайней мере один коммит.Тем временем в репозиторий были внесены изменения A , поэтому при выполнении извлечения вы получите сообщение о том, что добавлены новые наборы изменений и созданы головки.
На этом этапеВы можете сделать hg heads
, чтобы получить список двух наборов изменений, которые будут участвовать в слиянии.Исходя из этой информации, вы можете выполнить команду состояния, чтобы составить список различий между головками.Если предположить, что номера ревизий в вашем хранилище B , согласно списку головок, равны "1" и "2", то вы можете сделать hg status --rev 1:2
, чтобы просмотреть список изменений.
Конечно, это на самом деле не говорит вам, возникнут ли конфликты при слиянии.Поскольку нет команды, которая покажет вам это, вам придется «предварительно просмотреть» слияние, клонировав его в новый репозиторий и выполнив слияние там.Итак, hg clone B C && cd C && hg merge
.Если вы удовлетворены результатом этого слияния, вы можете выполнить hg com -m 'Merging complete' && hg push && cd ../ && rm -rf C
.
Это небольшой процесс, но он сохраняет ваше текущее исходное дерево чистым, если слияние оказывается катастрофическим.Также вам может пригодиться это описание работы с публичными репозиториями.