SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
Gerrit code review

   Thomas Koch
     www.koch.ro


   May 10, 2011
me



     Thomas Koch
     http://www.koch.ro
     finished music, physics
     5 years software developer: PHP (RIP!), Java, Hadoop, Search,
     Crawling, ERP, Groupware
     currently: finishing computer science bachelor, ETA: Q1/2012
     tags: quality, ATTAC, FSFE, FIfF, social responsability, Romania,
     Switzerland
Outline


   motivation


   workflow


   integration


   demo


   apendix
We are GIT - Resistance is futile

                                        GNU core utils
  Linux-Kernel
                                        Samba
  Apache Software Foundation
  (mirrors)                             Perl5
  freedesktop.org                       Maemo, QT
  Debian ( 3 of packages with           KDE
           4
  a VCS)                                Gnome
  DragonFly BSD                         VLC, XMMS2
  Fedora                                Prototype, YUI, jQuery
  Android                               Ruby on Rails
  Wine                                  Drupal, Mantis
  Erlang                        . . . and many morea . . .
  GStreamer                        a
                                       http://git.or.cz/gitwiki/GitProjects
Why GIT?




     fast
     merging is easy
     amazing toolset and features
     low entry barrier for new contributors
Subversion is irrelevant




   but you still need:
        repository server
        easy repository management
        access control
Subversion is irrelevant




   but you still need:
        repository server
        easy repository management
        access control
        and since we’re agile: code review
Subversion is irrelevant




   but you still need:
        repository server
        easy repository management
        access control
        and since we’re agile: code review
        and if you like it: CLA management
1
we are proud and seek review




     1
       CC BY-NC-ND 2.0
   http://lacrimarum-valle.blogspot.com/2009/11/wendys-cakes.html
enter Gerrit




       initially for Android by Google
       public since ca. oct 2008
       java rewrite of googles internal code review system
       by Shawn Pearce himself!
       tightly coupled to GIT
Gerrit users

         Eclipse
         Ebay2 , Intel, Red Hat, SAP
         Couchbase, WebM, Typo3
         Assembla (dev tools as a service)3
         openAFS
         Kitware (e.g. CMake)4
         Sandia National Laboratories
         Mobiles: Android, Qualcomm Innovation Center, MeeGo,
         Sony Ericsson


     2
        http://dj.riceweevil.com/2010/07/25-week/
     3
        http://blog.assembla.com/assemblablog/tabid/12618/bid/40871/
   Introducing-Gerrit-a-scalable-code-review-system.aspx
      4
        http://www.kitware.com/blog/home/post/70
current ASF workflow
Outline


   motivation


   workflow


   integration


   demo


   apendix
commit and push to gerrit



continuous integration (Jenkins)



          peer review



 jenkins OK, reviewer(s) OK?



  merge to integration branch
3 main views in Gerrit UI:
    changes list
    change overview
    diff (side by side / unified)
Gerrit Changes list
Gerrit Change overview
Gerrit Change side by side diff
mail notifications
   From: "Mike Peer (Code Review)" <mike@peer.de>
   To: Thomas Koch <thomas@koch.ro>
   Subject: Change in picture-gallery[master]: wrote
   add method and tests
   Mike Peer has posted comments on this change.
   Change subject: wrote add method and tests
   ...........................................................
   Patch Set 1: Looks good to me, but someone else must
   approve
   (2 inline comments)
   good enough.
   ....................................................
   File src/main/java/ro/koch/picturegallery/App.java
   Line 13:
   Could you please avoid unnecessary whitespace?
   Line 16: return a + b;
   Did you think about checking for overflows?
Outline


   motivation


   workflow


   integration


   demo


   apendix
Mylyn (eclipse) integration
Mylyn changes list
Mylyn change details
Mylyn change details - attributes
Mylyn change details - comments
Mylyn change details - reviewers
Mylyn change details - patch sets
Jenkins integration
Jenkins trigger and post result
Jenkins trigger and post result
Jenkins plugin




       fast (gerrit ssh stream)
       global configuration
more integration



       Mylyn (eclipse)
       Jenkins
       GitWeb
       Email notifications
       Auth: OpenID, LDAP, HTTP (Browser)
       build your own: hooks, streaming API
   e.g. parse Issuetracker IDs from commit messages and post to
   Jira/Mantis/Bugzilla
clickable Issuetracker IDs



   in gerrit.config:

   [commentlink "bugzilla"]
     match = "(bugs+#?)(d+)"
     link = http://bugs.example.com/show_bug.cgi?id=$2

   [commentlink "tracker"]
     match = ([Bb]ug:s+)(d+)
     html = $1<a href="http://trak.example.com/$2">$2</a>
Outline


   motivation


   workflow


   integration


   demo


   apendix
