I don't understand why undo/redo is linear in all applications I've ever used!
Why can't I select a part of the document or image or whatever and say give me a list of everything I've ever done in this area, and let me undo anything in that list, no matter if it's the latest or the first change?
@forteller I think that's called Git.
@dmoonfire You might be right, I don't have any experience with that. But why not just build it into tools like LibreOffice, Google Docs, etc…?
@forteller @dmoonfire Google Docs has this, File - Revisions
@SuperManifolds @dmoonfire I can't see that. I see "Version history" under File, but that seems just as linear, all or nothing, as anything else. You can just jump further back in one go. Let me know if there's something I don't see here.
@forteller @dmoonfire You can go to any entry in version history, click the 3 dot menu, and select “Restore this version” a little clunky but it’s there
@forteller Localized commits are difficult to code because most of the time undo actions are "insert X characters at position Y" or "select X and delete". They don't remember state, only changes made to existing records. Even things like Google Docs are based on that (though a more complicated approach to allow multiple edits).
To make it local would basically mean if you have an operation that crosses that boundary (in one area and not in another), the coder would have to basically split the history and create three timelines, one for the changes before that area, one for localized alterations, and one for the one after that.
That is not a Simple Problem.
Now, being able to show the differences of one area and let you copy the changes on (which is effect just replacing an area), that is considerably more doable though it would be less "undo" and more of "make it look like the version at this point in time."
@forteller I could be reading your question in a far more complicated manner also. :)
But I think the reason editors don't even allow the "show the past and make this area look like this version" is because no one has really though about it, it is a feature that wouldn't be used frequently, or just didn't want to cut it.
Now, I do use that version but I write in text files, so I use Git plus Beyond Compare to show me old versions of the file compared to my new one and then just copy over the areas I want.
@forteller Because that requires a much more complicated system and a bigger database, than a rolling set of the 10-20 latest changes.
It is optionally available in many programs. Word processors generally have an option to track changes.
Other users rely on version handling of whole documents, but each version often have changes in only one section.
@forteller emacs does this, if you make a selection in your document and undo, it will undo changes in that selection. emacs' undo can be a bit weird to wrap your head around at first (to redo you must undo your undo??) so ig the reason other applications have linear undo/redo is just to simplify things.