I made this package for my myself, I'm just posting it here in case someone needs something like this.
;; timeline-mode minor mode records and shows a timeline of buffer
;; changes
;;
;; Buffer changes are stored after using complex commands and after
;; every save
;;
;; Changes are processed after 5 seconds of idleness, so that
;; processing does not interfere with typing
;;
;; Command timeline-show shows the timeline with a complex command
;; name or compressed diff shown beside every item and a full diff in
;; an other window for the currently selected item
;;
Screenshot: https://i.imgur.com/dcNEqFR.png
Code: https://gist.github.com/codecoll/75acdf7a1e9bb24091dc79d4c468bf00