Distributed Version Control: A Guide For the Perplexed

Distributed Version Control: A Guide For the Perplexed

In this session you will learn what Distributed Version Control is, the benefits of DVCS, the primary DVCS platforms and their relative benefits and shortcomings. Much of the discussion around version control currently centers around Distributed Version Control Systems (DVCS). More tools, web sites and platforms continue to enable DVCS access and interaction. For many developers and teams, DVCS remains unfamiliar. This session aims to make attendees familiar with DVCS so they can make informed choices and begin deeper investigation of DVCS features and benefits.

Fc6a528fe2b60482971b1642577ae43d?s=128

Alan Stevens

August 29, 2013
Tweet

Transcript

  1. Distributed Version Control Systems A Guide For The Perplexed

  2. Thanks For Listening! Slides: speakerdeck.com/alanstevens Email/IM: alanstevens@gmail.com Website: halanstevens.com Twitter:

    @alanstevens
  3. Why do we need VCS?

  4. What VCS have you used?

  5. What were the benefits and shortcomings of those systems?

  6. Why was DVCS created?

  7. DVCS Options Git: git-scm.com Mercurial: mercurial.selenic.com Bazaar: bazaar-vcs.org

  8. 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
  9. “If I had to pick one word to summarize the

    benefits of DVCS, I’d say that word is flexibility.” Jeff Atwood
  10. “you can branch any time your organizational goals require it,

    because merging back will be a piece of cake.” Joel Spolsky
  11. It puts the developer in control.

  12. What’s the workflow?

  13. 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*
  14. That’s all you need to know.

  15. Here are two neat ideas you don’t need to know.

  16. Branch and Merge

  17. Rebase!

  18. Command Line vs. GUI

  19. GitExtensions

  20. Tortoise HG

  21. SourceTree

  22. GitHub for Windows

  23. chocolatey.org

  24. Hosting

  25. None
  26. None
  27. Resources hginit.com think-like-a-git.net help.github.com

  28. “possibly the biggest advance in software development technology in ...

    ten years” Joel Spolsky
  29. None