[PLUG-Devel] Rah, rah git! [Was: OT: sourceforge or codeplex or googlecode for OSS hosting]

Ted Gould ted at gould.cx
Fri Sep 19 10:40:21 MST 2008


On Thu, 2008-09-18 at 13:54 -0700, voltagespike+plugdevel at fastmail.fm
wrote:
> On Sep 18, 2008, at 8:02 AM, Ted Gould wrote:
> >>   * Far smaller repositories than any other tool
> >
> > This was true of the original repository format bzr used.  But, the
> > newer formats are more efficient.  Since the repository formats are
> > plugable, they get upgraded (see below).
> 
> I thought this made its way in 1.3, so this 1.5 test would be relevant:
> 
> http://vcscompare.blogspot.com/2008/06/git-mercurial-bazaar-repository-size.html
> 
> I see that there is a 1.6, though, so I'd appreciate a heads-up as to  
> where the new format became standard.

Yes, it should be.  Except that the test is an SVN import.  The bzr-svn
package stores extra data on the SVN repository in the repository, so
it's really not a good test of the version control tools on their own.
A better test would be to pull all the files out and commit them using
the native tool.

Honestly though, this isn't something I care too much about.  If I can
fit the history of Cairo, Coreutils, Samba, Octave, Mozilla, Dovecot,
Emacs, Mailman and Pkgconfig in less that $0.10 worth of hard drive
space I'm good :)

> >>   * Far faster than the other tools
> >
> > Most of that performance has been eclipsed with recent versions of  
> > both
> > tools also.  Git is still faster, but I wouldn't put it in the "human
> > can notice" faster category.
> 
> Again, perhaps this changed with 1.6 so I'll give it another try.
> 
> I should have mentioned up front that for smaller repositories (let's  
> say less than a few hundred megabytes and a history with less than 5  
> digits) most people will not care about size or performance ... but  
> it's nice to know that you can grow.

I would agree on this point completely.  I think for most users either
tool is scalable to their needs.  If nothing else, MySQL is using Bazaar
and I'm sure they a rather large database of revisions (pun intended)

> > So there is a rebase command to move where your log is from so that  
> > it can
> > be readable again.  Bazaar solves this by having a readable log in the
> > first place :)
> 
> I'm not sure I follow. Because it is date based, rebase doesn't change  
> the log output. People rebase to linearize history and clean up their  
> changes (most tools, including some git users, accomplish this through  
> stacks of patches). It is more of a discipline than anything else with  
> the goal of making sure that every commit is clean and functional.  
> This is especially important when performing a bisect, but it also  
> helps tremendously when performing code reviews.

Personally, I've seen people rebase just because what they're doing got
too confusing for the human attached to the VCS ;)  I've also seen one
blogger encouraging rebase to make you look like a better programmer
that didn't need all those intermediate commits :)

> >>   * git as everything built-in, I don't have to hunt for plug-ins
> >
> > Again, I'm surprised this is a plus.  Bazaar has a rich plugin  
> > interface
> > that allows for end users to add functionality easily.
> 
> It isn't the lack of a plug-in interface that is a plus. It is the  
> fact that the I download the core package and get everything I need.

I think for Bazaar this is largely the case.  The plugins are just that,
added functionality that other users may want.  Most of the really
useful ones are in the main distribution.  For the most part, the only
extra ones I have are ones I wrote :)

> > One that makes it so that your laptop won't suspend while doing  
> > Bazaar operations
> 
> In git, someone accomplished this same task a while back using the  
> hooks[1] mechanism. Someone took it a step further and taught git to  
> postpone CPU/disk intensive operations while on battery. :-P
> 
> [1] A hook is simply a program that git executes at certain stages of  
> its operation (e.g., a verifier before committing to make sure that  
> your code matches the formatting requirements). These are usually  
> written as shell scripts.

Ah, so it's similar.  You just don't have things like shared data in the
same process like you would with a plugin.  Git has Web 1.0 Plugins ;)

