I've been thinking more and more about a mud engine that is version control aware. Throughout this ramble, I'll talk using git terminology, since that is what I'm most familiar with. The concepts should be applicable to most modern version control systems however.
My idea is that there are two methods to the vcs integration, playerfile saving, and world instancing.
In this ideal world, every (configurable) 10 minutes, a worker would sync all players to disk, then commit the changes with a generated commit message (ex: [autosave] 153 player files
). The integration would know exactly which playerfiles have changed, and would be able to add those to the index, and commit that index. (in git, you first add changes to an index, then commit those changes. for hg/bzr, you'd most likely run the commit command and pass in all of the changes files)