How to combine a number of small repositories into one?

Uwe Brauer oub at mat.ucm.es
Sat Dec 12 18:50:21 UTC 2020


>>> "BMJ" == Becker, Mischa J <mischa.becker at kroger.com> writes:


I have in the past year either split or joined repositories. Here are my
2 cents:

> Depends on what you are wanting the end resulting repo history to look like.
> I don't recommend it but, if you want to keep all of your existing
> revision changeset #s, it's possible to pull everything into one repo
> without using hg convert. You will end up with a many tailed history
> that merges down into 1 main branch. You do this by force pulling the
> commits from the separate repos into one combined repo and then going
> to the head of each branch and hg move that branch's files down into
> their proper plugins or tpl folder. Once you've committed all the
> moves so all the branch heads have everything in the proper place
> relative to each other you can do consecutive merges to get down to
> only 1 branch.

I agree completely. Although I am no fan of linearising history or
fast-forward-merge I find the result of these *pulls* result in a highly
confusing history and are not worth the effort.

> I personally find the above type of history extra confusing and
> instead use hg convert to redo history to match how the repo will work
> going forward.

> I highly recommend reading hg help convert. Focus on the mercurial
> to mercurial conversion with a filemap.

Using *convert*  is a much better solution, it requires some more work and the
history might look alien to you.

> Regardless of which direction you go, don't make any of these
> changes directly in dokuwiki. Instead pull everything into a new
> folder like /home/chris/dev/dokuwiki-new/. Once you are happy with
> how your new repo looks you can swap it for your old one.

So I think most likely the third option is the best:

Use  *sub-repositories*. There might be problems if you want to push for
example, I still did not manage to push sub repositories to  *Helix* for
example but other than that they are a fine solution.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5673 bytes
Desc: not available
URL: <http://lists.mercurial-scm.org/pipermail/mercurial/attachments/20201212/b983a6b6/attachment.p7s>


More information about the Mercurial mailing list