Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can Mercurial repositories be nested?

Tags:

dvcs

mercurial

What happens if there is already a Mercurial repository at

/User/peter/development

and now I want to add a repository for

/User/peter

because I also want to version .bashrc, .profile, or maybe /User/peter/notes as well. Will having a repository above an already existing repository create conflicts for Mercurial?

like image 507
nonopolarity Avatar asked Aug 30 '10 21:08

nonopolarity


2 Answers

Everything will be okay.

It seems that Mercurial is smart enough to ignore subdirectories which already have repositories in them. Here's a conversation with it:

$ mkdir outer
$ mkdir outer/inner
$ mkdir outer/sub
$ echo red >outer/red.txt
$ echo blue >outer/inner/blue.txt
$ echo green >outer/sub/green.txt
$ cd outer/inner/
$ hg init
$ hg add
adding blue.txt
$ hg commit -m "create inner"
$ cd ..
$ hg init
$ hg add
adding red.txt
adding sub/green.txt
$ hg commit -m "create outer"
$ hg status
A red.txt
A sub/green.txt
$ hg commit -m "create outer"

As you can see, when i add to the outer repository, it ignores the inner directory.

If you wanted to be extra sure, you could add the inner directory to your .hgignore.

like image 135
Tom Anderson Avatar answered Sep 25 '22 02:09

Tom Anderson


There is a "subrepositories" feature that was added to Mercurial in version 1.3, and is supported in 1.5, which allows some hg commands to act on nested repositories recursively.

like image 34
Araxia Avatar answered Sep 25 '22 02:09

Araxia