Handling History in Software

  • most software currently supports only linear history
  • exceptions are vim and emacs which provide tree-like undo history, where every change creates a branch:
    undo-tree in emacs
  • git does something similar, but is far from accessible
  • web browsers should be great at this, but fail all the time
  • history could be Browsable and Searchable
  • history of changes is another example of Sequences of Static Snapshots
  • CLIs allow users to see the history of query -> result
  • history of changes is not tackled well - I want a graph with previews, not undo/redo stack
  • infinite History wouldn't help here much in a basic sense, since the value is in being able to compare the multiple versions
    • maybe some UI primitive for "splitting the view" and "going backwards" in one is needed - so the user can see multiple versions at the same time, while not having to explicitly duplicate the one that's being worked on