SlideShare una empresa de Scribd logo
1 de 48
Descargar para leer sin conexión
Effective Development with...
                              Eclipse, Mylyn, Git, Gerrit and Hudson (Jenkins)




Chris Aniszczyk (Red Hat)
Principal Software Engineer
zx@redhat.com
http://aniszczyk.org
About Me
Hack on Eclipse, OSGi, Git and other things at Red Hat

Member of the Eclipse Board of Directors

Member in the Eclipse Architecture Council

I like to run! (2 minutes over of Boston qualifying ;/)

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

Starting a new book on Git and Gerrit...




       Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Agenda
Introduction
 - Mylyn Reloaded
Hudson (Jenkins) and Mylyn
Distributed Version Control (DVCS)
Code Review with Git, Gerrit and Mylyn
Conclusion
Q&A




     Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
What is Mylyn?
Mylyn is the task and application lifecycle
management (ALM) framework for Eclipse. It
provides...

The task-focused interface that realigns
the IDE around tasks so that you see only
the code that's relevant

A task management tool for developers

A broad ecosystem of Agile and ALM
integrations. There are dozens of extensions
integrate Mylyn with ALM and developer
collaboration tools


       Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Mylyn Integrates within the IDE
Mylyn reduces context switching...




       Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Mylyn History


2004: Task-focused interface ideas on UBC whiteboard
2006: v1.0, early adopters help evolve the UI
2007: v2.0, API grows from integration needs, increasing
2008: v3.0, API solidifies, extensions increase
2009: v3.3, de facto ALM integration for Eclipse, dozens of
extensions
2010: Expansion of participation and new project creation
2011: Mylyn 3.5




       Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Mylyn 3.4



    Tasks                                   Bugzilla                            Trac        OSLC


    Context                                      Java                         C/C++


    Versions                                      CVS


    Docs                                  WikiText




     Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Mylyn 3.5 – Restructured

     Tasks                                   Bugzilla                            Trac        OSLC


     Context                                      Java                         C/C++


     Versions                                      CVS                             Git       OSLC

                                           WikiText                        RichText
     Docs

     Builds                                 Hudson                         OSLC


     Reviews                                    Tasks                          Gerrit        IEEE

      Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Agenda
Introduction
Hudson (Jenkins) and Mylyn
 - What is Hudson (Jenkins)
 - Mylyn Builds
The Rise of Distributed Version Control (DVCS)
Code Review with Git, Gerrit and Mylyn
Conclusion
Q&A




     Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
What is Hudson (Jenkins)?
 Hudson is an extensible continuous integration server

 Easy to use

 Tons of plug-ins

 Very popular within the Java community

 Recently forked by the community via Jenkins




       Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Mylyn Builds
 “The scope of the Mylyn Builds project is integration of
 continuous integration and build systems (eg., Hudson)
 within Eclipse. In addition to the seamless access to
 software build and assembly technologies. Mylyn users
 will be able to access continuous integration processes,
 control build execution and associate build results with
 tasks and context.”

 http://eclipse.org/mylyn/builds

 You'll find yourself leaving Eclipse less!




        Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Mylyn Builds Demo




     Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Agenda
Introduction
Hudson (Jenkins) and Mylyn
Distributed Version Control (DVCS)
  - Why DVCS? Why Git?
  - Lessons learned at Eclipse moving to Git
  - Mylyn Versions and EGit
Code Review with Git, Gerrit and Mylyn
Conclusion
Q&A



     Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Version Control
 Version Control Systems manage change




               “The only constant is change” (Heraclitus)



       Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 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




       Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
“Hey, get back to work!”
 … “My code's merging” - remember those days you
 spent merging in changes in CVS/SVN?




      Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 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




        Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 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?
        Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
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




       Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Collaboration
 Developers can easily collaborate directly without
 needing a central authority or dealing with server
 administration costs




       Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 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!




       Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 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




      Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 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!




       Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 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




      Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Version Control at Eclipse
 Eclipse defined a roadmap to move to Git in 2009
 CVS/SVN are deprecated now
 Each project is moving to Git on its own timeline...

 So why did Eclipse.org choose Git?




         Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 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




       Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
#2: Git is fast
 … Git is fast and scales well




                                                                                         *whyisgitbetterthanx.com

       Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
#3: Git is mature and popular
 … Git is widely used and is the most popular
 distributed version control system




       Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
