Short HOWTO on using git for Samba development

Jelmer Vernooij jelmer at samba.org
Mon Jun 25 20:12:45 GMT 2007


On Mon, Jun 25, 2007 at 10:43:36AM -0500, Gerald (Jerry) Carter wrote:
> Alan DeKok wrote:
> >   I've used mercurial in a number of projects.  It's 
> > much better than anything else I've used, and the
> > repositories are smaller than git, too!.  It's simple,
> > easy to use, and the tool just doesn't get in the way.
> The main thing that won me over to git was the git-svn
> plugin.  I tried using Jelmer's bzr-svn plugin but never
> got things going just right.  But git-svn just worked
> out for the box. The reason why this is important to me
> is that it allows for experimenting with git without
> changing any samba.org infrastructure.  The git-svnimport
> went smooth as well so these two are known quantities to me.

> I assume that mercurial has something similar but a
> quick search doesn't turn anything up.  Have you got
> any pointers for me?
Mercurial doesn't have anything as complete as bzr-svn yet. Bazaar and Mercurial
are very different from Git in that they use strings (revision ids / file ids) 
to define the identity of revisions and files (and their history). Git defines 
a tree or files' identity by just a hash of their contents (excluding their
history). 

This has the advantage for git that if you import the same tree by
different means (two people import a tarball independently), the tree
will have be considered the same by git and it won't worry about
history. Bazaar or mercurial will consider the history of the trees as
well and this has the consequence that tools like bzr-svn have to work
on the full history (for now) and thus are much more complex than
git-svn.

However, this model also has the disadvantage that git isn't able to store 
rename information. All it has is a best guess as to which file was renamed
to which based on the contents of those files - and this can have
consequences for merges. Other disadvantages are
disambiguouty over the history of a tree and slow (and non-ambiguous?) 
performance of annotation.

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.

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.

Cheers,

Jelmer

P.S. I'm a VCS n00b, please point out errors.

-- 
Jelmer Vernooij <jelmer at samba.org> - http://jelmer.vernstok.nl/


More information about the samba-technical mailing list