Use undo-tree (visualize mode sold me instantly).