Here is a bare bones implementation of undoing saves: put every saved version under source control.

This code uses Bazaar, which is a pure Python implementation of version control. Don't know how it compares to Mercurial, the other Python source control system. Mercurial uses C extensions and hard links on Windows, something the Windows tools like Explorer don't support, as far as I know.

Code is attached.

To use: Install bazaar, and make sure 'bzr' is in your path (c:Python25scripts on windows). Put your Leo source tree under version control (bzr init).

Using version control is quite cheap. Once bazaar is more mature (and I understand its API), one could even provide a Leo interface to version control.

You can find more information about bazaar here: http://bazaar-vcs.org/

bazaar.py

bazaar.py.leo