How to combine a number of small repositories into one?
Chris Green
cl at isbd.net
Fri Dec 11 19:13:49 UTC 2020
On Fri, Dec 11, 2020 at 06:55:04PM +0100, Dr Rainer Woitok wrote:
> Chris,
> On Friday, 2020-12-11 17:37:43 +0000, you wrote:
>
> > On Fri, Dec 11, 2020 at 10:21:48AM -0700, Tom Hindle wrote:
> > > > On Fri, Dec 11, 2020 at 10:17 AM Chris Green <[2]cl at isbd.net> wrote:
> > > >
> > > > I have a number of very small mercurial repositories living in
> > > > various
> > > > subdirectories of a single parent directory (most are two levels
> > > > down).
> > > > How can I merge all of them into a single mercurial repository while
> > > > keeping all the history etc.?
> > > > The repositories to be merged are:-
> > > > /home/chris/dev/dokuwiki/plugins/textalign/.hg
> > > > /home/chris/dev/dokuwiki/plugins/xv/.hg
> > > > /home/chris/dev/dokuwiki/plugins/blog/.hg
> > > > /home/chris/dev/dokuwiki/plugins/dbrd/.hg
> > > > /home/chris/dev/dokuwiki/plugins/rst/.hg
> > > > /home/chris/dev/dokuwiki/plugins/showmail/.hg
> > > > /home/chris/dev/dokuwiki/plugins/db2.wkg/.hg
> > > > /home/chris/dev/dokuwiki/plugins/servlog/.hg
> > > > /home/chris/dev/dokuwiki/plugins/tagentry/.hg
> > > > /home/chris/dev/dokuwiki/plugins/indexmenu/.hg
> > > > /home/chris/dev/dokuwiki/plugins/trip/.hg
> > > > /home/chris/dev/dokuwiki/plugins/include/.hg
> > > > /home/chris/dev/dokuwiki/plugins/database2/.hg
> > > > /home/chris/dev/dokuwiki/plugins/rsthdr/.hg
> > > > /home/chris/dev/dokuwiki/tpl/roundbox/.hg
> > > > I want them to be combined in one repository at
> > > > /home/chris/dev/dokuwiki.
> > > > These are all local files, nothing remote, I'm running mercurial
> > > > version 5.3.1 on xubuntu.
> > >
> > > [1]https://stackoverflow.com/a/10450591/361714
> > >
> > Ah, maybe I wasn't quite clear, I want to retain the directory
> > hierarchy but have only one repository. I.e. all the files stay in
> > exactly the same place but instead of all those separate .hg
> > directories there will be a single one:-
> >
> > /home/chris/dev/dokuwiki/.hg
>
> $ cd /home/chris/dev/
> $ hg init newwiki
> $ cd newwiki
> $ mkdir plugins tpl
> $ cd plugins
> $ for r in ../../dokuwiki/plugins/* do ; hg pull -f $r ${r##*/} ; done
> $ cd ../tpl
> $ hg pull -f ../../dokuwiki/tpl/roundbox roundbox
> $ cd ../..
> $ mv dokuwiki dokuwiki.orig # Just to still have it around
> $ mv newwiki dokuwiki
>
Thank you Rainer, that sounds fairly simple and straightforward.
--
Chris Green
More information about the Mercurial
mailing list