Repository basics
Store data as a filesystem tree (yes, directories and files)
Allow tree to be quickly copied from one place to another
Repository remembers every change ever written to it
- Every change to every file
- Adds, deletions, renames, etc
Can view current or previous state of the repository