SlideShare a Scribd company logo
Evolution of Version
                    Control in Open Source
                     Lessons learned along the path to distributed version control


Chris Aniszczyk (Red Hat)
Principal Software Engineer
zx@redhat.com
http://aniszczyk.org
About Me
I've been using and hacking open source for ~12 years
   - contribute{d} to Gentoo Linux, Fedora Linux, Eclipse

Eclipse Board of Directors, Committer Representative

Member in the Eclipse {Architecture,Planning} Council

I like to run! (just finished Chicago marathon in 3:20)

Co-author of RCP Book (www.eclipsercp.org)




       Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Agenda
            History of Version Control (VCS)
            The Rise of Distributed Version Control (DVCS)
            Lessons Learned at Eclipse moving to a DVCS
            Conclusion
            Q&A




Picture 5




                 Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Version Control
 Version Control Systems manage change




               “The only constant is change” (Heraclitus)



       Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Why Version Control?
 VCS became essential to software development because:

 They allow teams to collaborate
 They manage change and allow for inspection
 They track ownership
 They track evolution of changes
 They allow for branching
 They allow for continuous integration




       Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Version Control: The Ancients
 1972 – Source Code Control System (SCCS)
   Born out of Bell Labs, based on interleaved deltas
   No open source implementations as far as I know

 1982 – Revision Control System (RCS)
   Released as an alternative to SCCS
   Operates on single files
   Open source implementation hosted at GNU




        Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Version Control: The Centralized
 One centralized server with the revision information

 Clients checkout a working copy locally

 Most operations happen on the server

 Linear revision history




        Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Version Control: The Centralized
 1990 – Concurrent Versions System (CVS)
   Initially released as some scripts on top of RCS
   Made branching possible for most people
   Revisions by commits are per file :(
   No atomic commit :(
   Not really maintained anymore...

 2000 – Subversion (SVN)
   Released as an improvement to CVS
   Atomic commits via transactions
   Open source implementation hosted at Apache




        Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
“Hey, get back to work!”
             … “My code's merging” - remember those days you
             spent merging in changes in CVS/SVN?




Picture 5




                  Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Version Control: The Distributed
 Every client has a copy of the full repository locally

 All repository operations are local (except sharing)

 Intelligent network operations when sharing content

 A very non linear revision history

 Large online communities to share changes




        Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Version Control: The Distributed
 2001 – GNU arch
   First open source DVCS
   Deprecated; not maintained anymore

 --- In 2005, Bitkeeper was no longer open source ---

 2005 – Git
   Created as the SCM for the Linux kernel by Linus

 2005 – Mercurial (Hg)
   Cross-platform DVCS

 2007 – Bazaar (BZR)
   Sponsored by Canonical
       Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Agenda
            History of Version Control (VCS)
            The Rise of Distributed Version Control (DVCS)
             - How does a DVCS work?
             - The benefits of a DVCS
            Lessons Learned at Eclipse moving to a DVCS
            Conclusion
            Q&A




Picture 5




                 Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
How does it work?
 A DVCS generally operates at the level of a changeset

 Logically, a repository is made up from an initial empty
 state, followed by many changesets

 Changesets are identified by a SHA-1 hash value

 e.g., 0878a8189e6a3ae1ded86d9e9c7cbe3f




       Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
It's all about the changesets

  Changesets contain pointers to the previous changeset

  previous: 48b2179994d494485b79504e8b5a6b23ce24a026
  --- a/README.txt
  +++ b/README.txt
  @@ -1 +1 @@
  -SVN is great
  +Git is great

  previous: 6ff60e964245816221414736d7e5fe6972246ead
  --- a/README.txt
  +++ b/README.txt
  @@ -1 +1 @@
  -Git is great
  +SVN is great



       Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Branches
The current version of your repository is simply a pointer
to the end of the tree

The default "trunk" in Git is called "master"

The tip of the current branch is called "HEAD"

Any branch can be referred to by its hash id

Creating branches in a DVCS is fast, you simply point to
a different element in the tree on disk already




       Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Merging
DVCS are all about merging

Merges are just the weaving together of two (or more)
local branches into one

However, unlike CVCS, you don't have to specify
anything about where you're merging from and to; the
trees automatically know what their split point was in the
past, and can work it out from there.

Merging is much easier in a DVCS like Git




      Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Pulling and Pushing
 We've not talked about the distributed nature of DVCS

 Changes flow between repositories by push and pull

 Since a DVCS tree is merely a pointer to a branch...

 There's three cases to consider for comparing two trees:
  • Your tip is an ancestor of my tip
  • My tip is an ancestor of your tip
  • Neither of our tips are direct ancestors; however, we
    both share a common ancestor




       Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Cloning and Remotes (git)
 git clone git://egit.eclipse.org/egit.git

 Where you can push or pull to is configured on a per
 (local) repository basis

 git remote add github http://github.com/zx/myegit.git

 origin is the default remote; you can have many remotes




       Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Software Trends and Revolution
 Most major open source projects use some form of DVCS

 Git, Hg, Bazaar

 Linux
 MySQL
 OpenJDK
 Android
 JQuery
 Gnome
 Fedora
 Bugzilla and so on...

 But why?
        Using Git in Eclipse | © 2010 by C. Aniszczyk and M. Sohn
Benefits of Distributed Version Control
 Can collaborate without a central authority

 Disconnected operations

 Easy branching and merging

 Define your own workflow

 Powerful community sharing tools

 Easier path to contributor to committer




       Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Collaboration
 Developers can easily collaborate directly without
 needing a central authority or dealing with server
 administration costs




       Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Disconnected operations rule!
 Developers can still be productive and not worry
 about a central server going down... remember the
 days of complaining that CVS was down and you
 couldn't work?

 Also, there's a lighter server
 load for administrators!




       Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Branches everywhere
Creating and destroying branches are simple
operations so it's easy to experiment
with new ideas

Very easy to isolate changes




      Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Define your own workflow
 Define your own workflow to meet your team needs.
 Different workflows can be adopted as your team
 grows without changing VCS toolsets!




       Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
DVCS and Building Community
Developers can easily discover and fork projects. On
top of that, it's simple for developers to share their
changes

“Distributed version control is all about empowering
your community, and the people who might join your
community” - Mark Shuttleworth




      Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Agenda
            History of Version Control (VCS)
            The Rise of Distributed Version Control (DVCS)
            Lessons Learned at Eclipse moving to a DVCS
             - Version control at Eclipse
             - Code review at Eclipse
             - Challenges in moving to a DVCS
            Conclusion
            Q&A



Picture 5




                 Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Version Control at Eclipse
 Eclipse defined a roadmap to move to Git in 2009
 CVS is deprecated; SVN will be deprecated in the future

 EGit is an Eclipse Team provider for Git
    http://www.eclipse.org/egit/

 JGit is a lightweight Java library implementing Git
    http://www.eclipse.org/jgit/

 The goal is to build an Eclipse community around Git

 So why did Eclipse.org choose Git?


        Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
#1: Git-related projects at Eclipse.org
             … both the core Git library (JGit) and tooling (EGit)
             are actively developed at Eclipse.org by a diverse set
             of committers and contributors with a common goal




Picture 5




                   Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
History of JGit and EGit
2005   Linus Torvalds starts Git

2006   Shawn Pearce starts JGit

2009   Eclipse decides roadmap for Git migration
       JGit/EGit move to eclipse.org
       SAP joins JGit/EGit

3/2010 Released 0.7 (first release at Eclipse)
       Diff/Merge Algorithms, Automatic IP Logs

6/2010 Released 0.8 (Helios)
       Usability Improvements, Git Repositories View, Tagging

9/2010 Released 0.9 (Helios SR1)
       Merge, Synchronize View, .gitignore

Planned: 12/2010 0.10 (Helios SR2)                              3/2011 0.11         6/2011 1.0 (Indigo)



          Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
#2: Git is fast
             … Git is fast and scales well




Picture 5
                                                                                             *whyisgitbetterthanx.com

                   Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
#3: Git is mature and popular
             … Git is widely used and is the most popular
             distributed version control system




Picture 5




                   Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
#4: Git community tools
             … the Eclipse community is interested in taking
             advantage of such Git tools like Gerrit Code Review
             (used by the Android community) and GitHub




Picture 5




                   Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Roles at Eclipse and Code Review
Committer
   Formally elected
   Can commit own changes without review

Contributor
    Small changes
          reviewed by committers
    Bigger changes
          also formal IP review by legal team
          in separate protected Bugzilla (IPZilla)

Review Tool
    patches attached to bug in Bugzilla
    comments in Bugzilla
       Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Code Review via Bugzilla




     Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Eclipse – Review Process
Contributors
  • create patch using CVS, SVN, Git (since 2009)
  • attach patch to bug in Bugzilla


Committers
  • do code and IP review
  • comment, vote in Bugzilla
  • create CQ for changes needing IP review
  • commit accepted changes


IP Team
   • does IP review bigger changes from contributors



       Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Eclipse – Review Process
Review not done for all changes

Each Eclipse.org project does it differently

Review tedious for contributors
(and also for committers mentoring contributors)




       Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Gerrit Code Review

 Gerrit is a Code Review system based on JGit
   http://code.google.com/p/gerrit/

    Also serves as a git server
    adding access control and workflow

    Used by
      • Android        https://review.source.android.com/
      • JGit, EGit     http://egit.eclipse.org/r/
      • Google, SAP, …


    Eclipse wants to use it …


        Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
History: Google and code review tools
 Mondrian (Guido van Rossum)
   •   based on Perforce, Google infrastructure
   •   Google proprietary

 Rietvield (Guido van Rossum)
   •   based on Subversion
   •   Open Source hosted on GoogleApp Engine

 Gerrit (Shawn Pearce)
   •   started as a fork of Rietvield
   •   based on JGit and GWT
   •   Open Source (Android)
   •   Apache 2 license



        Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
One Branch One Feature
 Master	
  branch	
  contains	
  only	
  reviewed	
  and	
  approved	
  changes
      • master	
  moves	
  from	
  good	
  to	
  be7er	
  state	
  a)er	
  each	
  
            (approved)	
  change

 Each	
  feature	
  branch	
  is	
  based	
  on	
  master	
  branch
          • stable	
  star6ng	
  point

 A	
  change	
  can	
  really	
  be	
  abandoned	
  because
          • no	
  other	
  approved	
  change	
  can	
  depend	
  on	
  a	
  not	
  yet	
  
            approved	
  change
          • Gerrit	
  will	
  automa6cally	
  reject	
  a	
  successor	
  change	
  of	
  an	
  
            abandoned	
  change




            Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Gerrit – Lifecycle of a Change
                          •
                            create local topic
 topic
                          branch
           master
                          •
                            commit change
  1                       •
                            push it for review
              a           •
                            do review
                          •
                            automated
                          verification




         Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Gerrit – Lifecycle of a Change
                               •
                                 create local topic
 topic                         branch
           master
                               •
                                 commit change
                               •
                                 push it for review
   1                           •
                                 do review
                               •
                                 automated
              a
                               verification



 topic      master


                c
                          •
                            refine based on
  3                       review
                          •
                            push new patchsets
                b
  2                       until review votes ok

  1             a



         Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Gerrit – Lifecycle of a Change
                            •
                              create local topic                                               master
 topic                      branch
           master           •
                              commit change
                            •
                              push it for review                                                 d
                                                                                       topic
   1                        •
                              do review
              a
                            •
                              automated
                            verification                                                         c
                                                                                        3

                                                                                                 b
 topic      master                                                                      2


                c
                                •
                                  refine based on                                                a
                                                                                        1
  3                             review
                                •
                                  push new patchsets
                b               until review votes ok
  2
                                                                                   •
                                                                                     Submit may lead to
                                                                                   server-side merge
  1             a                                                                  •
                                                                                     or merge / rebase before
                                                                                   push
         Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Gerrit Workflow




      Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Gerrit




     Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk   http://egit.eclipse.org/r/ - change,825
Eclipse.org: Challenges moving to a DVCS
            Convincing management and peers was tough
              - At first, everyone is resistant to change

            The learning curve of DVCS systems is high
              - Initially, the Eclipse tooling was “alpha”
              - People refuse to drop to the CLI

            Legacy is a pain in the ass!
              - 200+ projects at Eclipse used CVS/SVN
              - The existing VCS tooling was high quality

Picture 5




                  Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
No free lunch!
            … trust me, the only way to learn DVCS is to start using
            it... there is a learning curve, you need to rewire your
            brain!




Picture 5




                    Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Git Resources
 http://git-scm.com/documentation is your friend

 Watch Linus' talk at Google
 http://www.youtube.com/watch?v=4XpnKHJAok8

 Read the Pro Git book - http://progit.org/book/




        Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Agenda
            History of Version Control (VCS)
            The Rise of Distributed Version Control (DVCS)
            Lessons Learned at Eclipse moving to a DVCS
            Conclusion
            Q&A




Picture 5




                 Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Conclusion
The future of version control is distributed!

Moving to a DVCS takes time

Gerrit enables a nice code review workflow

Open source has embraced the way of DVCS




       Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
Q&A




Picture 5




                  Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk

More Related Content

What's hot

My Journey to Becoming a Docker Captain
My Journey to Becoming a Docker CaptainMy Journey to Becoming a Docker Captain
My Journey to Becoming a Docker Captain
Ajeet Singh Raina
 
Marco bizzantino Microsoft-Docker Meetup #4 Docker bday intro
Marco bizzantino Microsoft-Docker Meetup #4 Docker bday introMarco bizzantino Microsoft-Docker Meetup #4 Docker bday intro
Marco bizzantino Microsoft-Docker Meetup #4 Docker bday intro
Kiratech
 
A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...
A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...
A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...
Docker, Inc.
 
Introduction to Subversion
Introduction to SubversionIntroduction to Subversion
Introduction to Subversion
Atul Jha
 
Meetup Devops-Geneva-19.10.2019
Meetup Devops-Geneva-19.10.2019Meetup Devops-Geneva-19.10.2019
Meetup Devops-Geneva-19.10.2019
Hidora
 
Container Migration Tool
Container Migration Tool Container Migration Tool
Container Migration Tool
Docker, Inc.
 
Version Control with SVN
Version Control with SVNVersion Control with SVN
Version Control with SVN
PHPBelgium
 
Alles Docker oder Was ?
Alles Docker oder Was ?Alles Docker oder Was ?
Alles Docker oder Was ?
Anatole Tresch
 
What's New in Docker
What's New in DockerWhat's New in Docker
What's New in Docker
Docker, Inc.
 
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logicielsDocker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Patrick Chanezon
 
Microsoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and MicrosoftMicrosoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and Microsoft
Patrick Chanezon
 
Using Open Source and Open Standards in the Platform game
Using Open Source and Open Standards in the Platform gameUsing Open Source and Open Standards in the Platform game
Using Open Source and Open Standards in the Platform game
Patrick Chanezon
 
Simply your Jenkins Projects with Docker Multi-Stage Builds
Simply your Jenkins Projects with Docker Multi-Stage BuildsSimply your Jenkins Projects with Docker Multi-Stage Builds
Simply your Jenkins Projects with Docker Multi-Stage Builds
Eric Smalling
 
Ben keynote 5
Ben keynote 5Ben keynote 5
Ben keynote 5
Ben Golub
 
Dockercon 2018 Announcement
Dockercon 2018 AnnouncementDockercon 2018 Announcement
Dockercon 2018 Announcement
Ajeet Singh Raina
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
Patrick Chanezon
 
Thinking inside the box (shared)
Thinking inside the box (shared)Thinking inside the box (shared)
Thinking inside the box (shared)
Joe Brockmeier
 
Getting Started With Subversion
Getting Started With SubversionGetting Started With Subversion
Getting Started With Subversion
Jordan Hatch
 
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer DemandPaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
Cisco IT
 
Building Reusable Development Environments with Docker
Building Reusable Development Environments with DockerBuilding Reusable Development Environments with Docker
Building Reusable Development Environments with Docker
Revelation Technologies
 

What's hot (20)

My Journey to Becoming a Docker Captain
My Journey to Becoming a Docker CaptainMy Journey to Becoming a Docker Captain
My Journey to Becoming a Docker Captain
 
Marco bizzantino Microsoft-Docker Meetup #4 Docker bday intro
Marco bizzantino Microsoft-Docker Meetup #4 Docker bday introMarco bizzantino Microsoft-Docker Meetup #4 Docker bday intro
Marco bizzantino Microsoft-Docker Meetup #4 Docker bday intro
 
A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...
A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...
A Story of Cultural Change: PayPal's 2 Year Journey to 150,000 Containers wit...
 
Introduction to Subversion
Introduction to SubversionIntroduction to Subversion
Introduction to Subversion
 
Meetup Devops-Geneva-19.10.2019
Meetup Devops-Geneva-19.10.2019Meetup Devops-Geneva-19.10.2019
Meetup Devops-Geneva-19.10.2019
 
Container Migration Tool
Container Migration Tool Container Migration Tool
Container Migration Tool
 
Version Control with SVN
Version Control with SVNVersion Control with SVN
Version Control with SVN
 
Alles Docker oder Was ?
Alles Docker oder Was ?Alles Docker oder Was ?
Alles Docker oder Was ?
 
What's New in Docker
What's New in DockerWhat's New in Docker
What's New in Docker
 
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logicielsDocker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
Docker Cap Gemini CloudXperience 2017 - la revolution des conteneurs logiciels
 
Microsoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and MicrosoftMicrosoft Techsummit Zurich Docker and Microsoft
Microsoft Techsummit Zurich Docker and Microsoft
 
Using Open Source and Open Standards in the Platform game
Using Open Source and Open Standards in the Platform gameUsing Open Source and Open Standards in the Platform game
Using Open Source and Open Standards in the Platform game
 
Simply your Jenkins Projects with Docker Multi-Stage Builds
Simply your Jenkins Projects with Docker Multi-Stage BuildsSimply your Jenkins Projects with Docker Multi-Stage Builds
Simply your Jenkins Projects with Docker Multi-Stage Builds
 
Ben keynote 5
Ben keynote 5Ben keynote 5
Ben keynote 5
 
Dockercon 2018 Announcement
Dockercon 2018 AnnouncementDockercon 2018 Announcement
Dockercon 2018 Announcement
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
 
Thinking inside the box (shared)
Thinking inside the box (shared)Thinking inside the box (shared)
Thinking inside the box (shared)
 
Getting Started With Subversion
Getting Started With SubversionGetting Started With Subversion
Getting Started With Subversion
 
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer DemandPaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
 
Building Reusable Development Environments with Docker
Building Reusable Development Environments with DockerBuilding Reusable Development Environments with Docker
Building Reusable Development Environments with Docker
 

Viewers also liked

搜索引擎原理略览
搜索引擎原理略览搜索引擎原理略览
搜索引擎原理略览
pluschen
 
2009 - Glass Fish Project
2009 - Glass Fish Project2009 - Glass Fish Project
Rpt Year 6 KBSR
Rpt Year 6 KBSRRpt Year 6 KBSR
Rpt Year 6 KBSR
Amy Lau
 
Encuesta musica manu&caro
Encuesta musica manu&caroEncuesta musica manu&caro
Encuesta musica manu&caroManuela
 
Weight presentation
Weight presentationWeight presentation
Weight presentationZhou Yu
 
Qualipso Official 2009
Qualipso Official 2009Qualipso Official 2009
Master template5
Master template5Master template5
Master template5Theogus
 
Celik alquran Part 1
Celik alquran Part 1Celik alquran Part 1
Celik alquran Part 1mimi
 
Shawn.trela ppt
Shawn.trela pptShawn.trela ppt
Shawn.trela ppttrela
 
Comprehensive capacity
Comprehensive capacityComprehensive capacity
Comprehensive capacityJet Wang
 
Raicesdeecuaciones
RaicesdeecuacionesRaicesdeecuaciones
Raicesdeecuacionesuis
 
A Portrait of the Artist as a Young Gem Author
A Portrait of the Artist as a Young Gem AuthorA Portrait of the Artist as a Young Gem Author
A Portrait of the Artist as a Young Gem Author
Matt Yoho
 
How recruiters find you online october 2009
How recruiters find you online october 2009How recruiters find you online october 2009
How recruiters find you online october 2009
TorontoJobs.ca
 
Hy solution사례(2)즉시연금고객제안사례
Hy solution사례(2)즉시연금고객제안사례Hy solution사례(2)즉시연금고객제안사례
Hy solution사례(2)즉시연금고객제안사례
valuasset
 
Empowering Communities for Games - IDEA 7-9-2010 (Games Convention Online)
Empowering Communities for Games - IDEA 7-9-2010 (Games Convention Online)Empowering Communities for Games - IDEA 7-9-2010 (Games Convention Online)
Empowering Communities for Games - IDEA 7-9-2010 (Games Convention Online)
International Digital Entertainment Agency (IDEA)
 
Emmanuel Ngabirano
Emmanuel NgabiranoEmmanuel Ngabirano
Emmanuel Ngabirano
Infectious Diseases Institute
 
Univesidad tecnica particular de loja
Univesidad tecnica particular de lojaUnivesidad tecnica particular de loja
Univesidad tecnica particular de loja
Andrea
 
Tersengat Memo Rahasia Panetta
Tersengat Memo Rahasia PanettaTersengat Memo Rahasia Panetta
Tersengat Memo Rahasia Panetta
Federation of Independent Media Workers Union
 
Net app
Net appNet app
Net app
LeoSoft
 
Exwel trust slides with music
Exwel trust slides with musicExwel trust slides with music
Exwel trust slides with music
Exwel Trust
 

Viewers also liked (20)

搜索引擎原理略览
搜索引擎原理略览搜索引擎原理略览
搜索引擎原理略览
 
2009 - Glass Fish Project
2009 - Glass Fish Project2009 - Glass Fish Project
2009 - Glass Fish Project
 
Rpt Year 6 KBSR
Rpt Year 6 KBSRRpt Year 6 KBSR
Rpt Year 6 KBSR
 
Encuesta musica manu&caro
Encuesta musica manu&caroEncuesta musica manu&caro
Encuesta musica manu&caro
 
Weight presentation
Weight presentationWeight presentation
Weight presentation
 
Qualipso Official 2009
Qualipso Official 2009Qualipso Official 2009
Qualipso Official 2009
 
Master template5
Master template5Master template5
Master template5
 
Celik alquran Part 1
Celik alquran Part 1Celik alquran Part 1
Celik alquran Part 1
 
Shawn.trela ppt
Shawn.trela pptShawn.trela ppt
Shawn.trela ppt
 
Comprehensive capacity
Comprehensive capacityComprehensive capacity
Comprehensive capacity
 
Raicesdeecuaciones
RaicesdeecuacionesRaicesdeecuaciones
Raicesdeecuaciones
 
A Portrait of the Artist as a Young Gem Author
A Portrait of the Artist as a Young Gem AuthorA Portrait of the Artist as a Young Gem Author
A Portrait of the Artist as a Young Gem Author
 
How recruiters find you online october 2009
How recruiters find you online october 2009How recruiters find you online october 2009
How recruiters find you online october 2009
 
Hy solution사례(2)즉시연금고객제안사례
Hy solution사례(2)즉시연금고객제안사례Hy solution사례(2)즉시연금고객제안사례
Hy solution사례(2)즉시연금고객제안사례
 
Empowering Communities for Games - IDEA 7-9-2010 (Games Convention Online)
Empowering Communities for Games - IDEA 7-9-2010 (Games Convention Online)Empowering Communities for Games - IDEA 7-9-2010 (Games Convention Online)
Empowering Communities for Games - IDEA 7-9-2010 (Games Convention Online)
 
Emmanuel Ngabirano
Emmanuel NgabiranoEmmanuel Ngabirano
Emmanuel Ngabirano
 
Univesidad tecnica particular de loja
Univesidad tecnica particular de lojaUnivesidad tecnica particular de loja
Univesidad tecnica particular de loja
 
Tersengat Memo Rahasia Panetta
Tersengat Memo Rahasia PanettaTersengat Memo Rahasia Panetta
Tersengat Memo Rahasia Panetta
 
Net app
Net appNet app
Net app
 
Exwel trust slides with music
Exwel trust slides with musicExwel trust slides with music
Exwel trust slides with music
 

Similar to Evolution of version control in opensource - fossa2010

Evolution of Version Control In Open Source
Evolution of Version Control In Open SourceEvolution of Version Control In Open Source
Evolution of Version Control In Open Source
Chris Aniszczyk
 
UNIT-I Introduction to CICD.pptx
UNIT-I Introduction to CICD.pptxUNIT-I Introduction to CICD.pptx
UNIT-I Introduction to CICD.pptx
Pandiya Rajan
 
UNIT-I Introduction to CICD.pptx
UNIT-I Introduction to CICD.pptxUNIT-I Introduction to CICD.pptx
UNIT-I Introduction to CICD.pptx
Pandiya Rajan
 
Are VM Passé?
Are VM Passé? Are VM Passé?
Are VM Passé?
dotCloud
 
Version Control
Version ControlVersion Control
Version Control
Kivanc Kanturk
 
SlideDevopsSubjectEng set 8 (CVCS DVCS).pptx
SlideDevopsSubjectEng set 8 (CVCS  DVCS).pptxSlideDevopsSubjectEng set 8 (CVCS  DVCS).pptx
SlideDevopsSubjectEng set 8 (CVCS DVCS).pptx
UTKARSHBHARDWAJ71
 
Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates
Liran Levy
 
EclipseCon 2010 tutorial: Understanding git at Eclipse
EclipseCon 2010 tutorial: Understanding git at EclipseEclipseCon 2010 tutorial: Understanding git at Eclipse
EclipseCon 2010 tutorial: Understanding git at Eclipse
msohn
 
Docker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containersDocker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containers
Dr Ganesh Iyer
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
Marco Ferrigno
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
NaLUG
 
Version Control System - for Agile Software Project Management.
Version Control System - for Agile Software Project Management.Version Control System - for Agile Software Project Management.
Version Control System - for Agile Software Project Management.
Bhavya Chawla
 
Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version ControlWei-Tsung Su
 
Alibaba Cloud Conference 2016 - Docker Open Source
Alibaba Cloud Conference   2016 - Docker Open Source Alibaba Cloud Conference   2016 - Docker Open Source
Alibaba Cloud Conference 2016 - Docker Open Source
John Willis
 
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Amrita Prasad
 
Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and HudsonEffective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Chris Aniszczyk
 
What_is_DevOps.pptx
What_is_DevOps.pptxWhat_is_DevOps.pptx
What_is_DevOps.pptx
mridulsharma774687
 
What_is_DevOps_how_it's_very_useful_in_daily_Life.
What_is_DevOps_how_it's_very_useful_in_daily_Life.What_is_DevOps_how_it's_very_useful_in_daily_Life.
What_is_DevOps_how_it's_very_useful_in_daily_Life.
anilpmuvvala
 

Similar to Evolution of version control in opensource - fossa2010 (20)

Evolution of Version Control In Open Source
Evolution of Version Control In Open SourceEvolution of Version Control In Open Source
Evolution of Version Control In Open Source
 
UNIT-I Introduction to CICD.pptx
UNIT-I Introduction to CICD.pptxUNIT-I Introduction to CICD.pptx
UNIT-I Introduction to CICD.pptx
 
UNIT-I Introduction to CICD.pptx
UNIT-I Introduction to CICD.pptxUNIT-I Introduction to CICD.pptx
UNIT-I Introduction to CICD.pptx
 
Are VMs Passé?
Are VMs Passé?Are VMs Passé?
Are VMs Passé?
 
Are VM Passé?
Are VM Passé? Are VM Passé?
Are VM Passé?
 
Version Control
Version ControlVersion Control
Version Control
 
SlideDevopsSubjectEng set 8 (CVCS DVCS).pptx
SlideDevopsSubjectEng set 8 (CVCS  DVCS).pptxSlideDevopsSubjectEng set 8 (CVCS  DVCS).pptx
SlideDevopsSubjectEng set 8 (CVCS DVCS).pptx
 
Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates
 
EclipseCon 2010 tutorial: Understanding git at Eclipse
EclipseCon 2010 tutorial: Understanding git at EclipseEclipseCon 2010 tutorial: Understanding git at Eclipse
EclipseCon 2010 tutorial: Understanding git at Eclipse
 
Cvs
CvsCvs
Cvs
 
Docker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containersDocker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containers
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
 
Version Control System - for Agile Software Project Management.
Version Control System - for Agile Software Project Management.Version Control System - for Agile Software Project Management.
Version Control System - for Agile Software Project Management.
 
Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version Control
 
Alibaba Cloud Conference 2016 - Docker Open Source
Alibaba Cloud Conference   2016 - Docker Open Source Alibaba Cloud Conference   2016 - Docker Open Source
Alibaba Cloud Conference 2016 - Docker Open Source
 
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
 
Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and HudsonEffective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson
 
What_is_DevOps.pptx
What_is_DevOps.pptxWhat_is_DevOps.pptx
What_is_DevOps.pptx
 
What_is_DevOps_how_it's_very_useful_in_daily_Life.
What_is_DevOps_how_it's_very_useful_in_daily_Life.What_is_DevOps_how_it's_very_useful_in_daily_Life.
What_is_DevOps_how_it's_very_useful_in_daily_Life.
 

More from fOSSa - Free Open Source Software Academia Conference

Les douze commandements du community manager
Les douze commandements du community managerLes douze commandements du community manager
Les douze commandements du community manager
fOSSa - Free Open Source Software Academia Conference
 
Les licences open source simplement ?
Les licences open source simplement ? Les licences open source simplement ?
Les licences open source simplement ?
fOSSa - Free Open Source Software Academia Conference
 
Diffuser les résultats de recherche ?
Diffuser les résultats de recherche ? Diffuser les résultats de recherche ?
Diffuser les résultats de recherche ?
fOSSa - Free Open Source Software Academia Conference
 
- Protection du logiciel - **François Pelligrini**
- Protection du logiciel - **François Pelligrini** - Protection du logiciel - **François Pelligrini**
- Protection du logiciel - **François Pelligrini**
fOSSa - Free Open Source Software Academia Conference
 
La valorisation de logiciels de recherche au sein de l'Inria? / Transfert ma...
La valorisation de logiciels de recherche au sein de l'Inria?  / Transfert ma...La valorisation de logiciels de recherche au sein de l'Inria?  / Transfert ma...
La valorisation de logiciels de recherche au sein de l'Inria? / Transfert ma...
fOSSa - Free Open Source Software Academia Conference
 
#SAIFC késako - Semantic Analysis for Flow Computing
 #SAIFC késako - Semantic Analysis for Flow Computing #SAIFC késako - Semantic Analysis for Flow Computing
#SAIFC késako - Semantic Analysis for Flow Computing
fOSSa - Free Open Source Software Academia Conference
 
OWF2013 INTERNET OF THINGS
OWF2013 INTERNET OF THINGSOWF2013 INTERNET OF THINGS
HP Fossology v5.3
HP Fossology v5.3HP Fossology v5.3
Analyse de la propriete intellectuel
Analyse de la propriete intellectuelAnalyse de la propriete intellectuel
Analyse de la propriete intellectuel
fOSSa - Free Open Source Software Academia Conference
 
From open source labs to ceo methods and advice by sysfera
From open source labs to ceo methods and advice by sysferaFrom open source labs to ceo methods and advice by sysfera
From open source labs to ceo methods and advice by sysfera
fOSSa - Free Open Source Software Academia Conference
 
Management de communaute
Management de communauteManagement de communaute
Methods about Open Source Governance v2.5
Methods about Open Source Governance v2.5Methods about Open Source Governance v2.5
Methods about Open Source Governance v2.5
fOSSa - Free Open Source Software Academia Conference
 

More from fOSSa - Free Open Source Software Academia Conference (20)

Les douze commandements du community manager
Les douze commandements du community managerLes douze commandements du community manager
Les douze commandements du community manager
 
Les licences open source simplement ?
Les licences open source simplement ? Les licences open source simplement ?
Les licences open source simplement ?
 
Diffuser les résultats de recherche ?
Diffuser les résultats de recherche ? Diffuser les résultats de recherche ?
Diffuser les résultats de recherche ?
 
- Protection du logiciel - **François Pelligrini**
- Protection du logiciel - **François Pelligrini** - Protection du logiciel - **François Pelligrini**
- Protection du logiciel - **François Pelligrini**
 
La valorisation de logiciels de recherche au sein de l'Inria? / Transfert ma...
La valorisation de logiciels de recherche au sein de l'Inria?  / Transfert ma...La valorisation de logiciels de recherche au sein de l'Inria?  / Transfert ma...
La valorisation de logiciels de recherche au sein de l'Inria? / Transfert ma...
 
Resultats nuit info 2013
Resultats nuit info 2013Resultats nuit info 2013
Resultats nuit info 2013
 
In trust we trust ! Blablacar by frederic mazzella
In trust we trust ! Blablacar by frederic mazzellaIn trust we trust ! Blablacar by frederic mazzella
In trust we trust ! Blablacar by frederic mazzella
 
Open sourcing of Journalism by James Corbett
Open sourcing of Journalism by James CorbettOpen sourcing of Journalism by James Corbett
Open sourcing of Journalism by James Corbett
 
Open intelligence by tom secker
Open intelligence by tom seckerOpen intelligence by tom secker
Open intelligence by tom secker
 
Eco Nomy Eco Trust Eco Systems - Introduction
Eco Nomy Eco Trust Eco Systems - IntroductionEco Nomy Eco Trust Eco Systems - Introduction
Eco Nomy Eco Trust Eco Systems - Introduction
 
Innovation & Massive data
Innovation & Massive dataInnovation & Massive data
Innovation & Massive data
 
#SAIFC késako - Semantic Analysis for Flow Computing
 #SAIFC késako - Semantic Analysis for Flow Computing #SAIFC késako - Semantic Analysis for Flow Computing
#SAIFC késako - Semantic Analysis for Flow Computing
 
Eco System over code!
Eco System over code!Eco System over code!
Eco System over code!
 
OWF2013 INTERNET OF THINGS
OWF2013 INTERNET OF THINGSOWF2013 INTERNET OF THINGS
OWF2013 INTERNET OF THINGS
 
Afup 10 ans plus tard
Afup 10 ans plus tardAfup 10 ans plus tard
Afup 10 ans plus tard
 
HP Fossology v5.3
HP Fossology v5.3HP Fossology v5.3
HP Fossology v5.3
 
Analyse de la propriete intellectuel
Analyse de la propriete intellectuelAnalyse de la propriete intellectuel
Analyse de la propriete intellectuel
 
From open source labs to ceo methods and advice by sysfera
From open source labs to ceo methods and advice by sysferaFrom open source labs to ceo methods and advice by sysfera
From open source labs to ceo methods and advice by sysfera
 
Management de communaute
Management de communauteManagement de communaute
Management de communaute
 
Methods about Open Source Governance v2.5
Methods about Open Source Governance v2.5Methods about Open Source Governance v2.5
Methods about Open Source Governance v2.5
 

Recently uploaded

Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
UiPathCommunity
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 

Recently uploaded (20)

Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 

Evolution of version control in opensource - fossa2010

  • 1. Evolution of Version Control in Open Source Lessons learned along the path to distributed version control Chris Aniszczyk (Red Hat) Principal Software Engineer zx@redhat.com http://aniszczyk.org
  • 2. About Me I've been using and hacking open source for ~12 years - contribute{d} to Gentoo Linux, Fedora Linux, Eclipse Eclipse Board of Directors, Committer Representative Member in the Eclipse {Architecture,Planning} Council I like to run! (just finished Chicago marathon in 3:20) Co-author of RCP Book (www.eclipsercp.org) Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 3. Agenda History of Version Control (VCS) The Rise of Distributed Version Control (DVCS) Lessons Learned at Eclipse moving to a DVCS Conclusion Q&A Picture 5 Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 4. Version Control Version Control Systems manage change “The only constant is change” (Heraclitus) Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 5. Why Version Control? VCS became essential to software development because: They allow teams to collaborate They manage change and allow for inspection They track ownership They track evolution of changes They allow for branching They allow for continuous integration Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 6. Version Control: The Ancients 1972 – Source Code Control System (SCCS) Born out of Bell Labs, based on interleaved deltas No open source implementations as far as I know 1982 – Revision Control System (RCS) Released as an alternative to SCCS Operates on single files Open source implementation hosted at GNU Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 7. Version Control: The Centralized One centralized server with the revision information Clients checkout a working copy locally Most operations happen on the server Linear revision history Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 8. Version Control: The Centralized 1990 – Concurrent Versions System (CVS) Initially released as some scripts on top of RCS Made branching possible for most people Revisions by commits are per file :( No atomic commit :( Not really maintained anymore... 2000 – Subversion (SVN) Released as an improvement to CVS Atomic commits via transactions Open source implementation hosted at Apache Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 9. “Hey, get back to work!” … “My code's merging” - remember those days you spent merging in changes in CVS/SVN? Picture 5 Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 10. Version Control: The Distributed Every client has a copy of the full repository locally All repository operations are local (except sharing) Intelligent network operations when sharing content A very non linear revision history Large online communities to share changes Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 11. Version Control: The Distributed 2001 – GNU arch First open source DVCS Deprecated; not maintained anymore --- In 2005, Bitkeeper was no longer open source --- 2005 – Git Created as the SCM for the Linux kernel by Linus 2005 – Mercurial (Hg) Cross-platform DVCS 2007 – Bazaar (BZR) Sponsored by Canonical Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 12. Agenda History of Version Control (VCS) The Rise of Distributed Version Control (DVCS) - How does a DVCS work? - The benefits of a DVCS Lessons Learned at Eclipse moving to a DVCS Conclusion Q&A Picture 5 Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 13. How does it work? A DVCS generally operates at the level of a changeset Logically, a repository is made up from an initial empty state, followed by many changesets Changesets are identified by a SHA-1 hash value e.g., 0878a8189e6a3ae1ded86d9e9c7cbe3f Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 14. It's all about the changesets Changesets contain pointers to the previous changeset previous: 48b2179994d494485b79504e8b5a6b23ce24a026 --- a/README.txt +++ b/README.txt @@ -1 +1 @@ -SVN is great +Git is great previous: 6ff60e964245816221414736d7e5fe6972246ead --- a/README.txt +++ b/README.txt @@ -1 +1 @@ -Git is great +SVN is great Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 15. Branches The current version of your repository is simply a pointer to the end of the tree The default "trunk" in Git is called "master" The tip of the current branch is called "HEAD" Any branch can be referred to by its hash id Creating branches in a DVCS is fast, you simply point to a different element in the tree on disk already Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 16. Merging DVCS are all about merging Merges are just the weaving together of two (or more) local branches into one However, unlike CVCS, you don't have to specify anything about where you're merging from and to; the trees automatically know what their split point was in the past, and can work it out from there. Merging is much easier in a DVCS like Git Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 17. Pulling and Pushing We've not talked about the distributed nature of DVCS Changes flow between repositories by push and pull Since a DVCS tree is merely a pointer to a branch... There's three cases to consider for comparing two trees: • Your tip is an ancestor of my tip • My tip is an ancestor of your tip • Neither of our tips are direct ancestors; however, we both share a common ancestor Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 18. Cloning and Remotes (git) git clone git://egit.eclipse.org/egit.git Where you can push or pull to is configured on a per (local) repository basis git remote add github http://github.com/zx/myegit.git origin is the default remote; you can have many remotes Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 19. Software Trends and Revolution Most major open source projects use some form of DVCS Git, Hg, Bazaar Linux MySQL OpenJDK Android JQuery Gnome Fedora Bugzilla and so on... But why? Using Git in Eclipse | © 2010 by C. Aniszczyk and M. Sohn
  • 20. Benefits of Distributed Version Control Can collaborate without a central authority Disconnected operations Easy branching and merging Define your own workflow Powerful community sharing tools Easier path to contributor to committer Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 21. Collaboration Developers can easily collaborate directly without needing a central authority or dealing with server administration costs Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 22. Disconnected operations rule! Developers can still be productive and not worry about a central server going down... remember the days of complaining that CVS was down and you couldn't work? Also, there's a lighter server load for administrators! Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 23. Branches everywhere Creating and destroying branches are simple operations so it's easy to experiment with new ideas Very easy to isolate changes Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 24. Define your own workflow Define your own workflow to meet your team needs. Different workflows can be adopted as your team grows without changing VCS toolsets! Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 25. DVCS and Building Community Developers can easily discover and fork projects. On top of that, it's simple for developers to share their changes “Distributed version control is all about empowering your community, and the people who might join your community” - Mark Shuttleworth Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 26. Agenda History of Version Control (VCS) The Rise of Distributed Version Control (DVCS) Lessons Learned at Eclipse moving to a DVCS - Version control at Eclipse - Code review at Eclipse - Challenges in moving to a DVCS Conclusion Q&A Picture 5 Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 27. Version Control at Eclipse Eclipse defined a roadmap to move to Git in 2009 CVS is deprecated; SVN will be deprecated in the future EGit is an Eclipse Team provider for Git http://www.eclipse.org/egit/ JGit is a lightweight Java library implementing Git http://www.eclipse.org/jgit/ The goal is to build an Eclipse community around Git So why did Eclipse.org choose Git? Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 28. #1: Git-related projects at Eclipse.org … both the core Git library (JGit) and tooling (EGit) are actively developed at Eclipse.org by a diverse set of committers and contributors with a common goal Picture 5 Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 29. History of JGit and EGit 2005 Linus Torvalds starts Git 2006 Shawn Pearce starts JGit 2009 Eclipse decides roadmap for Git migration JGit/EGit move to eclipse.org SAP joins JGit/EGit 3/2010 Released 0.7 (first release at Eclipse) Diff/Merge Algorithms, Automatic IP Logs 6/2010 Released 0.8 (Helios) Usability Improvements, Git Repositories View, Tagging 9/2010 Released 0.9 (Helios SR1) Merge, Synchronize View, .gitignore Planned: 12/2010 0.10 (Helios SR2) 3/2011 0.11 6/2011 1.0 (Indigo) Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 30. #2: Git is fast … Git is fast and scales well Picture 5 *whyisgitbetterthanx.com Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 31. #3: Git is mature and popular … Git is widely used and is the most popular distributed version control system Picture 5 Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 32. #4: Git community tools … the Eclipse community is interested in taking advantage of such Git tools like Gerrit Code Review (used by the Android community) and GitHub Picture 5 Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 33. Roles at Eclipse and Code Review Committer Formally elected Can commit own changes without review Contributor Small changes reviewed by committers Bigger changes also formal IP review by legal team in separate protected Bugzilla (IPZilla) Review Tool patches attached to bug in Bugzilla comments in Bugzilla Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 34. Code Review via Bugzilla Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 35. Eclipse – Review Process Contributors • create patch using CVS, SVN, Git (since 2009) • attach patch to bug in Bugzilla Committers • do code and IP review • comment, vote in Bugzilla • create CQ for changes needing IP review • commit accepted changes IP Team • does IP review bigger changes from contributors Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 36. Eclipse – Review Process Review not done for all changes Each Eclipse.org project does it differently Review tedious for contributors (and also for committers mentoring contributors) Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 37. Gerrit Code Review Gerrit is a Code Review system based on JGit http://code.google.com/p/gerrit/ Also serves as a git server adding access control and workflow Used by • Android https://review.source.android.com/ • JGit, EGit http://egit.eclipse.org/r/ • Google, SAP, … Eclipse wants to use it … Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 38. History: Google and code review tools Mondrian (Guido van Rossum) • based on Perforce, Google infrastructure • Google proprietary Rietvield (Guido van Rossum) • based on Subversion • Open Source hosted on GoogleApp Engine Gerrit (Shawn Pearce) • started as a fork of Rietvield • based on JGit and GWT • Open Source (Android) • Apache 2 license Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 39. One Branch One Feature Master  branch  contains  only  reviewed  and  approved  changes • master  moves  from  good  to  be7er  state  a)er  each   (approved)  change Each  feature  branch  is  based  on  master  branch • stable  star6ng  point A  change  can  really  be  abandoned  because • no  other  approved  change  can  depend  on  a  not  yet   approved  change • Gerrit  will  automa6cally  reject  a  successor  change  of  an   abandoned  change Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 40. Gerrit – Lifecycle of a Change • create local topic topic branch master • commit change 1 • push it for review a • do review • automated verification Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 41. Gerrit – Lifecycle of a Change • create local topic topic branch master • commit change • push it for review 1 • do review • automated a verification topic master c • refine based on 3 review • push new patchsets b 2 until review votes ok 1 a Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 42. Gerrit – Lifecycle of a Change • create local topic master topic branch master • commit change • push it for review d topic 1 • do review a • automated verification c 3 b topic master 2 c • refine based on a 1 3 review • push new patchsets b until review votes ok 2 • Submit may lead to server-side merge 1 a • or merge / rebase before push Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 43. Gerrit Workflow Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 44. Gerrit Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk http://egit.eclipse.org/r/ - change,825
  • 45. Eclipse.org: Challenges moving to a DVCS Convincing management and peers was tough - At first, everyone is resistant to change The learning curve of DVCS systems is high - Initially, the Eclipse tooling was “alpha” - People refuse to drop to the CLI Legacy is a pain in the ass! - 200+ projects at Eclipse used CVS/SVN - The existing VCS tooling was high quality Picture 5 Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 46. No free lunch! … trust me, the only way to learn DVCS is to start using it... there is a learning curve, you need to rewire your brain! Picture 5 Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 47. Git Resources http://git-scm.com/documentation is your friend Watch Linus' talk at Google http://www.youtube.com/watch?v=4XpnKHJAok8 Read the Pro Git book - http://progit.org/book/ Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 48. Agenda History of Version Control (VCS) The Rise of Distributed Version Control (DVCS) Lessons Learned at Eclipse moving to a DVCS Conclusion Q&A Picture 5 Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 49. Conclusion The future of version control is distributed! Moving to a DVCS takes time Gerrit enables a nice code review workflow Open source has embraced the way of DVCS Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk
  • 50. Q&A Picture 5 Evolution of Version Control in Open Source | © 2010 by Chris Aniszczyk