ZenMagick also has an installation system.
It allows to modify existing files, including undo, and also supports running SQL by wrapping/abusing the sqlpatch.php admin page (this means the prefix is automatically taken care of).
Basically, each modification is wrapped in a separate patch class that also may have preconditions, depend on other patches, etc.
Patches will also check file permissions and generate error messages if those need to be changed to install.
I think one problem a lot of mods are facing right now is that they add lots of *loose* code to existing files. It would be a lot better to wrap custom code in functions or classes and minimize file changes as far as possible.
In ZenMagick modifications are three lines max per file, so it's easy to undo without the danger of breaking files.
Modularizing code would also mean the code is more flexible and easier to integrate/refer/use/whatever from other mods.
One advantage of patching is that zen-cart updates (unless major) are easy to handle by simply re-applying all patches.
My feeling is that logging/tracking changes in the database is overkill and there is a always a good chance to get out-of-sync.
cheers, mano




