I've been a fan of Bazaar for a while now, using it for all of my personal projects. I store the history of these projects on a central server at work and when I make changes on any computer (my laptop, a lab on campus) I push the changes to the central server and then I'm able to get the latest version of my work on any other computer. In this sense, I use a Version Control System (VCS) as a synchronization solution. Less frequently, I make use of the history tracking features of a VCS. Until recently, when I started collaborating on a software project with a student (GooeyStat).
He is hosting the project at Google Code which provides free hosting to Open Source projects like this. Google also provides only Subversion source control (okay, they also have a limited pilot program for Mercurial). So, when I wanted to start contributing to GooeyStat, I didn't want to give up the Bazaar interface which is so faimilar to me. So, I installed bzr-svn which is a plugin that allows Bazaar to interoperate with Subversion repositories.
With bzr-svn installed, I can check out or branch from a subversion repository such as https://mathapp.googlecode.com/svn/trunk. If I take a checkout, then all of the changes I make in that branch are automatically pushed back to the Subversion repository. Since I want to be able to control when I push my changes back to Google Code, I do most of my work in a local branch of the trunk. You know, like this:
$ bzr init-repo gooeystat
$ cd gooeystat
$ bzr checkout https://mathapp.googlecode.com/svn/trunk gooeystat-trunk
$ bzr branch gooeystat-trunk gooeystat-dev
$ cd gooeystat-dev
Then, I hack away in gooeystat-dev using Bazaar to commit whatever and wherever I want. I can uncommit if I make a mistake, I can make multiple small commits, whatever I want in the gooeystat-dev branch.
When I have a good set of changes done and everything is working right, I can merge my local branch back into the trunk, and then commit the changes, sending them to the Google Code subversion repository:
$ cd ../gooeystat-trunk
$ bzr merge ../gooeystat-dev
$ bzr ci -m 'lots of changes from my local branch'
Lots and lots of people have been doing this before me for a long time, but I was just tremendously pleased with how well it works. Google Code uses a new-ish version of Subversion (1.5.4) so it can handle the additional metadata of a Bazaar branch in a completely transparent fashion. No one using Subversion directly on the Google Code repository will need to be bothered by the fact that I am using Bazaar to commit to the Subversion repository. (This isn't the case with older Subversions where Bazaar's metadata was stored in user-visible ways.) I get the local hack-ability of my preferred VCS where I can make branches and merge 'til Kingdom come, but the collaborative aspects of the very widely-deployed Subversion. Bravo Bazaar and bzr-svn.