Fatal error

I read about NormalNorman Walsh problems with mercurial and I found a couple of things scary:

  • That a revision control system can have a big error like the one he quotes and exits without giving an error message. I hope this one is a serious bug and will be fixed.
  • That he finds it something that can be tolerated without substantial bashing and ranting, being something so used and mission critical in nature as version control. :)

I read about some projects that are moving to mercurial. I think mostly OpenSolaris and OpenJDK, and I think some people at Sun made the wrong decision there. Not so much because mercurial is bad, though this is what one could carelessly infer from the error I pointed above, but because the space of distributed SCMs tools is going to be fairly competitive, and I guess git will steal most brand positioning for big software projects, leaving only space for another competitor, which I guess will be bazaar, for medium/small projects. If you forget his obvious bias for git, which he started to write, watching Linus Torvalds speak about GIT should give you an idea why distributed SCM is A Good Thing (TM).

Why is Sun choosing the wrong tool here? I think it is because they did it by the book. According to Mark Reinhold, the OpenSolaris people:

...wrote up a list of requirements, conducted a thorough evaluation of the best alternatives, and eventually settled upon... Mercurial.

In my view, comitteechecklist selection of any tool is bound to disaster, because it completely misses the feelings, that are actually esential in something that will be used a lot. It is checklisting features what leads software products to turn into bloatware, as buyers check: "three-way-merge? Yes, branch-and-remember? No,..."

Going to the gut feelings, to me git feels old school engineering, much like a Citroen, while bazaar feels literate and trendy, almost like a Mac. CVS used to be old school, while Subversion has evolved to be half way between both, say like Acrobat PDF reader. I'm not sure how mercurial feels, or darcs, the other missing piece in my book. Clues are welcome on both, and also on any other software that I have forgotten to mention.

My experience

I was using git for a while, and I found it good on the technical side, but a bit too arcane for complex operations. It still feels safe to use something that can handle both speed and size-wise a project the size of the linux kernel trees, and also www.freedesktop.org, which includes X and a fair number of drivers, libraries, utilities, etc. In fact it was tracking X stuff how I have used it mostly.

Planet venus led me to test bazaar, which is a bit less powerful than git but simpler to use, and good enough for most developments. I needed little time to patch bzr-feed.py and get the releases to point to a Trac project manager. Trac is very cool, and a well known forge for the quality of its visualizer for code changes. Ideal for small projects/companies, as it combines in a simple, easy to administer tool a wiki, a bugtracker, project timeline and roadmap, and integration with revision control systems (Subversion and CVS by default, I needed to install the bazaar support separatey). I need to ask Brian McCallister about mercurial, as he seem to be using it

Meanwhile, the Client-Server area is fairly stable, as subversion is rock solid and CVS will die a slow death. There are tools to import a subversion repo into most distributed tools (git and bazaar). Curiously enough, when most Enterprise people is just starting to do Server based version control, most FLOSS people is moving away from it towards distributed alternatives.


Fatal Error

I like it well enough, not madly in love. Doing local checkins prior to pushing changes up to my main repo is nice. I haven't had any fatal problems, and so far so good. It also nicely handles crap like Apples i* apps which hate stuff put into the data directories.

Overall -- it works, I use it for personal stuff, haven't pushed it very hard yet.

Posted by Brian McCallister at


Fatal Error

I'm rarely accused of being "Normal" (my first name ends in 'n', not 'l' :-)

As for the bashing and ranting part, well, life is short. And I do think having one half of the process kill -9'd is an exceptional circumstance. And I have a workaround to catch the error immediately if it ever happens again.

(Apologies if this appears twice, there was some weirdness about "signing in" when I submitted the comment.)

Posted by Norman Walsh at

Fatal Error

Norman, sorry about the typo, it was actually right in the excerpt, but not in the first line of the whole entry, which is shown while it is current.

I found strange that no news is good news is used as a criterion for ending a transaction, no matter the remote cause.

Re: the login madness, I’m still adapting Sam’s software and I guess openid is not fully functional. It seems to work right here, but I’ve tested it too little to be confident. Also, some double preview might be done because of Sam’s interesting anti-spam techniques which I (try to) apply too.

Posted by Santiago Gala at


Threads are the wrong kind of abstraction

Threads are a bad abstraction for a number of reasons. Much like pointers, new and dispose looked so alien in Pascal!...

Excerpt from Boxes and Glue at

Add your comment












Nav Bar