#4: Git community tools
 … interested in taking advantage of such Git tools
 like Gerrit Code Review (used by the Android
 community) and GitHub




       Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
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

      Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 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!




        Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
EGit Demo




     Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Agenda
Introduction
Hudson (Jenkins) and Mylyn
Distributed Version Control (DVCS)
Code Review with Git, Gerrit and Mylyn
 - What is Code Review?
 - Introduction to Gerrit
 - Mylyn Reviews Demo (Gerrit)
Conclusion
Q&A



     Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
What is Code Review?
When one developer writes code, another developer
is asked to review that code

A careful line-by-line critique

Happens in a non-threatening context

Goal is cooperation, not fault-finding

Often an integral part of coding process

Debugging someone else's broken code
– Involuntary code review: Not so good; emotions may flare
                                                       [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf


       Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Code Review Benefits
Four eyes catch more bugs
     §   Catch bugs early to save hours of debugging

Enforce coding standards
     §   Keep overall readability & code quality high

Mentoring of new developers
     §   Learn from mistakes without breaking stuff

Establish trust relationships
     §   Prepare for more delegation

Good alternative to pair programming
     §   asynchronous and across locations
                                                         [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf


         Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 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, Red Hat, SAP, …




        Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 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



        Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
One Branch One Feature
 Master branch contains only reviewed and
  approved changes
     • master moves from good to better state after
       each (approved) change

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

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



      Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 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




         Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 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



         Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 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
         Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Gerrit Workflow




      Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Gerrit




     Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris http://egit.eclipse.org/r/
                                                                                Aniszczyk                    - change,825
Gerrit and Mylyn Reviews Demo




    Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris http://egit.eclipse.org/r/
                                                                               Aniszczyk                    - change,825
Agenda
History of Version Control (VCS)
Hudson (Jenkins) and Mylyn
Distributed Version Control (DVCS)
Code Review with Git and Gerrit
Conclusion
Q&A




     Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Conclusion
The Mylyn project restructuring is a sign of maturity

The future of version control is distributed!

Mylyn Builds works great with Hudson (Jenkins)

Gerrit enables a nice code review workflow

Mylyn Reviews integrates with Gerrit

Developing with Mylyn saves time!



       Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 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/




        Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
Q&A




      Effective of Version Control in Open Source | © 2010 by Chris Aniszczyk
      EvolutionDevelopment with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk

Más contenido relacionado

La actualidad más candente

Beginner's Guide to Version Control with Git
Beginner's Guide to Version Control with GitBeginner's Guide to Version Control with Git
Beginner's Guide to Version Control with Git
Robert Lee-Cann
 
Using Git in Eclipse - Eclipse Summit Europe 2010-11-03
Using Git in Eclipse - Eclipse Summit Europe 2010-11-03Using Git in Eclipse - Eclipse Summit Europe 2010-11-03
Using Git in Eclipse - Eclipse Summit Europe 2010-11-03
msohn
 
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
OpenCity Community
 
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison DowdneySetting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Weaveworks
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
Weaveworks
 

La actualidad más candente (20)

Beginner's Guide to Version Control with Git
Beginner's Guide to Version Control with GitBeginner's Guide to Version Control with Git
Beginner's Guide to Version Control with Git
 
Using Git in Eclipse - Eclipse Summit Europe 2010-11-03
Using Git in Eclipse - Eclipse Summit Europe 2010-11-03Using Git in Eclipse - Eclipse Summit Europe 2010-11-03
Using Git in Eclipse - Eclipse Summit Europe 2010-11-03
 
Gerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and DockerGerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and Docker
 
Git & git hub
Git & git hubGit & git hub
Git & git hub
 
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
 
GitLab as an Alternative Development Platform for Github.com
GitLab as an Alternative Development Platform for Github.comGitLab as an Alternative Development Platform for Github.com
GitLab as an Alternative Development Platform for Github.com
 
Introducing Git and git flow
Introducing Git and git flow Introducing Git and git flow
Introducing Git and git flow
 
Spring Projects Infrastructure
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects Infrastructure
 
Git and GitHub - The beginning
Git and GitHub - The beginning Git and GitHub - The beginning
Git and GitHub - The beginning
 
How Git and Gerrit make you more productive
How Git and Gerrit make you more productiveHow Git and Gerrit make you more productive
How Git and Gerrit make you more productive
 
Using Git/Gerrit and Jenkins to Manage the Code Review Processord
Using Git/Gerrit and Jenkins to Manage the Code Review ProcessordUsing Git/Gerrit and Jenkins to Manage the Code Review Processord
Using Git/Gerrit and Jenkins to Manage the Code Review Processord
 
Gerrit Code Review
Gerrit Code ReviewGerrit Code Review
Gerrit Code Review
 
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
 
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison DowdneySetting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
Setting up Notifications, Alerts & Webhooks with Flux v2 by Alison Dowdney
 
Continuous Security for GitOps
Continuous Security for GitOpsContinuous Security for GitOps
Continuous Security for GitOps
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
 
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
 
Hands-on GitOps Patterns for Helm Users
Hands-on GitOps Patterns for Helm UsersHands-on GitOps Patterns for Helm Users
Hands-on GitOps Patterns for Helm Users
 
GitBlit plugin for Gerrit Code Review
GitBlit plugin for Gerrit Code ReviewGitBlit plugin for Gerrit Code Review
GitBlit plugin for Gerrit Code Review
 
Hacking Git and GitHub
Hacking Git and GitHubHacking Git and GitHub
Hacking Git and GitHub
 

Destacado

A git workflow for Drupal Core development
A git workflow for Drupal Core developmentA git workflow for Drupal Core development
A git workflow for Drupal Core development
Cameron Tod
 
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-CommunityGit & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
Steffen Gebert
 

Destacado (13)

Gerrit & Jenkins Workflow: An Integrated CI Demonstration
Gerrit & Jenkins Workflow: An Integrated CI DemonstrationGerrit & Jenkins Workflow: An Integrated CI Demonstration
Gerrit & Jenkins Workflow: An Integrated CI Demonstration
 
Git Power-Workshop
Git Power-WorkshopGit Power-Workshop
Git Power-Workshop
 
News from Git in Eclipse - EclipseCon EU - 2016-10-26
News from Git in Eclipse - EclipseCon EU - 2016-10-26News from Git in Eclipse - EclipseCon EU - 2016-10-26
News from Git in Eclipse - EclipseCon EU - 2016-10-26
 
Git and Gerrit Code Review - Tech Talk - 2010_09_23
Git and Gerrit Code Review - Tech Talk - 2010_09_23Git and Gerrit Code Review - Tech Talk - 2010_09_23
Git and Gerrit Code Review - Tech Talk - 2010_09_23
 
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
 
Awesome Git Workflow for Agencies and Teams
Awesome Git Workflow for Agencies and TeamsAwesome Git Workflow for Agencies and Teams
Awesome Git Workflow for Agencies and Teams
 
A git workflow for Drupal Core development
A git workflow for Drupal Core developmentA git workflow for Drupal Core development
A git workflow for Drupal Core development
 
Gerrit Code Review
Gerrit Code ReviewGerrit Code Review
Gerrit Code Review
 
CakeDC Git Workflow extension
CakeDC Git Workflow extensionCakeDC Git Workflow extension
CakeDC Git Workflow extension
 
Anton Parkhomenko Boost your design workflow or git rebase for designers
Anton Parkhomenko Boost your design workflow or git rebase for designersAnton Parkhomenko Boost your design workflow or git rebase for designers
Anton Parkhomenko Boost your design workflow or git rebase for designers
 
Ultimate Git Workflow - Seoul 2015
Ultimate Git Workflow - Seoul 2015Ultimate Git Workflow - Seoul 2015
Ultimate Git Workflow - Seoul 2015
 
Eclipse, Git und Gerrit
Eclipse, Git und GerritEclipse, Git und Gerrit
Eclipse, Git und Gerrit
 
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-CommunityGit & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
 

Similar a Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson

What is DevOps And How It Is Useful In Real life.
What is DevOps And How It Is Useful In Real life.What is DevOps And How It Is Useful In Real life.
What is DevOps And How It Is Useful In Real life.
anilpmuvvala
 
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 a Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson (20)

Evolution ofversioncontrolinopensource
Evolution ofversioncontrolinopensourceEvolution ofversioncontrolinopensource
Evolution ofversioncontrolinopensource
 
Evolution of version control in opensource - fossa2010
Evolution of version control in opensource - fossa2010Evolution of version control in opensource - fossa2010
Evolution of version control in opensource - fossa2010
 
OpenShift Overview - Red Hat Open House 2017
OpenShift Overview - Red Hat Open House 2017OpenShift Overview - Red Hat Open House 2017
OpenShift Overview - Red Hat Open House 2017
 
A Brief History of Git
A Brief History of GitA Brief History of Git
A Brief History of Git
 
Intro Docker to Loire Atlantique
Intro Docker to Loire AtlantiqueIntro Docker to Loire Atlantique
Intro Docker to Loire Atlantique
 
Enterprise level cloud CI
Enterprise level cloud CIEnterprise level cloud CI
Enterprise level cloud CI
 
Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates
 
Agile Network India | Continuous Integration & Continuous Deployment & Automa...
Agile Network India | Continuous Integration & Continuous Deployment & Automa...Agile Network India | Continuous Integration & Continuous Deployment & Automa...
Agile Network India | Continuous Integration & Continuous Deployment & Automa...
 
OpenShift Overview - Red Hat Open School 2017
OpenShift Overview - Red Hat Open School 2017OpenShift Overview - Red Hat Open School 2017
OpenShift Overview - Red Hat Open School 2017
 
Git para novatos
Git para novatosGit para novatos
Git para novatos
 
Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and MicroservicesAccelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
 
Building Scalable Web Applications Using Microservices Architecture and NodeJ...
Building Scalable Web Applications Using Microservices Architecture and NodeJ...Building Scalable Web Applications Using Microservices Architecture and NodeJ...
Building Scalable Web Applications Using Microservices Architecture and NodeJ...
 
Stop Caring About Kubernetes
Stop Caring About KubernetesStop Caring About Kubernetes
Stop Caring About Kubernetes
 
What is DevOps And How It Is Useful In Real life.
What is DevOps And How It Is Useful In Real life.What is DevOps And How It Is Useful In Real life.
What is DevOps And How It Is Useful In Real 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.
What_is_DevOps_how_it's_very_useful_in_daily_Life.
 
Building Scalable Web Applications using Microservices Architecture and NodeJ...
Building Scalable Web Applications using Microservices Architecture and NodeJ...Building Scalable Web Applications using Microservices Architecture and NodeJ...
Building Scalable Web Applications using Microservices Architecture and NodeJ...
 
What_is_DevOps.pptx
What_is_DevOps.pptxWhat_is_DevOps.pptx
What_is_DevOps.pptx
 
Introducing GitSwarm: Pure Git with Globally Scalable DevOps
Introducing GitSwarm: Pure Git with Globally Scalable DevOpsIntroducing GitSwarm: Pure Git with Globally Scalable DevOps
Introducing GitSwarm: Pure Git with Globally Scalable DevOps
 
Accelerate Your Application Modernization Journey with Konveyor - Kubernetes ...
Accelerate Your Application Modernization Journey with Konveyor - Kubernetes ...Accelerate Your Application Modernization Journey with Konveyor - Kubernetes ...
Accelerate Your Application Modernization Journey with Konveyor - Kubernetes ...
 
EGit and Gerrit Code Review - Eclipse DemoCamp Bonn - 2010-11-16
EGit and Gerrit Code Review - Eclipse DemoCamp Bonn - 2010-11-16EGit and Gerrit Code Review - Eclipse DemoCamp Bonn - 2010-11-16
EGit and Gerrit Code Review - Eclipse DemoCamp Bonn - 2010-11-16
 

Más de Chris Aniszczyk

The Open Source... Behind the Tweets
The Open Source... Behind the TweetsThe Open Source... Behind the Tweets
The Open Source... Behind the Tweets
Chris Aniszczyk
 
Open Source Compliance at Twitter
Open Source Compliance at TwitterOpen Source Compliance at Twitter
Open Source Compliance at Twitter
Chris Aniszczyk
 

Más de Chris Aniszczyk (20)

Bringing an open source project to the Linux Foundation
Bringing an open source project to the Linux FoundationBringing an open source project to the Linux Foundation
Bringing an open source project to the Linux Foundation
 
Starting an Open Source Program Office (OSPO)
Starting an Open Source Program Office (OSPO)Starting an Open Source Program Office (OSPO)
Starting an Open Source Program Office (OSPO)
 
Open Container Initiative Update
Open Container Initiative UpdateOpen Container Initiative Update
Open Container Initiative Update
 
Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)
 
Rise of Open Source Programs
Rise of Open Source ProgramsRise of Open Source Programs
Rise of Open Source Programs
 
The Open Container Initiative (OCI) at 12 months
The Open Container Initiative (OCI) at 12 monthsThe Open Container Initiative (OCI) at 12 months
The Open Container Initiative (OCI) at 12 months
 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO Group
 
Getting Students Involved in Open Source
Getting Students Involved in Open SourceGetting Students Involved in Open Source
Getting Students Involved in Open Source
 
Life at Twitter + Career Advice for Students
Life at Twitter + Career Advice for StudentsLife at Twitter + Career Advice for Students
Life at Twitter + Career Advice for Students
 
Creating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from TwitterCreating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from Twitter
 
The Open Source... Behind the Tweets
The Open Source... Behind the TweetsThe Open Source... Behind the Tweets
The Open Source... Behind the Tweets
 
Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)
 
