A handy quality of .tex files is they are plaintext files. As a result, you can keep track of any changes with a revision control system, such as Git, which you might have heard of if you dabble in order programming.

I like to use revision control for two reasons:

  1. Keep track of changes on documents that I want to use for a long time
  2. To copy templates easier and smarter.

For me, reason one is my resumé. In fear of breaking such an important document, I did not like making changes to it. Or I would make resume_test_2.1.tex and then try to remember all the changes made to copy over into the “official” resume.tex. Revision control gives you the freedom not only to keep track of changes, but to completely throw away what you have and try anew, with the safety of going back to a point where it worked. The same reasoning can go for any other significant paper, such as a thesis or term paper.

Reason two comes in handy for reusable templates. I used to copy and paste a template folder, but cloning it through revision control systems gives the added benefit of exchanging changes on either source or clone. Say you find a new package that you want to be in your report: you have to add it into your current document and then remember to add to the template later. Or, you can add it to either your project or your template, and use your revision control system to push it one way or the other, and have it go to your other projects as well. Revision control is a phenomenal thing, and done right will be a boon to your workflow.