Mercurial: копирование ОДНОГО файла и его истории в другой репозиторий

Мне интересно, могу ли я скопировать один файл и его историю из одного репозитория в другой, без необходимости импортировать весь другой репозиторий.

Ответ 1

Вы можете использовать ConvertExtension для экспорта только одного файла из первого репозитория в новый временный репозиторий, затем используйте hg pull -f для импорта нового репозитория в целевой репозиторий.

Создайте файл-карту для ConvertExtension с помощью одной строки:

include path/to/file

Затем используйте:

hg convert path/to/original path/to/temporary --filemap filemap

чтобы создать временный репозиторий. Затем в целевом репозитории выполните:

hg pull -f path/to/temporary

чтобы вытащить этот файл со своей историей. Это создаст новый заголовок, поэтому используйте hg merge, чтобы объединить его с головой в целевом репозитории.

Ответ 2

Чтобы добавить к Niall C. ответ, вы можете переименовать файлы, которые вы импортируете, чтобы разместить их в нужном месте.

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

rename "original/path" "wished/path"
include "original/path"