Устранение конфликтов: как автоматически принимать "свои" изменения?

При слиянии конфликтующих изменений с помощью hg merge Mercurial вставляет набор маркеров в файлы, которые будут объединены в моей рабочей копии следующим образом:

<<<<<<< local
  version = 0.2
=======
  version = 0.1
>>>>>>> other

Затем я вручную редактирую все файлы, помеченные как U, из списка, созданного hg resolve --all -l, а затем я говорю, что mercurial я разрешил их с помощью hg resolve -m file1 file2 file3 ...

Во многих ситуациях я хотел бы, однако, принять либо изменения только для моего, либо их только для некоторых конфликтующих файлов. Я собираюсь создать два простых сценария sed/awk/any с именами accept-theirs.sh и accept-my.sh или есть ли "правильный" способ сделать это?

Ответ 1

Используйте

hg resolve -t internal:other --all

принять theirs и

hg resolve -t internal:local --all

принять yours

Ответ 2

Попробуйте следующее:

hg merge --tool 'internal:other'

См. также hg help merge-tools для получения дополнительной информации.