I heard it. I read it. I never faced it until today. The world-famous Vim Undo Tree.

Well, just an ordinary day today. I was solving an issue. There are two solutions avaiable. The first is harder to do. I am choosing it! Working hard, but not commiting into my git repo yet. After IRC discussion with my team folks it turns out the second solution is better. All right. Happens to the best of us.

Vim undo. Many vim u-u-u-u-u-u-undos. Like dozen (12u) of them. Starting over. Working hard, commiting into my git repo then. Bell rrrrrrrrings. Thats my phone reminder. A meeting.

Ouch!

Now it turns out the first solution is better. ##%#$#! Whoooa. Git reset, but what to do now? Do it again? Noooope.

Never closed the vim instance, clever boy. Issuing :earlier 1f several times until I get there. I am smiling on my first version, saving, git-resetting, committing, pushing. Fireworks.

If you are not vim-addicted: Vim allows you to travel through all your undo history tree. Back and forth. By changes. By time. By saves. Does not matter if you overwrite it many times. It just remembers everything. Awesome.

Can your text editor do this?