DistributedVersion
Control Systems
A Guide For The Perplexed
Thanks For Listening!
Slides: speakerdeck.com/alanstevens
Email/IM: alanstevens@gmail.com
Website: halanstevens.com
Twitter: @alanstevens
Why do
we need
VCS?
WhatVCS
have you
used?
What were the
benefits and
shortcomings of
those systems?
Why was
DVCS
created?
DVCS Options
Git: git-scm.com
Mercurial: mercurial.selenic.com
Bazaar: bazaar-vcs.org
What are the benefits ofVCS?
• Disposable Experimentation
• Each working copy effectively functions as a
remote backup
• Absolute control over the flow of local
changes
• Offline accessibility
• Stays out of the way
• Common operations are very fast
• Easier merge operations
“If I had to pick one word
to summarize the benefits
of DVCS, I’d say that word
is flexibility.”
Jeff Atwood
“you can branch any time
your organizational goals
require it, because merging
back will be a piece of cake.”
Joel Spolsky
It puts the
developer in
control.
What’s the workflow?
Mercurial
1. hg pull
2. {do work}
3. hg addremove
4. hg status
5. hg commit -m “foo”
6. hg pull
7. hg push
8. *repeat*
Git
1. git pull
2. {do work}
3. git add -A
4. git status
5. git commit -m “foo”
6. git pull
7. git push
8. *repeat*
That’s all you
need to know.
Here are two
neat ideas you
don’t need to
know.
Branch and Merge
Rebase!
Command Line vs. GUI
GitExtensions
Tortoise HG
SourceTree
GitHub for Windows
chocolatey.org
Hosting
Resources
hginit.com
think-like-a-git.net
help.github.com
“possibly the biggest
advance in software
development technology
in ... ten years”
Joel Spolsky
Distributed Version Control Systems: A Guide For The Perplexed

Distributed Version Control Systems: A Guide For The Perplexed