Ниже приведен пример объединения двух не связанных между собой файлов "a" и "b".
Обратите внимание, что я злоупотребляю форматом списка, потому что не могу понять, как использовать эту систему. Строки, которые выглядят как заголовки, но начинаются как «summary:», на самом деле выводятся из hg и оказываются последней строкой перед пустой строкой. Все остальные заголовки являются моими собственными комментариями, объясняющими команду / последовательность и ее вывод. Команды отображаются в строке с именем timeless-mbp: ... $. Все остальные строки выводятся.
Настройка
timeless-mbp:~ timeless$ cd /tmp
timeless-mbp:tmp timeless$ rm -rf q
timeless-mbp:tmp timeless$ hg init q
timeless-mbp:tmp timeless$ cd q
Определить мое имя пользователя
timeless-mbp:q timeless$ echo '[ui]' > .hg/hgrc
timeless-mbp:q timeless$ echo 'username = timeless' >> .hg/hgrc
Сначала создайте, добавьте и зафиксируйте файл a
timeless-mbp:q timeless$ echo a > a
timeless-mbp:q timeless$ hg commit -Am a
adding a
Начать с новой ревизии нуля (ноль)
timeless-mbp:q timeless$ hg up -r null
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
Создать, добавить и зафиксировать файл b
timeless-mbp:q timeless$ echo b > b
timeless-mbp:q timeless$ hg commit -Am b
adding b
created new head
Вернитесь к нашему первому файлу, это просто для создания чередованной истории версий
timeless-mbp:q timeless$ hg up -r 0
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
Переименуйте a в файл, потому что мы хотим объединить его с b под именем "file"
timeless-mbp:q timeless$ hg mv a file
timeless-mbp:q timeless$ hg commit -m 'rename a to file'
Вернитесь к нашему второму файлу, это просто для создания чередованной истории версий
timeless-mbp:q timeless$ hg up -r 1
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
Переименуйте b в файл, потому что мы хотим объединить его с именем "file"
timeless-mbp:q timeless$ hg mv b file
timeless-mbp:q timeless$ hg commit -m 'rename b to file'
Я форсирую слияние с помощью внутреннего, потому что я не хочу, чтобы всплывал инструмент слияния, есть другие инструменты слияния, которые вы могли бы использовать (например, в OS X с современными версиями Mercurial, он имеет тенденцию вызывать FileMerge. приложение, но это трудно показать в журнале).
timeless-mbp:q timeless$ hg --config ui.merge=internal:local merge 2
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
Заменить содержимое на то, что я хочу
timeless-mbp:q timeless$ hg cat -r 2 file > file
timeless-mbp:q timeless$ hg cat -r 3 file >> file
Убедитесь, что в нем есть содержимое, которое я хочу
timeless-mbp:q timeless$ cat file
a
b
Зафиксировать «объединенный» файл
timeless-mbp:q timeless$ hg commit -m merging
Просмотр истории хранилища
timeless-mbp:q timeless$ hg log
changeset: 4:d9d3d23ec1cc
tag: tip
parent: 3:01c6a61cbe04
parent: 2:3de70df713a7
user: timeless
date: Wed Jun 02 16:10:08 2010 +0300
summary: merging
changeset: 3:01c6a61cbe04
parent: 1:e6b8058965b4
user: timeless
date: Wed Jun 02 16:09:43 2010 +0300
summary: rename b to file
changeset: 2:3de70df713a7
parent: 0:635f50240100
user: timeless
date: Wed Jun 02 16:09:30 2010 +0300
summary: rename a to file
changeset: 1:e6b8058965b4
parent: -1:000000000000
user: timeless
date: Wed Jun 02 16:09:17 2010 +0300
summary: b
changeset: 0:635f50240100
user: timeless
date: Wed Jun 02 16:09:01 2010 +0300
summary: a
Проверка аннотированных выходных данных
timeless-mbp:q timeless$ hg ann -f -c file
635f50240100 a: a
e6b8058965b4 b: b