Yeah. Use the convert extension to move projectA down one directory level:
hg convert --filemap filemap.txt projectA projectA-redone
where your filemap.txt
has this line in it:
rename . projectA
(that dot might be a slash but I don't think so).
That will give you a new repo, projectA-redone, that has all the history of A though all the changesets will have different hashes since their content (paths) have changed to get "projectA" in front of all of them.
Then you go into Super-Project_B and do a hg pull -f /path/to/projectA-redone
. You need the -f
because otherwise you'll be told that the repos are unrelated since they have no changesets in common.
Finally you'll do a hg merge
in Super_project_b which should have no conflicts (unless you already had a projectA directory, in which case you should've picked a different name or hg remove
d it first).
After doing that B will have all of A inside the projectA subdirectory and all history will be intact.