Slide 1

Slide 1 text

Introduction to version control

Slide 2

Slide 2 text

Managing changes

Slide 3

Slide 3 text

• 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

Slide 17

Slide 17 text

Version control is for everyone!