Questions?




   http://www.koch.ro
   http://identi.ca/thkoch
Outline


   motivation


   workflow


   integration


   demo


   apendix
multiple versions of a change




   Change-Id: I8596454156c4688abd1006cad8297d5aa7eb9331
   (There’s a hook for that.)
search (WebUI or cmdline)



   ssh -p 29418 t61 gerrit query --format=JSON 
   project:picture-gallery status:open owner:thomas@koch.ro


   Search for:
       age, owner, reviewer, project, branch, message, file, status,
       votes
       issue-tracker IDs: tr:ID / bug:ID
       topic
       starred (like bookmarked)
CLA and contact store
more goodies




      topic
      star changes
      hooks (after the fact)
      replication
commit policies / Change Submit Action



       Fast Forward Only
       Merge If Necessary
       Always Merge
       Cherry Pick
   Shawn Pearce: Under cherry-pick the dependency data in Gerrit
   means nothing. If a change is submitted and it cherry-picks clean
   onto the branch tip, it gets patched onto the branch and marked
   merged, even if one or more dependent changes is not ready for
   submission.
cmdline tools over SSH



                         admin:
 user:                       create-account
         ls-projects         create-group
         query               create-project
         review              gsql
         stream-events       suexec
                             ...

Weitere ähnliche Inhalte

Was ist angesagt?

Gerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review: how to script a plugin with Scala and GroovyGerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review: how to script a plugin with Scala and GroovyLuca Milanesio
 
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 Demonstrationvanoorts
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginLuca Milanesio
 
The Road to Continuous Delivery: Evolution Not Revolution 
The Road to Continuous Delivery: Evolution Not Revolution The Road to Continuous Delivery: Evolution Not Revolution 
The Road to Continuous Delivery: Evolution Not Revolution Perforce
 
Git Everyday
Git EverydayGit Everyday
Git EverydayPerforce
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab IntroductionKrunal Doshi
 
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.comB1 Systems GmbH
 
[Public] gerrit concepts and workflows
[Public] gerrit   concepts and workflows[Public] gerrit   concepts and workflows
[Public] gerrit concepts and workflowsYanbin Kong
 
Getting Started with GitHub
Getting Started with GitHubGetting Started with GitHub
Getting Started with GitHubMichael Redlich
 
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016ManageIQ
 
Git strategies for DevOps
Git strategies for DevOpsGit strategies for DevOps
Git strategies for DevOpsAhmad Iqbal Ali
 
Large Scale Development with Git and Gerrit - EclipseCon Europe 2012
Large Scale Development with Git and Gerrit - EclipseCon Europe 2012Large Scale Development with Git and Gerrit - EclipseCon Europe 2012
Large Scale Development with Git and Gerrit - EclipseCon Europe 2012msohn
 
Zero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeZero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeLuca Milanesio
 
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
 

Was ist angesagt? (20)

Gerrit Code Review
Gerrit Code ReviewGerrit Code Review
Gerrit Code Review
 
Gerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review: how to script a plugin with Scala and GroovyGerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review: how to script a plugin with Scala and Groovy
 
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
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub plugin
 
The Road to Continuous Delivery: Evolution Not Revolution 
The Road to Continuous Delivery: Evolution Not Revolution The Road to Continuous Delivery: Evolution Not Revolution 
The Road to Continuous Delivery: Evolution Not Revolution 
 
Git Everyday
Git EverydayGit Everyday
Git Everyday
 
Intro to Git & GitHub
Intro to Git & GitHubIntro to Git & GitHub
Intro to Git & GitHub
 
Gerrit Code Review
Gerrit Code ReviewGerrit Code Review
Gerrit Code Review
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
 
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
 
[Public] gerrit concepts and workflows
[Public] gerrit   concepts and workflows[Public] gerrit   concepts and workflows
[Public] gerrit concepts and workflows
 
Up GitLab Presentation 2015
Up GitLab Presentation 2015Up GitLab Presentation 2015
Up GitLab Presentation 2015
 
CI is dead, long live CI
CI is dead, long live CICI is dead, long live CI
CI is dead, long live CI
 
Getting Started with GitHub
Getting Started with GitHubGetting Started with GitHub
Getting Started with GitHub
 
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
 
Git strategies for DevOps
Git strategies for DevOpsGit strategies for DevOps
Git strategies for DevOps
 
Git & GitLab
Git & GitLabGit & GitLab
Git & GitLab
 
Large Scale Development with Git and Gerrit - EclipseCon Europe 2012
Large Scale Development with Git and Gerrit - EclipseCon Europe 2012Large Scale Development with Git and Gerrit - EclipseCon Europe 2012
Large Scale Development with Git and Gerrit - EclipseCon Europe 2012
 
