Title: Version Control and how it will save your life
1Version Controland how it will save your life
- 10-minute crash-course into the benefits of
- source code management
Craig Mason Stasis Media CraigMason.co.uk /
StasisMedia.com
2Scope of this picnic talk
- A quick explanation and demonstration of source
control and its benefits for the complete
beginner and amateur. - What problems source control can help to resolve
for the individual and the business - Overview of the different VC software available
3What is version control?
- Managing the history and changes of a set of
files - Collaborating on a set of documents with a common
document store - Branching and merging of ideas in separate
lines of development - Get out of jail FREE card
4Quick example of the problem
2
1
3
4
Conflict (
5Solutions?
- Just download the files first!
- Never happens
- Keep backup folders (2009-04-24_site-version-1)?
- Quickly gets messy
- Doesnt allow for small experiments
- Hard to synchronise
- Only allow one person to work on the files?
- Not practical
6Version Control!
- Individual
- Keep a log of all changes you have made
- Tag specific points in history (think
releases) - Branch the trunk to experiment with ideas
- Easily revert to any point in time
- Synchronise between different machines
- Team
- As individual plus
- Allow multiple developers to work on the same
project - See where conflicts arise and easily rectify them
- Never overwrite anybody elses code!
- Blame the people who break things ?
Thanks to http//www.slideshare.net/phpcodemonkey
/introduction-to-version-control-presentation
7Example using Bazaar
8(No Transcript)
9(No Transcript)
10(No Transcript)
11(No Transcript)
12- Using Olive branch manager to view the
difference since last commit comes with bzr
package on Ubuntu
13History viewer
14Other important features
- Branching the project
- Allows us to work on an experimental set of
features whilst not disrupting the main line,
or trunk of development. - Collaboration
- Multiple developers working on the same project,
or branches - Release control
- A working version can be tagged and released to
production. If theres a problem, we can quickly
rollback to the previous version or tag.
15Types of Version Control software
- Subversion (SVN)
- Been around since 2000 as a competitor to CVS.
- Centralised and needs a server to work properly
- Widely supported by many applications and
companies - Widely used GUI (TortoiseSVN)
- Bazaar (Bzr)
- Developed by Canonical (Ubuntu developers)
- Decentralised
- Works on Windows, Linux and Mac
- GUI available for Linux Windows
16- Git
- Very similar to Bazaar
- Used by developers of Linux kernel, Perl, GNOME,
Samba, VLC, Ruby on Rails - No native Windows build
- I will probably be moving to Git full-time
17Centralised
Source http//betterexplained.com/articles/intro-
to-distributed-version-control-illustrated/
18Distributed
Source http//betterexplained.com/articles/intro-
to-distributed-version-control-illustrated/
19Not just for code!
20Version Control for designers!
- Visual diff uses external tool, BeyondCompare
- Same tool is also very useful for 3-way merging
- http//www.scootersoftware.com/shop.php
- Use code bamboojuice for 20 discount
- (Has helped save my life)
21Resources
- Slides based on a presentation by my good friend
Mark Sailes - http//www.svn-checkout.co.uk
- Reading
- http//en.wikipedia.org/wiki/Version_control
- http//betterexplained.com/articles/a-visual-guide
-to-version-control/ - http//betterexplained.com/articles/intro-to-distr
ibuted-version-control-illustrated/ - Software
- http//subversion.tigris.org/
- http//git-scm.com/
- http//bazaar-vcs.org/
22Thank you!
- Craig.Mason_at_StasisMedia.com
- http//www.StasisMedia.com