[Mailman-Developers] Plea for Help

J C Lawrence claw@varesearch.com
Wed, 13 Oct 1999 18:40:15 -0700


On Wed, 13 Oct 1999 18:40:53 -0400 (EDT) 
Barry A Warsaw <bwarsaw@cnri.reston.va.us> wrote:

> Thanks for the info JC.  The BK web pages seem pretty out of date
> though, and I didn't see anything about downloads.  Interestingly
> enough I also didn't see any links to the supposedly public free
> software change logs :)

BK is not released *yet*.  Access is currently restricted to people
who sign the beta agreement etc.  BK should be released fairly soon
tho (Larry: What's the current predict?)

> Everything else sounds interesting.  I'd like to come up with a
> solution that would eventually translate to all the projects we've
> got here (JPython and Python) so I want to investigate Aegis, and
> get Guido's feedback on things as well.

Please note that I'm explicitly biased here.  I've used and don't
like CVS.  I'm aware of Aegis only intellectually.  Aegis follows a
somewhat similar design model to BK, but with a much more
overweaning and dictatorial (you will do things our way or you will
not do anything so NYAH!) implementation.  Compared to the various
SCM tools I've used at HP, IBM, SGI, etc I'm damn near in love with
BK, so no brownie points for guessing which I'd recommend.

> I appreciate all the feedback, information and experience you guys
> share.

Absolutely.  Some of the things I particularly like about BK:

  -- Cross platform.  It is identical under Linux, Solaris, IRIX,
Windows NT, etc.  

  -- Resolves 95% of the three way merge problem.

  -- The GUI tools for merges (when they do happen) does almost
exactly what you want a three-way merge tool to do.

Some comments I wrote offlist comparing CVS and BK:

  -- BK removes 95% of the merge problem.  That's enough alone to
sell it to me.  BK's merge tools are not perfect, but they're a
sight better than anything else I've seen.

  -- BK gives you real audit trails for changes.  CVS doesn't.  No
more CVSBLAME.

  -- BK handles file deletes and renames.  CVS doesn't.

  -- BK allows you to stage work and to distribute only
known-working source sets.  CVS doesn't.

  -- Nothing in BK runs as root.  CVS' pserver must run as root to
allow UID changes, and pserver was not built with security in mind.

  -- BK can be run over SSH.  CVS can run pserver connections over
an SSH port forward, but its a pain (I've done it).  CVS over SSH
performance also sucks.  BK over SSH is quite nippy.

  -- BK can use email, even PGP'ed email, as it transport.  CVS
can't.

  -- BK handles binary files transparently.  CVS doesn't even
pretend to.  While BK's handling is not great (it checks in the
UUencoded copy), it does work.

  -- Nothing happens to a BK repository that you don't explicitly
Okay, and EVERYTHING can be rolled back to its prior state.  Got a
bum changeset in?  No problem: Just back it out.  There are few
controls on what happens to a CVS repository other than user/passwd
authentication, and absolutely no rollback capabilities.

  -- One of Larry's big items: BK is very very bandwidth light.  You
can easily (and often quickly) sync two massive repositories over a
slow link.  Basically under BK only the absolutely needed changes
are sent, nothing else.  CVS is not so generous.

  -- BK imposes no user heirachy.  All BK work areas are first class
repositories.  Resync your work area from a repository and the
result is bit identical to the other repository and anybody else can
resync from you.  CVS imposes a single central server/many-clients
model.  BK allows any sort of tree, or even mesh, to be used.  

  -- BK handles branches fairly well, sorta.  I'm still waiting for
Larry's promised LinesOfDevelopment code so I can get a handle on
what he's trying to do there.  If it is what I understand it will be
clean and fairly neat.  CVS OTOH is just painful once you have
anything more than a single branch.

  -- BK makes it very easy to seperate your work on a source tree
into waht I call "projects" (eg a fix for bug X, new feature Y,
etc), each distinct from the others and then lets you track and
propagate them individually.  While similar is possible under CVS,
it is nowhere near as easy and the individual propagation just ain't
there.

-- 
J C Lawrence                                   Home: claw@kanga.nu
---------(*)                             Work: claw@varesearch.com
 ... Beware of cromagnons wearing chewing gum and palm pilots ...