Your SlideShare is downloading. ×
Why you should be using a distributed version control system
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Why you should be using a distributed version control system

2,011
views

Published on

Slides of my talk "Why you should be using a distributed version control system (DVCS) for your project", first presented at SAPO CodeBits in Lisbon, Portugal on 2009-12-03.

Slides of my talk "Why you should be using a distributed version control system (DVCS) for your project", first presented at SAPO CodeBits in Lisbon, Portugal on 2009-12-03.

Published in: Technology

1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total Views
2,011
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
36
Comments
1
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Why you should be using a distributed version control system (DVCS) for your project Lenz Grimmer <lenz@grimmer.com> < http://lenzg.net/ | Twitter: @lenzgr 2009-12-03 SAPO Codebits | Lisbon | Portugal
  • 2. Agenda ● Disadvantages of the central approach ● DVCS Concepts and Advantages ● Overview: Bazaar, git, Mercurial
  • 3. $ whoami 1998 2002 2008 2010?
  • 4. Disadvantages of the centralized approach (e.g. Subversion and CVS)
  • 5. Most operations require communication with the central repository
  • 6. Checkpointing your work requires committing to the central repository
  • 7. Branching and merging considered painful
  • 8. Collaboration is hampered
  • 9. DVCS: Concepts and Advantages
  • 10. There is no central instance (Well, duh!)
  • 11. Disconnected operations
  • 12. Local commits
  • 13. Easy branching and merging
  • 14. Multi-protocol support
  • 15. Sample workflows
  • 16. Solo Workflow ● Create project ● Commit changes Hack ● Review/browse history ● Tag/publish release ● Apply new changes ● Rinse & Repeat
  • 17. Pair programming Create repository HackCommit Hack Commit Branch Push, pull, merge Pull and merge Developer A Developer B
  • 18. Code deployment Commit Upstream Live site project Hack Merge Branch Push Developer
  • 19. Central Branch & Gatekeeper Developer A Developer B Branch, Merge, Edit, Commit, Pull Push Edit, Commit, Push Merge, Review Push Central repository Gatekeeper
  • 20. Overview: Bazaar, git, Mercurial
  • 21. Comparison aspects ● Usability differences ● Project hosting sites ● OS support rd ● 3 party tools (e.g. IDE integration, GUIs) ● Plugins/Extensibility ● Speed ● Reference projects ● Handling of branches and merges
  • 22. Bazaar ● Python ● Sponsored by Canonical ● Hosting Platforms: Launchpad | Sourceforge ● Many plugins ● One branch per directory – simplifies the UI ● IDE/GUI support ● Strong OS support (incl. Windows) ● References: Debian apt, awn, Gnash, MySQL, Ubuntu
  • 23. git ● C | Perl | Shell ● Originated from the Linux Kernel Community ● Speed first, usability later ● Powerful, but steeper learning curve ● Multiple branches per directory ● Platforms: Kenai, github, gitorious, SourceForge ● References: Linux Kernel, Ruby on Rails, jQuery
  • 24. Mercurial ● Python ● Plugins ● Platforms: Bitbucket, Google Code, Kenai ● Multiple branches per directory (named branches) ● A „pull“ updates the repo, not the working copy ● References: NetBeans, OpenJDK, OpenOffice, OpenSolaris, Python
  • 25. Q&A Questions, Comments?
  • 26. Thank you! Lenz Grimmer <lenz@grimmer.com>

×