[ILUG] Distributed versus Centralised SCM.
kenn at linux.ie
Sat Mar 12 12:18:05 GMT 2005
On Sat, Mar 12, 2005 at 10:47:24AM +0000, Bryan O'Donoghue wrote:
> What is the deal with decentralised SCM being the holy grail of source
> Ie, I'm sure darcs/monotone/arch provide better/more intelligent
> features then cvs... but... what I don't quite grasp (having not used a
> decentralised SCM, but, being in a position where I can effectively
> cherry pick my SCM), is how, I would reasonably synchronise say, four
> developers, distributed-source trees, into a release build on a "release
> build box"?
> Would it be the case that _I_ would have to ssh into this box, and then
> pull a darcs/monotone/arch tree from all my developers... and then
> synchronise the conflicts by hand?
(I don't have experience with this, but this is how I would imagine it
At the end of the day, one person needs to take responisbility for the
release - let's call him the buildmaster. It's his job to cherry-pick
changesets from all the other developer repositories and commit them
to a "master build" repository. The build machine pulls from this
repository when building a release build.
This is how the Linux kernel trees work. Changesets flow forward and
backwards between various developers repositories, with an overall
tendency for changes to flow toward Linus' tree. He decides what
goes in his tree and what gets tagged as a release.
Now, it is very possible to make this more fine-grained, in that the
build machine could pull module A from your tree and module B from
a tree maintained by another developer.
Note that the build master may need to maintain multiple trees - the
"sandbox" that he works in, and the "master build" tree.
All lot of the work to maintain the master build tree should be
automatable by scripts, but you really still need a human to keep
an eye on it.
More information about the ILUG