2. According to
Wikipedia:
“… is the
management of
changes to
documents,
programs, and
other information
stored as
computer files.”
Image: http://i.ehow.com/images/GlobalPhoto/Articles/2065416/dictionary_Full.jpg
3. Before
Version
Control
File renaming
Code.001
CodeNov1.xml
Directories
Nov1Code
Zip files
Nov1Code.zip
Nothing at all
Image: http://www.stud.u-szeged.hu/Sajben.Emma/TW1128-Rock-Stars.jpg
4. We have
moved on…
haven’t
we?
Image http://yabadabadoo.files.wordpress.com/2008/03/puzzled-fred.jpg
5. A Brief History
• diff • RVS DVCS
Tool
1970’s • SCCS
1980’s • CVS
1990’s Support
2000’s (Bitkeeper,
Git, etc…)
Image http://www.free-background-wallpaper.com/images/Wallpapers1280/Beach-Wallpaper/Sand-Dunes-Soft.jpg
6. Version
Control is…
Backup & restore
Synchronisation
Undo
Track changes
Sandbox / spike
Branch / merge
Not just for code
Image http://globalnerdy.com/wordpress/wp-content/uploads/2007/10/version_control_star_trek_style.jpg
10. Version Control
Best Practice
Use good comments
Commit often
Single vs multi project repos
Branch/tag when appropriate
Binaries/large files
Respect the trunk
Get to know your
command line & client
Image http://www.improvizations.com/Portals/42614/images//best-
practice%20checklist-resized-600.jpg
15. Why Distributed
Version Control?
Cheap local branches for
easy experimenting
History aware merges
Full local history
Offline commits
Each working copy is a
complete backup of the
repository
16. Example Distributed
Version Control
Tools
Git (2005)
http://git-scm.com
Mercurial (2005)
http://mercurial.selenic.com
Bazaar (2005)
http://bazaar-vcs.org
Darcs (2004)
http://darcs.net