BZR quick start:
# Checkout a local working copy of VM
bzr get http://www.robf.de/Hacking/bazaar/vm
# Some days later you want to pull new changes
bzr pull
# Now you decide to hack on VM and commit your changes
xemacs vm-mime.el
bzr commit
# Generate a bundle of your changes for merge into the mainline
bzr bundle-revisions --output=xy-changes.diff
# Attach the bundle to a mail (rather than doing cut&paste) and send it to
# hackATrobfDOTde.
# Now we have diverged branches, so you need to merge my changes into your tree
bzr merge
# And commit them!
bzr commit -m "synced with mainline"
# If we are in sync after the merge, pull should work again
...