Repository topology

Jens Alfke jens at mooseyard.com
Wed Aug 29 09:59:33 CDT 2007


On 29 Aug '07, at 3:02 AM, Paul Sargent wrote:

> I'm fast coming to the conclusion that the randomly connected  
> distributed model just doesn't scale, but because the tool is  
> distributed you have the choice of topology that works best for you.

That sounds right. But it does abide by Alan Kay's old dictum that  
"simple things should be simple (and complicated things should be  
possible)", more so than the centralized model.

> Maybe that'll be a tree, like Linus uses for the Linux Kernel. Maybe  
> (shock, horror) it'll be a centralised repository. It'll probably  
> end up being some hybrid.

And it turns out a single centralized repository isn't the best model  
even for large commercial projects. Sun's long had a complex  
hierarchical system that I thought worked very well, while I was  
there. You have your personal repository for your working tree, like  
Mercurial; your team has a working repository that the engineers push  
to; that repository pushes to a stable repository after you do some  
testing and ensure the build works; that pushes to a larger repository  
for the larger project that your team contributes to (the JDK, in my  
case.)

> The main thing is to actually think about it, because if you let it  
> grow naturally it'll be chaos.

As is true of so many things in software engineering :)

--Jens


More information about the Mercurial mailing list