GNU Emacs
Dashboard Understanding the Problems it Addresses

Version control systems provide you with three important capabilities:

  • Reversibility: the ability to back up to a previous state if you discover that some modification you did was a mistake or a bad idea.

  • Concurrency: the ability to have many people modifying the same collection of files knowing that conflicting modifications can be detected and resolved.

  • History: the ability to attach historical data to your data, such as explanatory comments about the intention behind each change. Even for a programmer working solo, change histories are an important aid to memory; for a multi-person project, they are a vitally important form of communication among developers.