Да.Встроенный инструмент слияния internal:local
.
$ hg merge 4 --tool internal:local
Аналогично есть internal:other
, который выбирает другую версию файлов как объединенную версию.
Вот пример, чтобы прояснить, что происходит, запуститеотключить репо с одним файлом:
$ echo a >> a
$ hg ci -Am.
adding a
$ echo a >> a
$ hg ci -Am.
Разветвить его и поставить конфликт в a
:
$ hg up 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo b >> a
Также добавить еще один файл только в объединенную ветку:
$ echo b >> b
$ hg ci -Am.
adding b
created new head
Вернитесь назад и объедините анонимную голову:
$ hg up 1
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg merge 2 --tool internal:local
1 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
Естественно, в этот момент без инструмента объединения мы получим конфликт на a
.Но, используя инструмент слияния, мы говорим Mercurial брать версию первого родителя для каждого файла, к которому также относится слияние с cset.
$ hg st
M a
M b
$ cat a
a
a
$ cat b
b