cosminap made an interesting post in the forum about “snapshotting” a GoboLinux system (the relevant part is at the end of the post). S/he suggests using a union filesystem to do so magically, and also do away with patching of programs to fit the filesystem hierarchy (a common thread from earlier posts: I don’t think it’s necessary or terribly useful. I might make a longer post later). However, there’s also a suggestion of doing the same thing by making copies of the /S/L tree and creating a symlink to the newest version, which I think is viable.
I did a little testing on my dummy system, and there’s nothing in Scripts that requires the entries under /System to be real directories
Making additional copies and switching the symlink around will let you have pretty effective snapshots of your system state. It isn’t as simple as cosminap suggested, though: as I said, kernel modules must be installed in a real path, and aren’t under the /S/L hierarchy, and neither is the kernel, one of the examples in the post. Unmanaged files in general would only be updated with a SymlinkProgram run. Settings can also change between versions and wouldn’t be covered, nor would /Programs/*/Current. So it would mainly be useful as a recovery method from a single broken install, rather than a full system snapshot, and in that case you’d know what was wrong and be able to revert it yourself.
What cosminap really wants here is a full snapshotting filesystem, like ZFS. It’s only available through FUSE for Linux, so it’s probably not as performant as you’d like for your root filesystem. I remember hearing that NTT made a native filesystem with similar functionality, but I couldn’t find it just now. That’s a better level to implement this than in the system tools, given the range of changes that can be made, and the need for the restored system state to be consistent. The filesystem or dedicated backup software is where this belongs.