At what point does the push model degrade?
Bryan O'Sullivan
bos at serpentine.com
Fri Nov 16 11:38:32 CST 2007
Ezra.Smith at bentley.com wrote:
> We're looking to change over to Mercurial because we like a lot of the
> benefits. But we're suffering from a "last mile" problem. Most of the
> plan is obvious to us, but we're not entirely sure how to maintain our
> central repository (note: we definitely do need one).
Having a central repository is not a problem. You're very likely to run
into problems if you let everyone push to that single central
repository, though.
If someone finds that their push is blocked by a need to pull and merge
first, and you have a sufficiently large number of users, there's a high
likelihood that any given user will finish a merge and find that they've
lost a race against someone else, and so have to merge again before they
can push.
This problem isn't unique to Mercurial: any revision control system
where you have a lot of people working out of the same tree will
encounter the same problem.
One simple solution is to have teams of five or ten people for which one
integrator is responsible for pulling their changes together and getting
them upstream. Again, this upstreaming will proceed most smoothly by
having someone pull changes from these integrators. By using a pull
model instead of a push model, you're avoiding the problem of races and
unnecessary repeated merges.
Also, by putting the responsibility for merges in fewer (preferably more
experienced) people's hands, you have fewer possible points of failure
when tricky merges occur. You can also choose whose work should get
pulled, and when, instead of having a less controlled scramble.
<b
More information about the Mercurial
mailing list