Hmm or just make it produce symbolic links by default, and then if you want, allow you to "commit" changes, which would actually move these files. Any downsides to this?
Could also have integrity checks that total number of files and their attributes didn't change after the commit