• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Why you should be using a distributed version control system
 

Why you should be using a distributed version control system

on

  • 3,273 views

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.

Statistics

Views

Total Views
3,273
Views on SlideShare
3,247
Embed Views
26

Actions

Likes
4
Downloads
35
Comments
1

3 Embeds 26

http://codebits.eu 16
http://www.slideshare.net 8
https://codebits.eu 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Why you should be using a distributed version control system Why you should be using a distributed version control system Presentation Transcript

    • 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
    • Agenda ● Disadvantages of the central approach ● DVCS Concepts and Advantages ● Overview: Bazaar, git, Mercurial
    • $ whoami 1998 2002 2008 2010?
    • Disadvantages of the centralized approach (e.g. Subversion and CVS)
    • Most operations require communication with the central repository
    • Checkpointing your work requires committing to the central repository
    • Branching and merging considered painful
    • Collaboration is hampered
    • DVCS: Concepts and Advantages
    • There is no central instance (Well, duh!)
    • Disconnected operations
    • Local commits
    • Easy branching and merging
    • Multi-protocol support
    • Sample workflows
    • Solo Workflow ● Create project ● Commit changes Hack ● Review/browse history ● Tag/publish release ● Apply new changes ● Rinse & Repeat
    • Pair programming Create repository HackCommit Hack Commit Branch Push, pull, merge Pull and merge Developer A Developer B
    • Code deployment Commit Upstream Live site project Hack Merge Branch Push Developer
    • Central Branch & Gatekeeper Developer A Developer B Branch, Merge, Edit, Commit, Pull Push Edit, Commit, Push Merge, Review Push Central repository Gatekeeper
    • Overview: Bazaar, git, Mercurial
    • 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
    • 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
    • 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
    • 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
    • Q&A Questions, Comments?
    • Thank you! Lenz Grimmer <lenz@grimmer.com>