What is the managment overhead of decentrilized version control?

Jan Hudec bulb at ucw.cz
Tue Jun 20 11:39:52 BST 2006


On Tue, Jun 20, 2006 at 10:06:56 +0100, Ben Edwards (lists) wrote:
> I am currently evaluating bazaar.  From our perspective decentralised
> version control is not really necessary, we are a software house mainly
> developing Plone sites. From the perspective of a release manager I am
> trying to work out what the management overhead is for bazaar and
> decentralised version control in general and also what other benefits
> bazaar may have for a organisation not needing centralised version
> control.

Bazaar-NG is designed to handle both decentralized and centralized
workflow and it indeed does. For centralized workflow, that is when
there should be several people committing to the same branch, there
are severalsolutions (they were already mentioned in other reply, though
not compared):

 - Central branch where everyone can push:
 	This requires only a server area with permissions set so that
	all committers can write over sftp. Each developer uses push to
	put his changes there. Push is only allowed if the target does
	not contain any revisions that are not present in source, the
	developers merge from the central branch and then push the
	result back.
 - Central branch where everyone can push + checkouts:
 	bzr now supports checkouts, that simplify the above process.
	Checkouts only allow commit when they are up-to-date with the
	central branch and automatically push them back, exactly as
	checkouts eg. in subversion do. They can be either 'heavyweight'
	(keeping mirror of all the data) or 'lightweight' (always
	accessing the data on server).
 - Patch Queue Manager:
 	The patch queue manager accepts merge requests via mail or by
	uploading files to a spool directory (or anything that can
	result in file being put in a spool). It requires more setup
	than the above options, but it can be set to do arbitrary checks
	before committing the merge. So eg. if you practice test-driven
	development, it can be set to run the test-suite and abort the
	commit if it fails.

> >From my understanding if you have say 3 developers working on a project
> for a release they would all push there changes to what has been agreed
> upon as the release branch and then someone has to merge the code in
> this branch.  The subversion method would be people committing there own
> work and doing the merge themselves.  Although this does mean they need
> write access to the master repository at least the person doing the
> merge understands the code.   

It is not a problem to set up a write access for several people. The
easiest way is probably using ssh key-based authentication. Also IIRC
bzr supports sgid repositories, that is if the repository is sgid, it
sets group write permission.

> Peoples thoughts on this would be good, it would be great if people
> could concentrate on this issue specifically, I am sure there are lots
> of more general pros/cons threads;).

Have you already read the wiki at http://bazaar-vcs.org?

Anyway:

 - Bzr has very good merging. It handles merging of renamed files well
   and it supports annotation-based merge algorithm, that can help in
   resolving complex merge cases. If we exclude subversion, which has
   next to no support for merges, neither svk (which is built on top of
   subversion), git nor mercurial handle renamed files well.
 - Very easy branching. Also temporary branches can be on the devloper's
   machines and don't need to clutter up the server space.
 - Local branches are useful if the developers sometimes need to work at
   customer's site. They can have the branch on their notebook or even a
   memory stick and they can access all relevant history and even record
   changes for integrating later.
 - No single point of failure. If developers keep up-to-date local
   branches, than if the server goes down, they can continue to work and
   even reconstruct the mainline on some other computer by branching
   from their local copies (in bzr revisions keep their identity across
   branchies, so branching produces identical copy).

perhaps someone can come up with more.

-- 
						 Jan 'Bulb' Hudec <bulb at ucw.cz>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060620/220536da/attachment.pgp 


More information about the bazaar mailing list