Texas Steel-cage Version Control System Death-match
Carl N. Baldwin, Bob Proulx, and Sean Reifschneider
Why Version Control?
Point-in-time snapshots.
Reverting to older versions if things break.
Coordinating multiple developers.
Easy off-machine backups.
What changed, when, and by whom.
Peer review of changes.
Common Features
Change history of files.
"This used to work but is now broken."
Tagging.
Branching.
Sandboxes.
Experimentation.
Revert single files or whole trees.
Back-porting fixes to previous releases.
Sharing changes with developers or other users.
Changesets.
Uses for Version Control
Software development.
Put system control files in version control.
Publish web-sites.
SVN Wiki: ability to revert content.
Some people version control their $HOME/.files
Comparison
| CVS | SVN | Darcs | git |
| Atomic Commits | No | Yes | Yes | Yes |
| Mature | Yes | Yes | No | No |
| Renames | No | Yes | Yes | Yes |
| Merging | Some | Some | Some | Yes |
| Branches | No | Yes | Yes * | Yes |
| Distributed | No | No | Yes | Yes |
| GUIs | Some | Yes | No | No |
Wrap-up
A few last words.
Questions?