> > and the other that pops up a notification when long operations  
> > complete.
> 
> Again, that sounds like a hook would work (although hooks are per- 
> operation so you'd have to add the hook to the few potentially-long  
> operations).

Yeah, and you'd need to have a hook at the start to be able to measure
how long something took.  Store it in an environment variable?  Seems
tricky.

> >>   * git bisect: binomial search of history for find a bug fix/break
> >>
> >
> > Yeah, and one-upped it.  There is now a bazaar search plugin that is
> > really, really cool.  Plus Loggerhead support.
> 
> git has had such search capabilities for as long as I've been using  
> it. I don't believe that gitweb supports change searching, though.
> 
> I'll have to check out this Loggerhead. Do you have a list of  
> recommended plug-ins and external tools I should install along with  
> bazaar?

I don't really have a list, but here is the search plugin:

https://launchpad.net/bzr-search

And here is my power management one:

https://launchpad.net/bzr-power-management

> That's an external GUI tool, right? I'd try it out, but my development  
> machine at the moment is missing almost all of the requirements to get  
> that one going.

Yes it is a GUI tool.

> I am curious if it works how you say, though, because I've never  
> encountered anything like color-words before. All I can find is a post  
> from 2006 stating that it most definitely does _not_ work for diffing  
> LaTeX files.

Meld does lines, but then also changes the saturations for the words in
the lines that are changed.

> >>   * In-directory branching
> >>
> >
> > Bazaar supports looms.  Which basically means you can do stackable
> > branches, commit to them and build them at will.
> 
> Looms are patch stacks (more like Stacked Git) rather than different  
> branches. It's really more of a development preference, but  
> lightweight branching is one of those features that I didn't know I  
> was missing until I used it.

Oh, okay.  So I think you're talking about repo's in Bazaar.  Basically
I have repo which has the history, and then separate branches that point
to the same history?

> > I think I also want to add a negative for some users.
> >
> >      * Git sucks on Windows.
> 
> Not for the past 9 months or so. Most of the limitations of the FAT  
> filesystem (case insensitivity, limited charset, symbolic links, etc.)  
> have workarounds that are nicer than I would have expected. What git  
> lacks is a "compatibility" mode for Linux users interacting with  
> Windows users. I'm not sure how well Bazaar handles this.

Bazaar uses the same repository format on Windows, Linux, etc.  I didn't
realize that was fixed in Git, frustrating that you have to change the
repo format though.  I guess that's not a huge deal though, just can't
share on something like a USB key.

> >      * As far as I know there is no one providing professional  
> > services
> >        based on Git.
> 
> Well, there is github and Codebase but I couldn't even begin to  
> compare the commercial offerings.

Hmm, neither of those seem to provide commercial support and training.
Perhaps I got the links wrong?

> >      * No project hosting using Git.
> 
> That's just silly. There's gitorious, github, git.or.cz, and a slew of  
> others.
> 
> http://git.or.cz/gitwiki/GitHosting

I was thinking "Project Hosting" not "Branch Hosting."  All of those
provide a place to put your branches, but not a bug tracker that'll
respond to your commits.  Things like mailing lists and file
distribution too.

> > You can also get some comments from people that know better 
> > than I: http://bazaar-vcs.org/BzrVsGit
> 
> Warning! That link is extremely convincing in favor Bazaar.

Then I'll assume it's 100% correct ;)

> >> That ended up being longer than expected, but it should give those
> >> Bazaar supporters something to chew on. :-)
> >
> > Heh, and at the end of the day if people are choosing between Bazaar  
> > and
> > Git I'm happy.  As long as they don't choose Clearcase or Bitkeeper ;)
> 
> I agree, and I think every organization should switch to a distributed  
> system. I thought it was a clear race between Mercurial and Git, but  
> the Bazaar developer support is still there (even if it is shunned in  
> the open source community) and the tools seem well done.

Heh, well yes, that too.  But I was trying to say as long as they're
going open source I'm happy ;)

		--Ted

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
Url : http://lists.PLUG.phoenix.az.us/pipermail/plug-devel/attachments/20080919/a09baef3/attachment.pgp 


More information about the PLUG-devel mailing list