codebitsdvcs20090913-1260184885-phpapp02
TRANSCRIPT
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
1/26
Why you should be using aWhy you should be using adistributed version control systemdistributed version control system
(DVCS) for your project(DVCS) for your project
Lenz Grimmer http://lenzg.net/ | Twitter:| Twitter: @lenzgr
2009-12-032009-12-03
SAPO Codebits | Lisbon | PortugalSAPO Codebits | Lisbon | Portugal
mailto:[email protected]://lenzg.net/http://twitter.com/lenzgrhttp://twitter.com/lenzgrhttp://lenzg.net/mailto:[email protected] -
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
2/26
Agenda
Disadvantages of the centralapproach
DVCS Concepts and Advantages
Overview: Bazaar, git, Mercurial
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
3/26
$ whoami
1998 2002
2010?2008
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
4/26
Disadvantages of the centralized
approach(e.g. Subversion and CVS)
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
5/26
Most operations require
communication with the centralrepository
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
6/26
Checkpointing your work
requires committing to thecentral repository
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
7/26
Branching and merging
considered painful
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
8/26
Collaboration is hampered
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
9/26
DVCS: Concepts and
Advantages
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
10/26
There is no central instance
(Well, duh!)
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
11/26
Disconnected operations
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
12/26
Local commits
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
13/26
Easy branching and merging
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
14/26
Multi-protocol support
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
15/26
Sample workflows
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
16/26
Solo Workflow
Create project Commit changes
Review/browse
history Tag/publish release
Apply new changes
Rinse & Repeat
Hack
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
17/26
Pair programming
Create repository
Branch
HackHackCommit
Pull and merge
Commit
Developer A Developer B
Push, pull, merge
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
18/26
Code deployment
Upstream
projectLive site
Developer
Branch
Hack
Commit
MergePush
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
19/26
Central Branch & Gatekeeper
Central repository Gatekeeper
Developer A Developer B
Branch, Merge,
PullEdit, Commit,
Push
Merge, ReviewPush
Edit, Commit,
Push
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
20/26
Overview: Bazaar, git, Mercurial
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
21/26
Comparison aspects
Usability differences Project hosting sites
OS support
3rd party tools (e.g. IDE integration, GUIs)
Plugins/Extensibility
Speed
Reference projects
Handling of branches and merges
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
22/26
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
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
23/26
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
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
24/26
Mercurial
Python Plugins
Platforms: Bitbucket, Google Code, Kenai
Multiple branches per directory (namedbranches)
A pull updates the repo, not the working
copy References: NetBeans, OpenJDK,
OpenOffice, OpenSolaris, Python
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
25/26
Q & A
Questions, Comments?
-
8/3/2019 codebitsdvcs20090913-1260184885-phpapp02
26/26
Thank you!Lenz Grimmer
mailto:[email protected]:[email protected]