A friend of mine works on a tool allowing visually presenting ideas and she asked me how it should let users go back to any changes made previously. Firstly, I told her to just provide History and Undo/Redo options, but in fact it does not do the trick.
The way edit history is commonly used does not allow users to go back to all the changes - the sole process of undoing seals the way to some of the steps whenever the new branch of edit appears, so for example in this situation:
from 8 you can go back only like this: 8 > 7 > 5 > 3 > 2 > 1.
As you can see, having rolled back from 4 to 3, user still can redo to 4, but if he does does 5 instead, then the possibility to go back to 4 is lost forever. The same about 6. This is a weak point of the system, especially as the common understanding of "history" (as a word) is "everything that happened in the past".
Thus, I came up with another idea, which is time based and allows the user to go back like this: 8 > 7 > 5 > 6 > 5 > 3 > 4 > 3 > 2 > 1
In this case, history collects all the points on the way, treating the rollbacks as points in history as well. So, rolling back from 8 to 1 user can also visit all the points he rolled back from before. There is a downside of this, as some of the history points are duplicated, because they are passed through multiple times.
And here come my questions:
- What do you think about this attitude?
- Do you know any tools (online systems, OS plugins modifying the original behavior of history management) doing it like this?
- Do you maybe know any other attitude that allows going through the branches that can be presented in a way clear for the user?
Please note that any versioning, revisions, is not the same, as usually versions do not reflect all the changes, only some keypoints when let's say a document is saved/autosaved. There are for example local Time Machine copies that are really helpful, but in general versioning is more output oriented, not the editing process oriented.