2009/1/4 Brett Cannon firstname.lastname@example.org:
Bazaar has been backwards-compatible with everything from my understanding, so any changes they have made to the repository layout or network protocol they use should not be an issue regardless of what client or server versions are being used. As for the version number, the team does monthly releases, so it has nothing to do with stability and more with their timed release schedule.
As far as I am aware (and it's not based on much practical experience, so I could be wrong) the big issue with older Bazaar formats is that they are substantially slower. And there's some sort of interoperability constraint that I don't understand, which means that, although newer clients can read from older servers, the fact that the server uses an older format means that the slowness affects the client (it may be that it's possible to get around this with some level of juggling at the client). It would be very useful to have a good statement of the impact of different client/server versions.
As for Mercurial, I have been told their repository layout has not changed since their first release and updates have been more about bug fixes and speed improvements.
According to Mercurial compatibility rules, - New Mercurial should always be able to read old Mercurial repositories - Old Mercurial should always be able to pull from new Mercurial servers - Old Mercurial should break with a meaningful error message if it can't read a new Mercurial repository
which basically means, the server version used will not affect the client and you will always be able to upgrade the server version without pain (point 2, "pull", is about client/server interaction). The last point states that you can even *down*grade the server with minimal pain (for *real* conservatives :-))
In practical terms Mercurial is 100% compatible back to at least June 2007 (version 0.9.4, the earliest documented at http://www.selenic.com/mercurial/wiki/index.cgi/WhatsNew).