sdot257
sdot257

Reputation: 10366

Pulling certain directories in Mercurial?

Let me try to make this really simple to follow. I'm deploying Vagrant for my developers and I'll be using Puppet to provision the machines. Let's say I have two sets of machines, one that has apache/mysql5 server and an apache/mongodb server. I use Puppet to manage the different components, but I am not using a centralized puppetmaster server.

With that said, I'm serving two directories inside a Mercurial repository. In the event I need to modify something with mysql, I can have the devs pull the latest changes accordingly. The issue I'm having is, how do I handle the repository structure without having to duplicate the directory structure.

manifests - This is different for each machine, mysql machine will have directives to install mysql while the mongodb machine will have its own instructions for mongodb

modules - This is shared among every machine, but only the required folders inside this folder is stored on each machine (i.e. modules/mongodb and modules/mysql).

If I threw all this into one big repository, I don't want my "apache+mysql" server to download modules for the "apache+mongodb" modules. Is there a way to let's say put the manifests directory into a particular repo and download only the appropriate folders from the modules folder?

Upvotes: 1

Views: 207

Answers (1)

krtek
krtek

Reputation: 26597

You can use the Subrepository functionnality of Mercurial.

If I understand correctly what you want, I'll do the following :

  1. One repository for each various manifest
  2. One repository for each various modules
  3. Create a "top level" repository for each machine type which will contains the various needed subrepositories from above.

Upvotes: 3

Related Questions