• Wikipedia page history
• google docs revision log
• track changes in Word
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
How does a good VCS
help?
Slide 6
Slide 6 text
Saving our bacon
• Store your code securely
• Throw away a change that doesn’t work
• Find an older version that works
• Find what change caused a problem
Slide 7
Slide 7 text
Working with others
• Allow people to work together without
conflict
• Avoid fragmentation of the codebase
• Track who changed what, when, why
Slide 8
Slide 8 text
Experimenting in
isolation
• You don’t want to release a half done or
experimental feature
• Create a copy of your codebase: a branch
• When that feature is done, you merge that
branch
Slide 9
Slide 9 text
Top tips
Slide 10
Slide 10 text
Lingo
• You store code in a repository
• You checkout code from a repository
• You commit changes back to the repository
• When you commit a change you write a commit
message explaining your changes
Slide 11
Slide 11 text
Keep commits small
and focussed
• Fix 1 bug
• Add 1 feature
• Not all the work from 1 day
Slide 12
Slide 12 text
Commit messages are letters
to your future self
• Explain what you are doing, and why you
are doing
• 1 line summary, plus longer discussion if
needed
Slide 13
Slide 13 text
A bad commit message
• Doesn’t tell you why you made the change.
• Doesn’t describe what the change was
• Won’t make much sense 6 months from
now
Twiddle some CSS
Slide 14
Slide 14 text
A better commit
message
Fixed homepage rendering bug on firefox 16
Firefox incorrectly calculates padding when nesting a
something element in a something else element.
Slide 15
Slide 15 text
There are many revision
control systems
• git, mercurial, bazaar, svn, darcs, perforce
etc.
• git is the most popular in the rails
community
Slide 16
Slide 16 text
Where to go from here
• Install git!
• Free git hosting at github.com
• The git book - http://git-scm.com/book
• GUIs: Tower, github for mac/windows