Join multiple subrepos into one and preserve history in Mercurial

后端 未结 3 1404
我寻月下人不归
我寻月下人不归 2020-12-17 18:39

Currently I have project consisting of multiple repositories, e.g.:

+---Project (main repo)
    +---Core (subrepo)
    +---Web          


        
相关标签:
3条回答
  • 2020-12-17 19:20

    First guess : Perhaps by using the convert extension with a filemap ?

    Another try :

    • Pull all your repos into the same repo, you will have different heads for the "default" branch
    • Then for each head
      • Update to this head
      • Move the files (hg move) into the right directory
    • Merge all the "default" heads together

    Edit : added more details, and another try

    0 讨论(0)
  • 2020-12-17 19:40

    Assuming you don't have to convert repos, why not simply push each repo in the central one?

    1. Make sure each repo root directory have a main directory named after the repo name.
    2. push each repo in the main repo.
    0 讨论(0)
  • 2020-12-17 19:41

    I would start with using hg convert with a filemap that excludes the .hgsub and the subrepos. Next, use hg convert on the subrepos with rename entries in the filemap like: rename . Core

    Once you have those new repos, you can use hg pull -f to import the changesets from the converted subrepos into the converted main repo one at a time. You'll also need to merge them into your new main repo (they form separate heads with the null revision as the most recent common ancestor).

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