nonopolarity
nonopolarity

Reputation: 151146

Can Mercurial repositories be nested?

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?

Upvotes: 11

Views: 1219

Answers (2)

Araxia
Araxia

Reputation: 1145

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.

Upvotes: 1

Tom Anderson
Tom Anderson

Reputation: 47233

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.

Upvotes: 10

Related Questions