hg revert
в соответствии с предложением @shellholic действительно создаст файл из одной ветви другой ветви. Однако файл будет выглядеть как недавно добавленный в историю. Его фактическая история не отображается в целевой ветви.
Я считаю прививание лучшей альтернативой.
Предположим, у вас есть 2 ветки, и вы создали и работали с файлом f2.txt в боковой ветке. Вы также работали над файлом f3.txt в той же ветке в то же время.
Создайте другой набор изменений в исходной (боковой) ветке, этот набор содержит только интересующий вас файл. Если у вас уже есть такой набор изменений, используйте его, создавать новый не нужно.
Обновление до целевой ветки.
Привить источник ревизии. Mercurial спросит вас, хотите ли вы использовать измененную версию. Ответ "с" (изменен).
Результат выглядит так:
история файлов сохранена правильно:
и f3.txt не объединены в целевую ветвь.