Zero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeZero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review Upgrade
 
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?
 

Ähnlich wie Gerrit linuxtag2011

The journey to GitOps
The journey to GitOpsThe journey to GitOps
The journey to GitOpsNicola Baldi
 
Git 101, or, how to sanely manage your Koha customizations
Git 101, or, how to sanely manage your Koha customizationsGit 101, or, how to sanely manage your Koha customizations
Git 101, or, how to sanely manage your Koha customizationsIan Walls
 
BLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes DevelopersBLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes DevelopersMartin Jinoch
 
Intro to Eclipse Che, by Tyler Jewell
Intro to Eclipse Che, by Tyler JewellIntro to Eclipse Che, by Tyler Jewell
Intro to Eclipse Che, by Tyler Jewelljwi11iams
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing selfChen-Tien Tsai
 
Git_tutorial.pdf
Git_tutorial.pdfGit_tutorial.pdf
Git_tutorial.pdfAliaaTarek5
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Fabrice Bernhard
 
Analysis of merge requests in GitLab using PVS-Studio for C#
Analysis of merge requests in GitLab using PVS-Studio for C#Analysis of merge requests in GitLab using PVS-Studio for C#
Analysis of merge requests in GitLab using PVS-Studio for C#Andrey Karpov
 
Gitlab and Lingvokot
Gitlab and LingvokotGitlab and Lingvokot
Gitlab and LingvokotLingvokot
 
All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$Joe Ferguson
 
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 toolkitMarco Ferrigno
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps ParadigmNaLUG
 
Chenli linux-kerne-community
Chenli linux-kerne-communityChenli linux-kerne-community
Chenli linux-kerne-community力 陈
 
An Introduction to Microservices
An Introduction to MicroservicesAn Introduction to Microservices
An Introduction to MicroservicesAd van der Veer
 
Build Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the QualityBuild Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the QualityNational Cheng Kung University
 
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia
 
Agile & ALM tools
Agile & ALM toolsAgile & ALM tools
Agile & ALM toolsLarry Cai
 

Ähnlich wie Gerrit linuxtag2011 (20)

빈스톡 첫인상 with Git
빈스톡 첫인상 with Git빈스톡 첫인상 with Git
빈스톡 첫인상 with Git
 
The journey to GitOps
The journey to GitOpsThe journey to GitOps
The journey to GitOps
 
Git 101, or, how to sanely manage your Koha customizations
Git 101, or, how to sanely manage your Koha customizationsGit 101, or, how to sanely manage your Koha customizations
Git 101, or, how to sanely manage your Koha customizations
 
BLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes DevelopersBLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes Developers
 
Intro to Eclipse Che, by Tyler Jewell
Intro to Eclipse Che, by Tyler JewellIntro to Eclipse Che, by Tyler Jewell
Intro to Eclipse Che, by Tyler Jewell
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
 
Git_tutorial.pdf
Git_tutorial.pdfGit_tutorial.pdf
Git_tutorial.pdf
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
 
Analysis of merge requests in GitLab using PVS-Studio for C#
Analysis of merge requests in GitLab using PVS-Studio for C#Analysis of merge requests in GitLab using PVS-Studio for C#
Analysis of merge requests in GitLab using PVS-Studio for C#
 
Gitlab and Lingvokot
Gitlab and LingvokotGitlab and Lingvokot
Gitlab and Lingvokot
 
All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$
 
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
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Chenli linux-kerne-community
Chenli linux-kerne-communityChenli linux-kerne-community
Chenli linux-kerne-community
 
An Introduction to Microservices
An Introduction to MicroservicesAn Introduction to Microservices
An Introduction to Microservices
 
Build Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the QualityBuild Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the Quality
 
Git best practices 2016
Git best practices 2016Git best practices 2016
Git best practices 2016
 
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
 
Agile & ALM tools
Agile & ALM toolsAgile & ALM tools
Agile & ALM tools
 

Kürzlich hochgeladen

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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.pdfsudhanshuwaghmare1
 
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 Scriptwesley chun
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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)wesley chun
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
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...Martijn de Jong
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Kürzlich hochgeladen (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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)
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

