I'm working on some electronics simulation software that manages projects that are organised in a tree structure: modules in modules in modules, etc... (For instance, the project may contain modules A and B, module A may contain module C and C may contain D and E, and so on.)
I would like to add an undo/redo feature to the program but I don't know if the undo/redo stacks should be on a per-module (per-node) basis (such that the changes can be undone independently) or on a project basis (such that holding Ctrl+Z will revert to initial save state if held long enough).
Will users find it confusing if it is on a per-module basis? Would they prefer it on the contrary? But can it cause chronology problems? Is there a consensus on such a problem? Which is better and why?