Evolution of The Twitter Stack
Evolution of The Twitter StackEvolution of The Twitter Stack
Evolution of The Twitter Stack
 
Open Source Craft at Twitter
Open Source Craft at TwitterOpen Source Craft at Twitter
Open Source Craft at Twitter
 
Open Source Compliance at Twitter
Open Source Compliance at TwitterOpen Source Compliance at Twitter
Open Source Compliance at Twitter
 
SWTBot Tutorial
SWTBot TutorialSWTBot Tutorial
SWTBot Tutorial
 
Helios in Action: Git at Eclipse
Helios in Action: Git at EclipseHelios in Action: Git at Eclipse
Helios in Action: Git at Eclipse
 
Eclipse e4
Eclipse e4Eclipse e4
Eclipse e4
 
Introduction to EclipseRT (JAX 2010)
Introduction to EclipseRT (JAX 2010)Introduction to EclipseRT (JAX 2010)
Introduction to EclipseRT (JAX 2010)
 
EclipseRT, Equinox and OSGi
EclipseRT, Equinox and OSGiEclipseRT, Equinox and OSGi
EclipseRT, Equinox and OSGi
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 

Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson

  • 1. Effective Development with... Eclipse, Mylyn, Git, Gerrit and Hudson (Jenkins) Chris Aniszczyk (Red Hat) Principal Software Engineer zx@redhat.com http://aniszczyk.org
  • 2. About Me Hack on Eclipse, OSGi, Git and other things at Red Hat Member of the Eclipse Board of Directors Member in the Eclipse Architecture Council I like to run! (2 minutes over of Boston qualifying ;/) Co-author of RCP Book (www.eclipsercp.org) Starting a new book on Git and Gerrit... Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 3. Agenda Introduction - Mylyn Reloaded Hudson (Jenkins) and Mylyn Distributed Version Control (DVCS) Code Review with Git, Gerrit and Mylyn Conclusion Q&A Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 4. What is Mylyn? Mylyn is the task and application lifecycle management (ALM) framework for Eclipse. It provides... The task-focused interface that realigns the IDE around tasks so that you see only the code that's relevant A task management tool for developers A broad ecosystem of Agile and ALM integrations. There are dozens of extensions integrate Mylyn with ALM and developer collaboration tools Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 5. Mylyn Integrates within the IDE Mylyn reduces context switching... Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 6. Mylyn History 2004: Task-focused interface ideas on UBC whiteboard 2006: v1.0, early adopters help evolve the UI 2007: v2.0, API grows from integration needs, increasing 2008: v3.0, API solidifies, extensions increase 2009: v3.3, de facto ALM integration for Eclipse, dozens of extensions 2010: Expansion of participation and new project creation 2011: Mylyn 3.5 Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 7. Mylyn 3.4 Tasks Bugzilla Trac OSLC Context Java C/C++ Versions CVS Docs WikiText Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 8. Mylyn 3.5 – Restructured Tasks Bugzilla Trac OSLC Context Java C/C++ Versions CVS Git OSLC WikiText RichText Docs Builds Hudson OSLC Reviews Tasks Gerrit IEEE Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 9. Agenda Introduction Hudson (Jenkins) and Mylyn - What is Hudson (Jenkins) - Mylyn Builds The Rise of Distributed Version Control (DVCS) Code Review with Git, Gerrit and Mylyn Conclusion Q&A Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 10. What is Hudson (Jenkins)? Hudson is an extensible continuous integration server Easy to use Tons of plug-ins Very popular within the Java community Recently forked by the community via Jenkins Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 11. Mylyn Builds “The scope of the Mylyn Builds project is integration of continuous integration and build systems (eg., Hudson) within Eclipse. In addition to the seamless access to software build and assembly technologies. Mylyn users will be able to access continuous integration processes, control build execution and associate build results with tasks and context.” http://eclipse.org/mylyn/builds You'll find yourself leaving Eclipse less! Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 12. Mylyn Builds Demo Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 13. Agenda Introduction Hudson (Jenkins) and Mylyn Distributed Version Control (DVCS) - Why DVCS? Why Git? - Lessons learned at Eclipse moving to Git - Mylyn Versions and EGit Code Review with Git, Gerrit and Mylyn Conclusion Q&A Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 14. Version Control Version Control Systems manage change “The only constant is change” (Heraclitus) Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 15. 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 Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 16. “Hey, get back to work!” … “My code's merging” - remember those days you spent merging in changes in CVS/SVN? Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 17. 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 Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 18. 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? Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 19. 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 Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 20. Collaboration Developers can easily collaborate directly without needing a central authority or dealing with server administration costs Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 21. 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! Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 22. Branches everywhere Creating and destroying branches are simple operations so it's easy to experiment with new ideas Very easy to isolate changes Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 23. 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! Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 24. 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 Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 25. Version Control at Eclipse Eclipse defined a roadmap to move to Git in 2009 CVS/SVN are deprecated now Each project is moving to Git on its own timeline... So why did Eclipse.org choose Git? Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 26. #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 Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 27. #2: Git is fast … Git is fast and scales well *whyisgitbetterthanx.com Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 28. #3: Git is mature and popular … Git is widely used and is the most popular distributed version control system Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 29. #4: Git community tools … interested in taking advantage of such Git tools like Gerrit Code Review (used by the Android community) and GitHub Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 30. 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 Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 31. 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! Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 32. EGit Demo Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 33. Agenda Introduction Hudson (Jenkins) and Mylyn Distributed Version Control (DVCS) Code Review with Git, Gerrit and Mylyn - What is Code Review? - Introduction to Gerrit - Mylyn Reviews Demo (Gerrit) Conclusion Q&A Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 34. What is Code Review? When one developer writes code, another developer is asked to review that code A careful line-by-line critique Happens in a non-threatening context Goal is cooperation, not fault-finding Often an integral part of coding process Debugging someone else's broken code – Involuntary code review: Not so good; emotions may flare [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 35. Code Review Benefits Four eyes catch more bugs § Catch bugs early to save hours of debugging Enforce coding standards § Keep overall readability & code quality high Mentoring of new developers § Learn from mistakes without breaking stuff Establish trust relationships § Prepare for more delegation Good alternative to pair programming § asynchronous and across locations [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 36. 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, Red Hat, SAP, … Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 37. 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 Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 38. One Branch One Feature Master branch contains only reviewed and approved changes • master moves from good to better state after each (approved) change Each feature branch is based on master branch • stable starting point A change can really be abandoned because • no other approved change can depend on a not yet approved change • Gerrit will automatically reject a successor change of an abandoned change Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 39. Gerrit – Lifecycle of a Change • create local topic topic branch master • commit change 1 • push it for review a • do review • automated verification Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 40. 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 Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 41. 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 Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 42. Gerrit Workflow Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 43. Gerrit Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris http://egit.eclipse.org/r/ Aniszczyk - change,825
  • 44. Gerrit and Mylyn Reviews Demo Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris http://egit.eclipse.org/r/ Aniszczyk - change,825
  • 45. Agenda History of Version Control (VCS) Hudson (Jenkins) and Mylyn Distributed Version Control (DVCS) Code Review with Git and Gerrit Conclusion Q&A Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 46. Conclusion The Mylyn project restructuring is a sign of maturity The future of version control is distributed! Mylyn Builds works great with Hudson (Jenkins) Gerrit enables a nice code review workflow Mylyn Reviews integrates with Gerrit Developing with Mylyn saves time! Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 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/ Effective Development with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk
  • 48. Q&A Effective of Version Control in Open Source | © 2010 by Chris Aniszczyk EvolutionDevelopment with Mylyn, Hudson, Git and Gerrit | © 2011 by Chris Aniszczyk