On Mercurial API

Matt Mackall mpm at selenic.com
Tue Jul 31 10:57:42 CDT 2007


On Mon, Jul 30, 2007 at 09:59:34PM -0700, Dustin Sallings wrote:
> 
> On Jul 30, 2007, at 20:18, Mark A. Flacy wrote:
> 
> > OK, I'll bite:  Why are you supporting obsolete versions of Mercurial?
> 
> 	0.9.4 isn't that old, and last I checked, 0.9.3 was still the  
> version ubuntu gives me.
> 
> 	I think the concern isn't so much how difficult it is to maintain  
> backwards compatibility, it's that the last three minor versions have  
> each  moved this command.

The API will continue to move until it's converged on something good.
It's more important that we have a good API than a stable one.

As an example of this, recently I changed _all_ the lock handling.
There was a subtle issue involving exceptions that meant our locks
could get messed up in some situations. In the course of doing this, I
removed all the passing of locks between functions, thus simplifying
dozens of functions and shortening dozens of argument lists. If we had
a stable API, I wouldn't have been able to do this. 

Further, given that I've done most of the API breaking in question,
and each time fixed up all the in-tree extensions when doing so with a
couple minutes' work, I think the pain of said breakage is being a
little overstated.

-- 
Mathematics is the supreme nostalgia of our time.


More information about the Mercurial mailing list