[Sparkle] LaunchPad + Bazaar vs. Lighthouse + Git[Hub]

Dave Dribin dave-ml at dribin.org
Thu May 8 07:25:53 PDT 2008


Hi all,

Well, I noticed Mercurial wasn't an option.  Not sure why, as it's  
quite capable and popular, too.  Perhaps there's no public hg hosting  
available, but really, all you need is Python+CGI to set it up. I  
personally find Mercurial less confusing than Git.  I also love "hg  
addremove".  But really, Git, Mercurial, or Bazaar are all quite  
capable.

One thing to keep in mind with DVCSs and OS X programming is that the  
ability to branch and merge is limited by Xcode and Interface  
Builder.  Those pesky .xcodeproj, .nib, and .xib files just don't  
merge well.  Yeah, these files are XML, but still, I don't trust the  
automatic merge 100%.  Plus, if you get a conflict, you're pretty much  
hosed and need to just pick one.

In the risk of this devolving to a VCS flame war, I'm adding a few  
comments below. ;)

On May 8, 2008, at 5:32 AM, David Symonds wrote:
> My 2 cents from a Git user (and occasional contributor) why you should
> use Git over Bazaar:
>
> - Bazaar still uses that daft notion of branches-as-directories that
> makes SVN and Perforce painful.

Mercurial uses this, too, and I really don't find it "painful".  It  
works perfectly fine.  Bazaar and Mercurial both handle merges so much  
better than Subversion, you can't really compare them.

> - Git is under more active development (from what I can tell).

Bazaar has gone from pre-1.0 to 1.4 in, what, less than six months?   
Seems quite active, to me.

> - Bazaar is implemented in Python, so it's a bit slower and less  
> portable.

That's just FUD. ;)  Python actually makes Bazaar and Mercurial *more*  
portable than Git's dependence on C + Perl + shell scripts + pipes.   
Mercurial's story on Windows (not that it matters at all for Sparkle)  
is much better, for example (see TortoiseHg).  I've found Mercurial to  
be just as fast as Git, for anything I've used it on.

> - Bazaar doesn't do rebasing, so development against old versions need
> to be merged or hand-updated.
> - Git's "unfriendly" SHA-1 identifiers aren't unfriendly in practice,
> since you can abbreviate them or use relative commit addressing as
> well.  Lightweight tagging also makes it ridiculously easy to do
>>
> complex manipulations with whatever terms you want to use.

I'm not a fan of the SHA-1 IDs, either.  Mercurial uses SHA-1, as  
well, but also allows you to use svn-style increasing integers on your  
local repo, which is very handy.

Bazaar's IDs are possibly less confusing than SHA-1:

   <http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html#understanding-revision-numbers 
 >

Having never used this new scheme, I don't know how well that works in  
practice.

> - Bazaar is relatively lesser known. Any given random developer is
> much more likely to know Git.

Agreed, but it's not as if Bazaar is a complete unknown.  If you're  
going to pick based on what's popular to Joe Random Developer,  
Subversion beats any DVCS, hands down.  If Andy likes Bazaar, I say he  
should go for it.  It's popular enough, IMO, and I'm all for learning  
more about it.  Though, if it were my choice, I'd go Mercurial. ;)

-Dave



More information about the Sparkle mailing list