Ответ 1
Поверните "pre-merge" в настройке слияния. Затем все считается конфликтом, и вы можете выбрать "левый" или "правый" для каждого изменения файла.
[merge-tools]
mymergetool.premerge = False
Есть ли способ полностью выполнить ручное управление процессом слияния в Mercurial?
Я хочу иметь возможность выбирать направление файлового слияния, даже для файлов без конфликтов. Возможно ли это?
Поверните "pre-merge" в настройке слияния. Затем все считается конфликтом, и вы можете выбрать "левый" или "правый" для каждого изменения файла.
[merge-tools]
mymergetool.premerge = False
Измените файл конфигурации следующим образом:
[ui]
merge = kdiff3
[merge-tools]
kdiff3.premerge = false
kdiff3.args=--L1 base --L2 local --L3 other $base $local $other -o $output
По умолчанию он помещает аргумент --auto
в kdiff3, поэтому kdiff3 автоматически объединяется.
Слияние всегда выполняется между родительской версией рабочего каталога и другой версией, по умолчанию другой головой в вашем репозитории.
Если вы хотите объединиться в другом "направлении", вы можете изменить, какая ветка находится в вашем рабочем каталоге, проверив конкретную ревизию:
hg update -r [rev]
Чтобы узнать, какие главы у вас в вашем репозитории, выполните следующую команду:
hg heads
В качестве альтернативы, если вы используете fetch
, вы можете использовать опцию --switch-parent
для слияния в другом направлении:
hg fetch --switch-parent
Вы не можете изменить направление слияния по файловому принципу, так как Mercurial работает с наборами изменений, которые влияют на весь репозиторий, а не путем отслеживания изменений отдельных файлов, таких как CVS.