How can I import a mercurial repo (including history) into another mercurial repo as a subdirectory, without using subrepos?

后端 未结 1 778
逝去的感伤
逝去的感伤 2020-12-12 17:12

This sounds kind of complex, so let me explain:

Project_A has lived for some time within its own Mercurial repository. Project_A is now getting folded into a new sup

相关标签:
1条回答
  • 2020-12-12 17:41

    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 removed it first).

    After doing that B will have all of A inside the projectA subdirectory and all history will be intact.

    0 讨论(0)
提交回复
热议问题