Please validate this repository configuration

Mads Kiilerich mads at kiilerich.com
Wed Jun 27 06:32:43 UTC 2007


Matt Culbreth wrote, On 06/26/2007 11:10 PM:
> Howdy Group,
>
> I'm new to Mercurial and I'd appreciate a quick validation that I'm 
> starting things out more or less correctly.
>
> Salient facts:
>   1. We're a small group of 3-6 developers working on a new software 
> product.  We're using Mercurial 0.94.
>   2. We'll have the main product, demos, POCs, test projects, utils, etc.
>   3. Each developer works on his own repository on his machine and 
> then occasionally will publish the repository to a common web server.
>   4. On the web server I'm using the hgwebdir.cgi script.  I've got 
> the following repository pattern:
>     http://<domain>/hg
>     http://<domain>/hg/developer1
>     http://<domain>/hg/developer2
>     http://<domain>/hg/developer3
>     http://<domain>/hg/common
>   5.  My thought is that each developer would occasionally post a 
> changset to their repository.  Occasionally we'd pull from these and 
> create a common release (a customer release, a demo, etc.) and we'd 
> put that in the "common" repository.

We use a similar setup, but we see it the way that developers have local 
repos, but each of them have default-push to its own corresponding repo 
on the server. Developers push regularly - at least once a day, before 
going home. The server with the repos is backed up, developers machines 
are not. These server repos are work-in-progress. There is usually no 
reason to pull from the server repo because there is only one writer to 
it. But it is of course possible to pull from any server repo.

For each project there is a shared (=common) server repo with 
high-quality changes ready for common use. All developer repos are 
configured to default to its shared repo. Developers regularly pull from 
the default repo. When projects/changes in local repos are finished the 
developer pushes it to the shared repo.

But I think we should give the shared repos an owner who is responsible 
for pulling and reviewing and changesets from other developers, similar 
to how Michael Smith suggests.

>   6.  Can each developer create subfolders as desired underneath their 
> folder?  Can this be done via the 'hg' command or do they need root 
> access to the web server?

The new repos can be created with
    hg clone projectX ssh://user@<domain>/hg/developer1/projectX

Unfortunately I don't think you can create new repos over the http 
protocol. For that reason we use ssh instead of http (or actually a mix).

> Is this more or less standard with the way you guys are doing it?  I'm 
> new to the distributed way of doing things so if this isn't the best 
> way to go I'd like to change it early.

Mercurial can be used in many ways, so it really depends on which way 
that fits your processes and workflows best. The "standard" way is 
probably more "open source project with unknown developers", and a setup 
optimized for that would probably be a bad fit for your needs.

/Mads



More information about the Mercurial mailing list