[ILUG] Distributed versus Centralised SCM.
Dave O Connor
doc at gmail.com
Sat Mar 12 11:55:30 GMT 2005
> When it comes time to do a release build on "Central box" wouldn't
> someone _me_ have to go to that box and integrated Developer-A's tree
> with Developer-B's tree ?
No. They're both committing changes to their local SCM instance, and
resolving changes as they go, and then the changes on their local
repository get synced.
> Then we want to do a _release_ build.... how is the potential conflict
> in f.c resolved ? How do the two developers have visibility to the
> changes in each other's repositories and ... would it not be the case
> that "Central box" would have to manually synchronise between the two
> developers... and _fix_ the breakage in f.c ?
No. You make your change and commit it locally. He then makes his
change, and so long as it doesn't conflict it goes in. If it does, he
resolves it, probably by contacting you and asking you why you added a
source file and dependancy without letting him know., in the same way
as if everyone was on the central server.
The point is that the local repository, as I see it, would be only a
fast mirror of the entire repository. Everyone who's working on
project A commits to the same SCM instance. To the user, it's
transparent, unless a conflict is detected when integrating back to
the central repostory, in which case it gets resolved as normal.
There really is no real difference in conflict resolution, except that
there's more then one place a conflict can occur. The local repository
doesn't just sit there getting more and more divergent from the main
repository and more and more broken. It constantly updates itself to
the main one, and conflicts come up as they happen when integrating to
the central repository.
> I can't imagine that's how it works... since that's an extremely broken
> design... but, that's how the implied structure of this distributed
> model seems to work.
I don't see how distributing the work and adding redundancy and
geographic diversity to a service is a 'broken' design. But, horses
for courses and all that.
More information about the ILUG