Comparision of Git & Bzr [was Re: Short HOWTO on using git for Samba development]

Jelmer Vernooij jelmer at samba.org
Tue Jun 26 11:19:51 GMT 2007


On Mon, Jun 25, 2007 at 04:25:10PM -0500, Gerald (Jerry) Carter wrote:
> Jelmer Vernooij wrote:
> > I really think Bazaar has the best approach of the 
> > various DVCS systems. They are also the (only?) one that
> > focussed on correctness of model first rather than speed
> > and that's really breaking them up at the moment.
> Other than tracking renames, what else do you mean by
> "correctness".  I haven't followed all the DSCM bake-offs
> and debates.
I think the Bazaar model is a bit easier to understand than the git
one, especially for people coming from (for example) Subversion. The
UI is also much nicer. For example, there's no need to worry about sha1s as a
regular user and the commands make a little bit more sense. It's usable 
easily in a centralized fashion. 

Git's data format and representation are intermixed - there's no way
of upgrading the repository format without changing the revision ids,
as they are checksums tied to the format. Bazaar has infrastructure
for upgrading to newer formats and thus can support things like nested
trees in the future without breaking everybody's existing branches. 

Git is really fast and efficient at what it is supposed to do: merge between
and store snapshots of code on POSIX systems. It does not aim to do
more than that; for example, win32 will be tricky to get fast because it 
relies on platform-specific features and its heavy integration with
the current data format means it's hard to add new features such as nested 
trees. Bazaar is trying to be more generic.

> > For the last half year I've used Bazaar for my Samba 
> > code, but while  local performance has improved it's really,
> > really slow to push across the full history of Samba over the
> > wire all the time. Until lazy repositories/history horizons
> > (being able to push/pull a tree without its history) land,
> > I'll go back to Subversion for my Samba code.
> I truly like bzr as a project.  I do however, find the
> branch checkouts in git much more intuitive and having
> all branches in < 100M is a huge deal for me.  I haven't
> played with bzr's smart server to compare it with the
> git-daemon but the latter seems pretty snappy.
bzr's smart server improves performance significantly, especially for 
high-latency connections. The fact that all of Samba's history has to 
be transmitted makes that its still slow.

> The things I like about git are:

> * git-svnimport and git-svn (for now)
> * fast-forwards and rebasing branches
I've never really understood what's so nice about fast-forwards or
rebasing. What's so useful about it?

> * speed
> * disk and RAM footprint
Yeah, I have to agree with these. The speed and RAM usage of git are 

> Questions about bzr are

> * Will svn2bzr.py actually work on the Samba sv repo now ?
Not sure about svn2bzr.py, but svn-import (similar command from
bzr-svn) does. 

> * What would the resulting size be?
I think it was about half the size of the Samba Subversion repository
last time I tried it.  Obviously, it would be a lot less when lazy 
repositories would be supported.

> * What is the status of bzr repositories and cheap branching?
It's high on the list for the summer. Most of the current focus is on
performance.

"bzr switch" changes the branch that is used by the current working
tree, much in the way you can do so with git. It doesn't change
directory or anything.

Cheers,

Jelmer

-- 
Jelmer Vernooij <jelmer at samba.org> - http://jelmer.vernstok.nl/
 23:41:21 up 78 days, 22:32,  1 user,  load average: 1.34, 0.93, 0.56


More information about the samba-technical mailing list