I use revision control tools to handle ever changing versions of my webpage, LaTeX documents, as well as actual source code, but I don't think I'm doing it right. I used cvs for a while, then git more recently, but I'm not really happy with them, possibly because I'm using them incorrectly. I'd like some advice on how to use them correctly, or a suggestion for a different type of tool.
Basically, I'd like to use source control as an persistent long term "undo" feature that I can easily browse. For example, if I had a Java project in eclipse, it would be nice if I could see side-by-side views of the current file and an earlier version with options to completely revert or cut and paste from the old. In terms of something like a webpage tree, I'd like to see side by side views of a tree and revert to old versions of files or bring back a whole directory that was earlier deleted.
Right now I basically do a git add .; git commit -a
every time I make major changes and know that I can restore some old versions of files if I need. Whenever I've actually had to go back and browse the revision tree it seemed complicated. I've tried a few GUIs in the past, including a web-based CVS viewer, but it still seemed harder than it needed to be.
Am I doing it wrong? Or is there a different tool I should be using?