Подтвердить что ты не робот

Полностью ручное Mercurial merge

Есть ли способ полностью выполнить ручное управление процессом слияния в Mercurial?

Я хочу иметь возможность выбирать направление файлового слияния, даже для файлов без конфликтов. Возможно ли это?

4b9b3361

Ответ 1

Поверните "pre-merge" в настройке слияния. Затем все считается конфликтом, и вы можете выбрать "левый" или "правый" для каждого изменения файла.

[merge-tools]
mymergetool.premerge = False

из MergeToolConfiguration на вики-странице Mercurial.

Ответ 2

Измените файл конфигурации следующим образом:

[ui]
merge = kdiff3

[merge-tools]
kdiff3.premerge = false
kdiff3.args=--L1 base --L2 local --L3 other $base $local $other -o $output

По умолчанию он помещает аргумент --auto в kdiff3, поэтому kdiff3 автоматически объединяется.

Ответ 3

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

Если вы хотите объединиться в другом "направлении", вы можете изменить, какая ветка находится в вашем рабочем каталоге, проверив конкретную ревизию:

hg update -r [rev]

Чтобы узнать, какие главы у вас в вашем репозитории, выполните следующую команду:

hg heads

В качестве альтернативы, если вы используете fetch, вы можете использовать опцию --switch-parent для слияния в другом направлении:

hg fetch --switch-parent

Вы не можете изменить направление слияния по файловому принципу, так как Mercurial работает с наборами изменений, которые влияют на весь репозиторий, а не путем отслеживания изменений отдельных файлов, таких как CVS.