Gerrit linuxtag2011

  • 1. Gerrit code review Thomas Koch www.koch.ro May 10, 2011
  • 2. me Thomas Koch http://www.koch.ro finished music, physics 5 years software developer: PHP (RIP!), Java, Hadoop, Search, Crawling, ERP, Groupware currently: finishing computer science bachelor, ETA: Q1/2012 tags: quality, ATTAC, FSFE, FIfF, social responsability, Romania, Switzerland
  • 3. Outline motivation workflow integration demo apendix
  • 4. We are GIT - Resistance is futile GNU core utils Linux-Kernel Samba Apache Software Foundation (mirrors) Perl5 freedesktop.org Maemo, QT Debian ( 3 of packages with KDE 4 a VCS) Gnome DragonFly BSD VLC, XMMS2 Fedora Prototype, YUI, jQuery Android Ruby on Rails Wine Drupal, Mantis Erlang . . . and many morea . . . GStreamer a http://git.or.cz/gitwiki/GitProjects
  • 5. Why GIT? fast merging is easy amazing toolset and features low entry barrier for new contributors
  • 6. Subversion is irrelevant but you still need: repository server easy repository management access control
  • 7. Subversion is irrelevant but you still need: repository server easy repository management access control and since we’re agile: code review
  • 8. Subversion is irrelevant but you still need: repository server easy repository management access control and since we’re agile: code review and if you like it: CLA management
  • 9. 1 we are proud and seek review 1 CC BY-NC-ND 2.0 http://lacrimarum-valle.blogspot.com/2009/11/wendys-cakes.html
  • 10. enter Gerrit initially for Android by Google public since ca. oct 2008 java rewrite of googles internal code review system by Shawn Pearce himself! tightly coupled to GIT
  • 11. Gerrit users Eclipse Ebay2 , Intel, Red Hat, SAP Couchbase, WebM, Typo3 Assembla (dev tools as a service)3 openAFS Kitware (e.g. CMake)4 Sandia National Laboratories Mobiles: Android, Qualcomm Innovation Center, MeeGo, Sony Ericsson 2 http://dj.riceweevil.com/2010/07/25-week/ 3 http://blog.assembla.com/assemblablog/tabid/12618/bid/40871/ Introducing-Gerrit-a-scalable-code-review-system.aspx 4 http://www.kitware.com/blog/home/post/70
  • 13. Outline motivation workflow integration demo apendix
  • 14. commit and push to gerrit continuous integration (Jenkins) peer review jenkins OK, reviewer(s) OK? merge to integration branch
  • 15. 3 main views in Gerrit UI: changes list change overview diff (side by side / unified)
  • 18. Gerrit Change side by side diff
  • 19. mail notifications From: "Mike Peer (Code Review)" <mike@peer.de> To: Thomas Koch <thomas@koch.ro> Subject: Change in picture-gallery[master]: wrote add method and tests Mike Peer has posted comments on this change. Change subject: wrote add method and tests ........................................................... Patch Set 1: Looks good to me, but someone else must approve (2 inline comments) good enough. .................................................... File src/main/java/ro/koch/picturegallery/App.java Line 13: Could you please avoid unnecessary whitespace? Line 16: return a + b; Did you think about checking for overflows?
  • 20. Outline motivation workflow integration demo apendix
  • 24. Mylyn change details - attributes
  • 25. Mylyn change details - comments
  • 26. Mylyn change details - reviewers
  • 27. Mylyn change details - patch sets
  • 29. Jenkins trigger and post result
  • 30. Jenkins trigger and post result
  • 31. Jenkins plugin fast (gerrit ssh stream) global configuration
  • 32. more integration Mylyn (eclipse) Jenkins GitWeb Email notifications Auth: OpenID, LDAP, HTTP (Browser) build your own: hooks, streaming API e.g. parse Issuetracker IDs from commit messages and post to Jira/Mantis/Bugzilla
  • 33. clickable Issuetracker IDs in gerrit.config: [commentlink "bugzilla"] match = "(bugs+#?)(d+)" link = http://bugs.example.com/show_bug.cgi?id=$2 [commentlink "tracker"] match = ([Bb]ug:s+)(d+) html = $1<a href="http://trak.example.com/$2">$2</a>
  • 34. Outline motivation workflow integration demo apendix
  • 35. Questions? http://www.koch.ro http://identi.ca/thkoch
  • 36. Outline motivation workflow integration demo apendix
  • 37. multiple versions of a change Change-Id: I8596454156c4688abd1006cad8297d5aa7eb9331 (There’s a hook for that.)
  • 38. search (WebUI or cmdline) ssh -p 29418 t61 gerrit query --format=JSON project:picture-gallery status:open owner:thomas@koch.ro Search for: age, owner, reviewer, project, branch, message, file, status, votes issue-tracker IDs: tr:ID / bug:ID topic starred (like bookmarked)
  • 40. more goodies topic star changes hooks (after the fact) replication
  • 41. commit policies / Change Submit Action Fast Forward Only Merge If Necessary Always Merge Cherry Pick Shawn Pearce: Under cherry-pick the dependency data in Gerrit means nothing. If a change is submitted and it cherry-picks clean onto the branch tip, it gets patched onto the branch and marked merged, even if one or more dependent changes is not ready for submission.
  • 42. cmdline tools over SSH admin: user: create-account ls-projects create-group query create-project review gsql stream-events suexec ...