YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: Distributed Version Control Systems: A Guide For The Perplexed

Distributed Version Control Systems

A Guide For The Perplexed

Page 2: Distributed Version Control Systems: A Guide For The Perplexed

Thanks For Listening!Slides: speakerdeck.com/alanstevens

Email/IM: [email protected]

Website: halanstevens.com

Twitter: @alanstevens

Page 3: Distributed Version Control Systems: A Guide For The Perplexed

Why do we need

VCS?

Page 4: Distributed Version Control Systems: A Guide For The Perplexed

What VCS have you

used?

Page 5: Distributed Version Control Systems: A Guide For The Perplexed

What were the benefits and

shortcomings of those systems?

Page 6: Distributed Version Control Systems: A Guide For The Perplexed

Why was DVCS

created?

Page 7: Distributed Version Control Systems: A Guide For The Perplexed

DVCS OptionsGit: git-scm.com

Mercurial: mercurial.selenic.com

Bazaar: bazaar-vcs.org

Page 8: Distributed Version Control Systems: A Guide For The Perplexed

What are the benefits of VCS?• 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

Page 9: Distributed Version Control Systems: A Guide For The Perplexed

“If I had to pick one word to summarize the benefits of DVCS, I’d say that word is flexibility.”

Jeff Atwood

Page 10: Distributed Version Control Systems: A Guide For The Perplexed

“you can branch any time your organizational goals require it, because merging back will be a piece of cake.”

Joel Spolsky

Page 11: Distributed Version Control Systems: A Guide For The Perplexed

It puts the developer in

control.

Page 12: Distributed Version Control Systems: A Guide For The Perplexed

What’s the workflow?

Page 13: Distributed Version Control Systems: A Guide For The Perplexed

Mercurial1. hg pull

2. {do work}

3. hg addremove

4. hg status

5. hg commit -m “foo”

6. hg pull

7. hg push

8. *repeat*

Git1. 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*

Page 14: Distributed Version Control Systems: A Guide For The Perplexed

That’s all you need to know.

Page 15: Distributed Version Control Systems: A Guide For The Perplexed

Here are two neat ideas you don’t need to

know.

Page 16: Distributed Version Control Systems: A Guide For The Perplexed

Branch and Merge

Page 17: Distributed Version Control Systems: A Guide For The Perplexed

Rebase!

Page 18: Distributed Version Control Systems: A Guide For The Perplexed

Command Line vs. GUI

Page 19: Distributed Version Control Systems: A Guide For The Perplexed

GitExtensions

Page 20: Distributed Version Control Systems: A Guide For The Perplexed

Tortoise HG

Page 21: Distributed Version Control Systems: A Guide For The Perplexed

SourceTree

Page 22: Distributed Version Control Systems: A Guide For The Perplexed

GitHub for Windows

Page 23: Distributed Version Control Systems: A Guide For The Perplexed

chocolatey.org

Page 24: Distributed Version Control Systems: A Guide For The Perplexed

Hosting

Page 25: Distributed Version Control Systems: A Guide For The Perplexed
Page 26: Distributed Version Control Systems: A Guide For The Perplexed
Page 27: Distributed Version Control Systems: A Guide For The Perplexed

Resources

hginit.comthink-like-a-git.nethelp.github.com

Page 28: Distributed Version Control Systems: A Guide For The Perplexed

“possibly the biggest advance in software development technology in ... ten years”

Joel Spolsky

Page 29: Distributed Version Control Systems: A Guide For The Perplexed

Related Documents