Well, the title says it all.
I'm wondering if I can copy one file and its history from one repository to another, without having to import the whole other repository.
Well, the title says it all.
I'm wondering if I can copy one file and its history from one repository to another, without having to import the whole other repository.
That's not how Mercurial/Git/etc work - changesets are snapshots of the entire repository at any given point in time, rather than tracking changes to individual files separately.
You can use the ConvertExtension to export just that one file from the first repository into a new temporary repository, then use hg pull -f
to import the new repository into the target repository.
Create a filemap for the ConvertExtension with the single line:
include path/to/file
Then use:
hg convert path/to/original path/to/temporary --filemap filemap
to create the temporary repository. Next, in the target repository, do:
hg pull -f path/to/temporary
to pull in that file with its history. This will create a new head, so use hg merge
to merge it with the head in your target repository.