JP Vossen on 22 Oct 2008 21:43:08 -0700

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

[PLUG] git vs. bzr

I've been looking at Bazaar (bzr), a VCS that sounds similar to git. 
(Actually, it looks to me like it's Cannonical's superset of git.)  For 
whatever reason, something about git makes my head hurt, but bzr seems 
much more user friendly.  It also fully supports Windows (it's 
Python-based), which, like it or not, I need to use for $WORK.  It also 
has human-readable revision numbers, though a more git-like long ugly 
globally unique revision ID also exists.

I mostly use CVS at work and SVN at home, but bzr can work with either 
(SVN in particular) in a number of ways.  bzr is far more flexible in 
the "topologies" it supports than CVS or SVN, and it sounds like it's 
more flexible than git in that area too.

CVS is ancient and has some great docs (O'Reilly's _Essential CVS_). 
SVN is mature and has some great docs (The "Red Bean" book).  I haven't 
looked into it a great deal, but git seems raw and not well documented 
to me, though I'm very possibly missing something.  bzr has great docs 
(truly impressive for a GNU project, much less one that seems to be < 1 
year old).

My original reason for looking at it (or git) is to de-couple 
"snapshotting changes with the act of publishing those changes." [quote 
from URL above]  CVS branching and merging is just too painful to use, 
but I'd like to have change snapshots while I'm working on something, 
but then publish the change back up to CVS/SVN when I'm finished.  It 
looks like either git or bzr can work from inside a working CVS or SVN 
tree, though bzr explicitly and natively supports exactly what I want 

I've been so impressed with what I've read thus that that I'm toying 
with switching over.  It looks like bze can use an SVN back-end.  And 
there are some very cool things in Hardy and Lenny repos:
* bzr - easy to use distributed version control system
* etckeeper - store /etc in git, mercurial, or bzr
* bzr-gtk - provides graphical interfaces to Bazaar (bzr) version control

bzr is in Etch too, but some of the other stuff like etckeeper isn't (it 
is in Lenny).  I keep /etc in SVN and it's a big pain.  etckeeper says 
it hooks right into "...APT to automatically commit changes made to /etc 
during package upgrades. It tracks file metadata that version control 
systems do not normally support..."  How cool is that?


OTOH, bzr doesn't yet fully support expandable keywords (e.g., $Id$) 
though it looks like they are working on that.  And it doesn't look like 
it works with ViewVC, though it does seem to have a few of its own at

Any comments, esp. from those more familiar with git (Rob?)?  Does 
anyone know enough about this to do a preso?

JP Vossen, CISSP            |:::======|        jp{at}jpsdomain{dot}org
My Account, My Opinions     |=========|
"Microsoft Tax" = the additional hardware & yearly fees for the add-on
software required to protect Windows from its own poorly designed and
implemented self, while the overhead incidentally flattens Moore's Law.
Philadelphia Linux Users Group         --
Announcements -
General Discussion  --