SlideShare a Scribd company logo
1 of 45
Main sponsor




  Gerrit
Luca Milanesio
Who’s that guy ?




review.GerritForge™.com   Copyright © 2012 – LMIT Software
Agenda

  •   Agile and the broken build dilemma
  •   Can Git solve it ?
  •   “Agile” workflow with Git
  •   Gerrit: the smart way
  •   Just about code-review ?
  •   Let’s play with Gerrit live !



review.GerritForge™.com      Copyright © 2012 – LMIT Software
Agile and continuous integration

  • Who is using CI ? … raise your hand !!!!

  • Good or bad ?


  •Why ?



review.GerritForge™.com      Copyright © 2012 – LMIT Software
Continuous Integration is GOOD

  •   Live “weather forecast” of the project
  •   Detect and resolve conflicts earlier
  •   Bring TDD to life
  •   Enforce collective code ownership
  •   … and much more




review.GerritForge™.com       Copyright © 2012 – LMIT Software
Breaking the build id BAD !

  • All devs gets tests broken
  • Build stops
  • Test are NOT executed



  … all team goes at “DEFCON1”
  to fix it ASAP !!


review.GerritForge™.com      Copyright © 2012 – LMIT Software
Broken build dilemma: how to avoid it ?


         1. Do not PUSH until you’re 100% sure
            of GREEN bar
         2. Create multiple personal CI builds
            and validate builds before PUSH
         3. Install a “Jenkins Build Game” plug-
            in and get free beers 

         … DO ANY OF THEM REALLY WORK ?

review.GerritForge™.com         Copyright © 2012 – LMIT Software
Git … can you help out ?

   Git short story: the anti-Subversion
   • Apr 2005 – Linus writes PERL scripts for Linux Kernel SCM
   • Jul 2005 … Git 0.99 is out !

   Git principles:
   • Continuous branching / merging / rebasing /
     stashing
   • Distributed repositories
   • Distributed patch distribution
   • Early integration
     (before breaking the CI)

review.GerritForge™.com                   Copyright © 2012 – LMIT Software
Git topic-branches workflow

                           B4             B5                 topic1



            A1        A2             A3                      master



                   C2           C3             C4            topic2


   Agile workflow – one topic branch per story
   • Keep on branch whilst RED / AMBER bar
   • Continuous rebase on master
   • Merge on GREEN bar


review.GerritForge™.com                             Copyright © 2012 – LMIT Software
Problem resolved ?

  • Let’s use Git then ?
      “My repo is the master”
                          “Git is all about peer-to-peer dev”
         “Who has reverted my commits ? … !$@#!$!”

  • Git doesn’t enforce any policy
       Peer-to-peer development allowed
       Dictatorship or anarchy of changes are both allowed

  … is there a “better Git” out there ?

review.GerritForge™.com               Copyright © 2012 – LMIT Software
Gerrit, brief history

   Google
  Mondrian
               The idea: Guido Van Rossum
                         Code-review for Perforce
                         Porting to SVN and OpenSourced
  Rietveld               Python-based
               2008 - Project fork for AOSP
                      (Shawn Pearce / Joe Onorato)
   Gerrit
  Rietveld               Name changed to Gerrit Rietveld
                         Based on Git
                         Set of “patches” on original Guido’s
                          Rietveld project
  gerrit       2009 - Gerrit 2, the Java + GWT rewriting
                      (Shawn Pearce)

review.GerritForge™.com                          Copyright © 2012 – LMIT Software
What is Gerrit today ?

  • 100% pure Java SSH and HTTP Git backend
       Powered by JGit
  • GWT Web-view administration
       Users and Groups
       Project and branch security
       Git repository browsing
  • Git repository replication engine
  • Code collaboration and review
  • Code validation through Jenkins Triggers


review.GerritForge™.com               Copyright © 2012 – LMIT Software
Gerrit: high level workflow
                 CI Build: OK


                                                              master
         A1




review.GerritForge™.com         Copyright © 2012 – LMIT Software
Gerrit: high level workflow
                 CI Build: OK


                                                              master
         A1




 clone



                                                                    local
      A1                                                           master



review.GerritForge™.com         Copyright © 2012 – LMIT Software
Gerrit: high level workflow
                 CI Build: OK


                                                              master
         A1




 clone



                                                                    local
      A1         C2                                                master



review.GerritForge™.com         Copyright © 2012 – LMIT Software
Gerrit: high level workflow
                  CI Build: OK


                                                               master
         A1




                  C2                                    refs/for/master




 clone     push



                                                                     local
      A1          C2                                                master



review.GerritForge™.com          Copyright © 2012 – LMIT Software
Gerrit: high level workflow
                  CI Build: OK


                                                                            master
         A1

                             Verified: -1
                             (build failed)



                  C2                                                 refs/for/master




 clone     push



                                                                                  local
      A1          C2                                                             master



review.GerritForge™.com                       Copyright © 2012 – LMIT Software
Gerrit: high level workflow
                  CI Build: OK


                                                                             master
         A1

                             Verified: -1
                             (build failed)



                  C2                     C2*                          refs/for/master




 clone     push                  push



                                                                                   local
      A1          C2                     C2*                                      master



review.GerritForge™.com                        Copyright © 2012 – LMIT Software
Gerrit: high level workflow
                  CI Build: OK


                                                                                    master
         A1

                             Verified: -1      Verified: +1
                             (build failed)    (build OK)



                  C2                     C2*                                 refs/for/master




 clone     push                  push



                                                                                          local
      A1          C2                     C2*                                             master



review.GerritForge™.com                               Copyright © 2012 – LMIT Software
Gerrit: high level workflow
                  CI Build: OK


                                                                                    master
         A1

                             Verified: -1      Verified: +1
                             (build failed)    (build OK)



                  C2                     C2*                                 refs/for/master
                                                              Reviewed: +2




 clone     push                  push



                                                                                          local
      A1          C2                     C2*                                             master



review.GerritForge™.com                               Copyright © 2012 – LMIT Software
Gerrit: high level workflow
                  CI Build: OK                                               CI Build: OK


                                                                                     master
         A1                                                     C2*

                             Verified: -1      Verified: +1
                             (build failed)    (build OK)



                  C2                     C2*                                   refs/for/master
                                                              Reviewed: +2




 clone     push                  push



                                                                                          local
      A1          C2                     C2*                                             master



review.GerritForge™.com                               Copyright © 2012 – LMIT Software
Cool, isn’t it ?

  • Gerrit allow “automatic” topic-branches
  • Triggers with Jenkins branch validation
  • Enforce collective code-ownership
       People “interacts” with the code changes
       Discussion on style and architecture
       Democratic voting (+1 / -1)
  • Project history
       Reason behind changes is recorded in code-review




review.GerritForge™.com              Copyright © 2012 – LMIT Software
See Gerrit “live” in action




review.GerritForge™.com         Copyright © 2012 – LMIT Software
1. Set-up

  • Option-A: download and install
      1. Download from
         http://code.google.com/p/gerrit/downloads/list
      2. Gerrit install wizard:
           java –jar gerrit-2.2.2.1.war init -d ~/gerrit
      3. Run Gerrit:
           ~/gerrit/bin/gerrit.sh start

  • Option-B: Gerrit as hosted service
       Assembla.com (free for OpenSorce projects)
       GitEnterprise.com (free up to 10 users)



review.GerritForge™.com              Copyright © 2012 – LMIT Software
2. Create user and add SSH keys

  • Option-A: not easy 
       Gerrit doesn’t support a “local user registry”
       Options: LDAP or OpenID

  • Option-B: use the provider user registration
       Assembla:
        https://www.assembla.com/signup
       GitEnterprise:
        https://gitent-scm.com/signup




review.GerritForge™.com                Copyright © 2012 – LMIT Software
3. Talk to Gerrit via SSH

  • Gerrit SSH console
       Listen at 29418 port
       Not a real SSH server (just Gerrit listening)




review.GerritForge™.com                        Copyright © 2012 – LMIT Software
4. Create a Gerrit project

 • Gerrit Project is:
      Git repository (use “path notation” to organise projects)
      Access permissions
      Code-review and change-sets
 • Option-A: use Gerrit SSH command
 $ ssh -p 29418 lmilanesio@localhost gerrit create-project
 lmit/33degree


 • Option-B: user the provider-specific page
      Assembla: N/A (only 1 project associated to your “space”)
      GitEnterprise:
       https://gitent-scm.com/newrepo



review.GerritForge™.com                       Copyright © 2012 – LMIT Software
5. Clone repo from Gerrit
  • Git SSH repository URL is:
     ssh://<user>@<host>:29418/<Gerrit project>.git




  • Gerrit supports HTTP or HTTP/S repository URL:
    http://<Gerrit URL>/p/<Gerrit project>.git




  NOTE: For HTTP authentication, put your credentials on ~/.netrc file
  machine <hostname> login <username> password <password>


review.GerritForge™.com                                 Copyright © 2012 – LMIT Software
6. Gerrit Change-Id

  • SHA-1 GUID of a change-set under review
  • MUST be last line of commit msg

         Hint: install Gerrit post-commit hook for auto-
         generating Change-Id after each Git commit




  Now all Git commit will auto-generate a Change-Id !




review.GerritForge™.com               Copyright © 2012 – LMIT Software
7. Submit a change for review

  • Change for review committed locally
  • Push to refs/for/<branch> for submitting local Git
    changes for review on <branch>




review.GerritForge™.com           Copyright © 2012 – LMIT Software
8. Verify change against CI




review.GerritForge™.com         Copyright © 2012 – LMIT Software
9. Additional patch-set to Change-Id
  • Fix the problem locally
  • Amend the commit (same Change-Id)
  • Push again to refs/for/<branch> for adding one
    extra change-set




review.GerritForge™.com           Copyright © 2012 – LMIT Software
10. Change-Id is validated against CI




                          • Request code-review
review.GerritForge™.com         Copyright © 2012 – LMIT Software
11. Review and comment changes




review.GerritForge™.com   Copyright © 2012 – LMIT Software
12. Review merge and submit change

                          • One or more
                            reviewers can “vote”
                            for the change

                          • Authorised users can
                            then “Submit” the
                            change.

                          • Change is
                            automatically merged
                            to master


review.GerritForge™.com   Copyright © 2012 – LMIT Software
13. Master build is triggered … SUCCESS !!




review.GerritForge™.com     Copyright © 2012 – LMIT Software
… is just about code-review then ?
                        GitHub   BitBucket    Gitorious               Gerrit
    SSH / HTTPS

    Free public repo

    Free private repo

    Repo security

    Branch security

    Code review

    Hooks / API

    Replication

    CI Integration

    OpenSource /
    extensible
    Issue-tracker
    integration




review.GerritForge™.com                      Copyright © 2012 – LMIT Software
Credits and resources
  • Many thanks to
      Shawn Pearce, father of Gerrit
      Its contributors and Google Inc.
  • Google Gerrit code-review
    http://code.google.com/p/gerrit/
  • Assembla Gerrit
    http://review.assembla.com
  • GitEnterprise
    http://review.gitent-scm.com
    @gitenterprise

  Slides available at http://www.slideshare.net/lucamilanesio
  Follow me: @lucamilanesio

review.GerritForge™.com                    Copyright © 2012 – LMIT Software
BACKUP




review.GerritForge™.com        Copyright © 2012 – LMIT Software
Gerrit: just code-review then ?

  • Git Security – Groups
      Define different “roles” in the project
      System groups
          • Anonymous users: use for public projects
          • Registered Users: all users
          • Administrators: to administer Gerrit
          • Project Owners: to administer projects
          • Non-interactive Users: for CI or batch operations
      Groups can be hierarchical (groups of groups)


review.GerritForge™.com                 Copyright © 2012 – LMIT Software
Define groups and members
 Admin > Groups




review.GerritForge™.com   Copyright © 2012 – LMIT Software
Putting all together with projects

  • Git Security: rights to projects
      Define access rights to Git operations
      Control the Gerrit identity vs Git author /
       committer
      Delegate project administration
      Assign code-review voting range rights
      Define who can submit and merge changes
      Organise project rights hirarchically


review.GerritForge™.com           Copyright © 2012 – LMIT Software
Define project access rights per refspec
 Admin > Projects > 33degree > Access




review.GerritForge™.com                 Copyright © 2012 – LMIT Software
Assign access rights to Groups




review.GerritForge™.com     Copyright © 2012 – LMIT Software
… and Gerrit replication
                                                         Remote
                                                        gerrit or git
                           Remote
                          gerrit or git

    Master
    gerrit




review.GerritForge™.com                   Copyright © 2012 – LMIT Software

More Related Content

What's hot

What's hot (20)

Git
GitGit
Git
 
Introduction to git hub
Introduction to git hubIntroduction to git hub
Introduction to git hub
 
Git branching strategies
Git branching strategiesGit branching strategies
Git branching strategies
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
 
Git flow
Git flowGit flow
Git flow
 
Git flow Introduction
Git flow IntroductionGit flow Introduction
Git flow Introduction
 
Github - Git Training Slides: Foundations
Github - Git Training Slides: FoundationsGithub - Git Training Slides: Foundations
Github - Git Training Slides: Foundations
 
Intro to Git and GitHub
Intro to Git and GitHubIntro to Git and GitHub
Intro to Git and GitHub
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
Introducing GitLab
Introducing GitLabIntroducing GitLab
Introducing GitLab
 
Introduction git
Introduction gitIntroduction git
Introduction git
 
git, repo, Gerrit 基礎教學
git, repo, Gerrit 基礎教學git, repo, Gerrit 基礎教學
git, repo, Gerrit 基礎教學
 
Git in 10 minutes
Git in 10 minutesGit in 10 minutes
Git in 10 minutes
 
Git basics
Git basicsGit basics
Git basics
 
Meetup 23 - 03 - Application Delivery on K8S with GitOps
Meetup 23 - 03 - Application Delivery on K8S with GitOpsMeetup 23 - 03 - Application Delivery on K8S with GitOps
Meetup 23 - 03 - Application Delivery on K8S with GitOps
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Starting with Git & GitHub
Starting with Git & GitHubStarting with Git & GitHub
Starting with Git & GitHub
 
NGINX Installation and Tuning
NGINX Installation and TuningNGINX Installation and Tuning
NGINX Installation and Tuning
 
Gitops: a new paradigm for software defined operations
Gitops: a new paradigm for software defined operationsGitops: a new paradigm for software defined operations
Gitops: a new paradigm for software defined operations
 
Git flow for daily use
Git flow for daily useGit flow for daily use
Git flow for daily use
 

Similar to Main sponsor Gerrit enables continuous integration and code reviews

Marrying Jenkins and Gerrit-Berlin Expert Days 2013
Marrying Jenkins and Gerrit-Berlin Expert Days 2013Marrying Jenkins and Gerrit-Berlin Expert Days 2013
Marrying Jenkins and Gerrit-Berlin Expert Days 2013Dharmesh Sheta
 
The Virtual Git Summit - Subversion to Git - A Sugar Story
The Virtual Git Summit - Subversion to Git - A Sugar StoryThe Virtual Git Summit - Subversion to Git - A Sugar Story
The Virtual Git Summit - Subversion to Git - A Sugar StoryJohn Mertic
 
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-14msohn
 
Compartmentalized Continuous Integration: Enabling Rapid, Flexible Collaborat...
Compartmentalized Continuous Integration: Enabling Rapid, Flexible Collaborat...Compartmentalized Continuous Integration: Enabling Rapid, Flexible Collaborat...
Compartmentalized Continuous Integration: Enabling Rapid, Flexible Collaborat...Perforce
 
A Skeptic's Guide to Docker
A Skeptic's Guide to DockerA Skeptic's Guide to Docker
A Skeptic's Guide to DockerTori Wieldt
 
Git workflows (Basics)
Git workflows (Basics)Git workflows (Basics)
Git workflows (Basics)Roman Kuba
 
Gitlab meets Kubernetes
Gitlab meets KubernetesGitlab meets Kubernetes
Gitlab meets Kubernetesinovex GmbH
 
Comparing Next-Generation Container Image Building Tools
 Comparing Next-Generation Container Image Building Tools Comparing Next-Generation Container Image Building Tools
Comparing Next-Generation Container Image Building ToolsAkihiro Suda
 
Git architects
Git architectsGit architects
Git architectsglitchdata
 
The NRB Group mainframe day 2021 - New Programming Languages on Z - Frank Van...
The NRB Group mainframe day 2021 - New Programming Languages on Z - Frank Van...The NRB Group mainframe day 2021 - New Programming Languages on Z - Frank Van...
The NRB Group mainframe day 2021 - New Programming Languages on Z - Frank Van...NRB
 
What's new with Zend server
What's new with Zend serverWhat's new with Zend server
What's new with Zend serverCOMMON Europe
 
Webcast : Develop Mainframe Software with Open Source SCMs and IBM Dependency...
Webcast : Develop Mainframe Software with Open Source SCMs and IBM Dependency...Webcast : Develop Mainframe Software with Open Source SCMs and IBM Dependency...
Webcast : Develop Mainframe Software with Open Source SCMs and IBM Dependency...DevOps for Enterprise Systems
 
Don't Let Git Get Your Goat!
Don't Let Git Get Your Goat!Don't Let Git Get Your Goat!
Don't Let Git Get Your Goat!CollabNet
 
How We Use GitHub
How We Use GitHubHow We Use GitHub
How We Use GitHubNYC DevShop
 
Git in Continuous Deployment
Git in Continuous DeploymentGit in Continuous Deployment
Git in Continuous DeploymentBrett Child
 
Git/Gerrit with TeamForge
Git/Gerrit with TeamForgeGit/Gerrit with TeamForge
Git/Gerrit with TeamForgeCollabNet
 
mRuby - Powerful Software for Embedded System Development
mRuby - Powerful Software for Embedded System DevelopmentmRuby - Powerful Software for Embedded System Development
mRuby - Powerful Software for Embedded System DevelopmentKazuhiro Koga 古賀一博
 
40 square's git workflow
40 square's git workflow40 square's git workflow
40 square's git workflowRuben Tan
 
Debugging embedded devices using GDB
Debugging embedded devices using GDBDebugging embedded devices using GDB
Debugging embedded devices using GDBChris Simmonds
 

Similar to Main sponsor Gerrit enables continuous integration and code reviews (20)

Marrying Jenkins and Gerrit-Berlin Expert Days 2013
Marrying Jenkins and Gerrit-Berlin Expert Days 2013Marrying Jenkins and Gerrit-Berlin Expert Days 2013
Marrying Jenkins and Gerrit-Berlin Expert Days 2013
 
The Virtual Git Summit - Subversion to Git - A Sugar Story
The Virtual Git Summit - Subversion to Git - A Sugar StoryThe Virtual Git Summit - Subversion to Git - A Sugar Story
The Virtual Git Summit - Subversion to Git - A Sugar Story
 
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
 
Compartmentalized Continuous Integration: Enabling Rapid, Flexible Collaborat...
Compartmentalized Continuous Integration: Enabling Rapid, Flexible Collaborat...Compartmentalized Continuous Integration: Enabling Rapid, Flexible Collaborat...
Compartmentalized Continuous Integration: Enabling Rapid, Flexible Collaborat...
 
A Skeptic's Guide to Docker
A Skeptic's Guide to DockerA Skeptic's Guide to Docker
A Skeptic's Guide to Docker
 
Git workflows (Basics)
Git workflows (Basics)Git workflows (Basics)
Git workflows (Basics)
 
Gitlab meets Kubernetes
Gitlab meets KubernetesGitlab meets Kubernetes
Gitlab meets Kubernetes
 
Comparing Next-Generation Container Image Building Tools
 Comparing Next-Generation Container Image Building Tools Comparing Next-Generation Container Image Building Tools
Comparing Next-Generation Container Image Building Tools
 
Git architects
Git architectsGit architects
Git architects
 
The NRB Group mainframe day 2021 - New Programming Languages on Z - Frank Van...
The NRB Group mainframe day 2021 - New Programming Languages on Z - Frank Van...The NRB Group mainframe day 2021 - New Programming Languages on Z - Frank Van...
The NRB Group mainframe day 2021 - New Programming Languages on Z - Frank Van...
 
What's new with Zend server
What's new with Zend serverWhat's new with Zend server
What's new with Zend server
 
Webcast : Develop Mainframe Software with Open Source SCMs and IBM Dependency...
Webcast : Develop Mainframe Software with Open Source SCMs and IBM Dependency...Webcast : Develop Mainframe Software with Open Source SCMs and IBM Dependency...
Webcast : Develop Mainframe Software with Open Source SCMs and IBM Dependency...
 
Don't Let Git Get Your Goat!
Don't Let Git Get Your Goat!Don't Let Git Get Your Goat!
Don't Let Git Get Your Goat!
 
How We Use GitHub
How We Use GitHubHow We Use GitHub
How We Use GitHub
 
Git in Continuous Deployment
Git in Continuous DeploymentGit in Continuous Deployment
Git in Continuous Deployment
 
Application Deployment on IBM i
Application Deployment on IBM iApplication Deployment on IBM i
Application Deployment on IBM i
 
Git/Gerrit with TeamForge
Git/Gerrit with TeamForgeGit/Gerrit with TeamForge
Git/Gerrit with TeamForge
 
mRuby - Powerful Software for Embedded System Development
mRuby - Powerful Software for Embedded System DevelopmentmRuby - Powerful Software for Embedded System Development
mRuby - Powerful Software for Embedded System Development
 
40 square's git workflow
40 square's git workflow40 square's git workflow
40 square's git workflow
 
Debugging embedded devices using GDB
Debugging embedded devices using GDBDebugging embedded devices using GDB
Debugging embedded devices using GDB
 

More from Luca Milanesio

What's new in Gerrit Code Review v3.1 and beyond
What's new in Gerrit Code Review v3.1 and beyondWhat's new in Gerrit Code Review v3.1 and beyond
What's new in Gerrit Code Review v3.1 and beyondLuca Milanesio
 
Gerrit Analytics applied to Android source code
Gerrit Analytics applied to Android source codeGerrit Analytics applied to Android source code
Gerrit Analytics applied to Android source codeLuca Milanesio
 
Cloud-native Gerrit Code Review
Cloud-native Gerrit Code ReviewCloud-native Gerrit Code Review
Cloud-native Gerrit Code ReviewLuca Milanesio
 
Gerrit Code Review migrations step-by-step
Gerrit Code Review migrations step-by-stepGerrit Code Review migrations step-by-step
Gerrit Code Review migrations step-by-stepLuca Milanesio
 
Gerrit Code Review v3.2 and v3.3
Gerrit Code Review v3.2 and v3.3Gerrit Code Review v3.2 and v3.3
Gerrit Code Review v3.2 and v3.3Luca Milanesio
 
ChronicleMap non-blocking cache for Gerrit v3.3
ChronicleMap non-blocking cache for Gerrit v3.3ChronicleMap non-blocking cache for Gerrit v3.3
ChronicleMap non-blocking cache for Gerrit v3.3Luca Milanesio
 
Gerrit Code Review multi-site
Gerrit Code Review multi-siteGerrit Code Review multi-site
Gerrit Code Review multi-siteLuca Milanesio
 
What's new in Gerrit Code Review 3.0
What's new in Gerrit Code Review 3.0What's new in Gerrit Code Review 3.0
What's new in Gerrit Code Review 3.0Luca Milanesio
 
Gerrit User Summit 2019 Keynote
Gerrit User Summit 2019 KeynoteGerrit User Summit 2019 Keynote
Gerrit User Summit 2019 KeynoteLuca Milanesio
 
Gerrit multi-master / multi-site at GerritHub
Gerrit multi-master / multi-site at GerritHubGerrit multi-master / multi-site at GerritHub
Gerrit multi-master / multi-site at GerritHubLuca Milanesio
 
GerritHub a true Gerrit migration story to v2.15
GerritHub a true Gerrit migration story to v2.15GerritHub a true Gerrit migration story to v2.15
GerritHub a true Gerrit migration story to v2.15Luca Milanesio
 
Gerrit User Summit 2018 - Keynote
Gerrit User Summit 2018 - Keynote Gerrit User Summit 2018 - Keynote
Gerrit User Summit 2018 - Keynote Luca Milanesio
 
Jenkins plugin for Gerrit Code Review pipelines
Jenkins plugin for Gerrit Code Review pipelinesJenkins plugin for Gerrit Code Review pipelines
Jenkins plugin for Gerrit Code Review pipelinesLuca Milanesio
 
Gerrit User Summit 2017 Keynote
Gerrit User Summit 2017 KeynoteGerrit User Summit 2017 Keynote
Gerrit User Summit 2017 KeynoteLuca Milanesio
 
How to keep Jenkins logs forever without performance issues
How to keep Jenkins logs forever without performance issuesHow to keep Jenkins logs forever without performance issues
How to keep Jenkins logs forever without performance issuesLuca Milanesio
 
Jenkins Pipeline on your Local Box to Reduce Cycle Time
Jenkins Pipeline on your Local Box to Reduce Cycle TimeJenkins Pipeline on your Local Box to Reduce Cycle Time
Jenkins Pipeline on your Local Box to Reduce Cycle TimeLuca Milanesio
 
Jenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code Review
Jenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code ReviewJenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code Review
Jenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code ReviewLuca Milanesio
 
Stable master workflow with Gerrit Code Review
Stable master workflow with Gerrit Code ReviewStable master workflow with Gerrit Code Review
Stable master workflow with Gerrit Code ReviewLuca Milanesio
 
Gerrit Code Review Analytics
Gerrit Code Review AnalyticsGerrit Code Review Analytics
Gerrit Code Review AnalyticsLuca Milanesio
 
Zero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeZero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeLuca Milanesio
 

More from Luca Milanesio (20)

What's new in Gerrit Code Review v3.1 and beyond
What's new in Gerrit Code Review v3.1 and beyondWhat's new in Gerrit Code Review v3.1 and beyond
What's new in Gerrit Code Review v3.1 and beyond
 
Gerrit Analytics applied to Android source code
Gerrit Analytics applied to Android source codeGerrit Analytics applied to Android source code
Gerrit Analytics applied to Android source code
 
Cloud-native Gerrit Code Review
Cloud-native Gerrit Code ReviewCloud-native Gerrit Code Review
Cloud-native Gerrit Code Review
 
Gerrit Code Review migrations step-by-step
Gerrit Code Review migrations step-by-stepGerrit Code Review migrations step-by-step
Gerrit Code Review migrations step-by-step
 
Gerrit Code Review v3.2 and v3.3
Gerrit Code Review v3.2 and v3.3Gerrit Code Review v3.2 and v3.3
Gerrit Code Review v3.2 and v3.3
 
ChronicleMap non-blocking cache for Gerrit v3.3
ChronicleMap non-blocking cache for Gerrit v3.3ChronicleMap non-blocking cache for Gerrit v3.3
ChronicleMap non-blocking cache for Gerrit v3.3
 
Gerrit Code Review multi-site
Gerrit Code Review multi-siteGerrit Code Review multi-site
Gerrit Code Review multi-site
 
What's new in Gerrit Code Review 3.0
What's new in Gerrit Code Review 3.0What's new in Gerrit Code Review 3.0
What's new in Gerrit Code Review 3.0
 
Gerrit User Summit 2019 Keynote
Gerrit User Summit 2019 KeynoteGerrit User Summit 2019 Keynote
Gerrit User Summit 2019 Keynote
 
Gerrit multi-master / multi-site at GerritHub
Gerrit multi-master / multi-site at GerritHubGerrit multi-master / multi-site at GerritHub
Gerrit multi-master / multi-site at GerritHub
 
GerritHub a true Gerrit migration story to v2.15
GerritHub a true Gerrit migration story to v2.15GerritHub a true Gerrit migration story to v2.15
GerritHub a true Gerrit migration story to v2.15
 
Gerrit User Summit 2018 - Keynote
Gerrit User Summit 2018 - Keynote Gerrit User Summit 2018 - Keynote
Gerrit User Summit 2018 - Keynote
 
Jenkins plugin for Gerrit Code Review pipelines
Jenkins plugin for Gerrit Code Review pipelinesJenkins plugin for Gerrit Code Review pipelines
Jenkins plugin for Gerrit Code Review pipelines
 
Gerrit User Summit 2017 Keynote
Gerrit User Summit 2017 KeynoteGerrit User Summit 2017 Keynote
Gerrit User Summit 2017 Keynote
 
How to keep Jenkins logs forever without performance issues
How to keep Jenkins logs forever without performance issuesHow to keep Jenkins logs forever without performance issues
How to keep Jenkins logs forever without performance issues
 
Jenkins Pipeline on your Local Box to Reduce Cycle Time
Jenkins Pipeline on your Local Box to Reduce Cycle TimeJenkins Pipeline on your Local Box to Reduce Cycle Time
Jenkins Pipeline on your Local Box to Reduce Cycle Time
 
Jenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code Review
Jenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code ReviewJenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code Review
Jenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code Review
 
Stable master workflow with Gerrit Code Review
Stable master workflow with Gerrit Code ReviewStable master workflow with Gerrit Code Review
Stable master workflow with Gerrit Code Review
 
Gerrit Code Review Analytics
Gerrit Code Review AnalyticsGerrit Code Review Analytics
Gerrit Code Review Analytics
 
Zero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeZero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review Upgrade
 

Recently uploaded

Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfMahmoud M. Sallam
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
MICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptxMICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptxabhijeetpadhi001
 
AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.arsicmarija21
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxAvyJaneVismanos
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxRaymartEstabillo3
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxEyham Joco
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentInMediaRes1
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Celine George
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 

Recently uploaded (20)

Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdf
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
MICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptxMICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptx
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptx
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptx
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media Component
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 

Main sponsor Gerrit enables continuous integration and code reviews

  • 1. Main sponsor Gerrit Luca Milanesio
  • 2. Who’s that guy ? review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 3. Agenda • Agile and the broken build dilemma • Can Git solve it ? • “Agile” workflow with Git • Gerrit: the smart way • Just about code-review ? • Let’s play with Gerrit live ! review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 4. Agile and continuous integration • Who is using CI ? … raise your hand !!!! • Good or bad ? •Why ? review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 5. Continuous Integration is GOOD • Live “weather forecast” of the project • Detect and resolve conflicts earlier • Bring TDD to life • Enforce collective code ownership • … and much more review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 6. Breaking the build id BAD ! • All devs gets tests broken • Build stops • Test are NOT executed … all team goes at “DEFCON1” to fix it ASAP !! review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 7. Broken build dilemma: how to avoid it ? 1. Do not PUSH until you’re 100% sure of GREEN bar 2. Create multiple personal CI builds and validate builds before PUSH 3. Install a “Jenkins Build Game” plug- in and get free beers  … DO ANY OF THEM REALLY WORK ? review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 8. Git … can you help out ? Git short story: the anti-Subversion • Apr 2005 – Linus writes PERL scripts for Linux Kernel SCM • Jul 2005 … Git 0.99 is out ! Git principles: • Continuous branching / merging / rebasing / stashing • Distributed repositories • Distributed patch distribution • Early integration (before breaking the CI) review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 9. Git topic-branches workflow B4 B5 topic1 A1 A2 A3 master C2 C3 C4 topic2 Agile workflow – one topic branch per story • Keep on branch whilst RED / AMBER bar • Continuous rebase on master • Merge on GREEN bar review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 10. Problem resolved ? • Let’s use Git then ? “My repo is the master” “Git is all about peer-to-peer dev” “Who has reverted my commits ? … !$@#!$!” • Git doesn’t enforce any policy  Peer-to-peer development allowed  Dictatorship or anarchy of changes are both allowed … is there a “better Git” out there ? review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 11. Gerrit, brief history Google Mondrian The idea: Guido Van Rossum  Code-review for Perforce  Porting to SVN and OpenSourced Rietveld  Python-based 2008 - Project fork for AOSP (Shawn Pearce / Joe Onorato) Gerrit Rietveld  Name changed to Gerrit Rietveld  Based on Git  Set of “patches” on original Guido’s Rietveld project gerrit 2009 - Gerrit 2, the Java + GWT rewriting (Shawn Pearce) review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 12. What is Gerrit today ? • 100% pure Java SSH and HTTP Git backend  Powered by JGit • GWT Web-view administration  Users and Groups  Project and branch security  Git repository browsing • Git repository replication engine • Code collaboration and review • Code validation through Jenkins Triggers review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 13. Gerrit: high level workflow CI Build: OK master A1 review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 14. Gerrit: high level workflow CI Build: OK master A1 clone local A1 master review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 15. Gerrit: high level workflow CI Build: OK master A1 clone local A1 C2 master review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 16. Gerrit: high level workflow CI Build: OK master A1 C2 refs/for/master clone push local A1 C2 master review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 17. Gerrit: high level workflow CI Build: OK master A1 Verified: -1 (build failed) C2 refs/for/master clone push local A1 C2 master review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 18. Gerrit: high level workflow CI Build: OK master A1 Verified: -1 (build failed) C2 C2* refs/for/master clone push push local A1 C2 C2* master review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 19. Gerrit: high level workflow CI Build: OK master A1 Verified: -1 Verified: +1 (build failed) (build OK) C2 C2* refs/for/master clone push push local A1 C2 C2* master review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 20. Gerrit: high level workflow CI Build: OK master A1 Verified: -1 Verified: +1 (build failed) (build OK) C2 C2* refs/for/master Reviewed: +2 clone push push local A1 C2 C2* master review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 21. Gerrit: high level workflow CI Build: OK CI Build: OK master A1 C2* Verified: -1 Verified: +1 (build failed) (build OK) C2 C2* refs/for/master Reviewed: +2 clone push push local A1 C2 C2* master review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 22. Cool, isn’t it ? • Gerrit allow “automatic” topic-branches • Triggers with Jenkins branch validation • Enforce collective code-ownership  People “interacts” with the code changes  Discussion on style and architecture  Democratic voting (+1 / -1) • Project history  Reason behind changes is recorded in code-review review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 23. See Gerrit “live” in action review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 24. 1. Set-up • Option-A: download and install 1. Download from http://code.google.com/p/gerrit/downloads/list 2. Gerrit install wizard: java –jar gerrit-2.2.2.1.war init -d ~/gerrit 3. Run Gerrit: ~/gerrit/bin/gerrit.sh start • Option-B: Gerrit as hosted service  Assembla.com (free for OpenSorce projects)  GitEnterprise.com (free up to 10 users) review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 25. 2. Create user and add SSH keys • Option-A: not easy   Gerrit doesn’t support a “local user registry”  Options: LDAP or OpenID • Option-B: use the provider user registration  Assembla: https://www.assembla.com/signup  GitEnterprise: https://gitent-scm.com/signup review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 26. 3. Talk to Gerrit via SSH • Gerrit SSH console  Listen at 29418 port  Not a real SSH server (just Gerrit listening) review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 27. 4. Create a Gerrit project • Gerrit Project is:  Git repository (use “path notation” to organise projects)  Access permissions  Code-review and change-sets • Option-A: use Gerrit SSH command $ ssh -p 29418 lmilanesio@localhost gerrit create-project lmit/33degree • Option-B: user the provider-specific page  Assembla: N/A (only 1 project associated to your “space”)  GitEnterprise: https://gitent-scm.com/newrepo review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 28. 5. Clone repo from Gerrit • Git SSH repository URL is: ssh://<user>@<host>:29418/<Gerrit project>.git • Gerrit supports HTTP or HTTP/S repository URL: http://<Gerrit URL>/p/<Gerrit project>.git NOTE: For HTTP authentication, put your credentials on ~/.netrc file machine <hostname> login <username> password <password> review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 29. 6. Gerrit Change-Id • SHA-1 GUID of a change-set under review • MUST be last line of commit msg Hint: install Gerrit post-commit hook for auto- generating Change-Id after each Git commit Now all Git commit will auto-generate a Change-Id ! review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 30. 7. Submit a change for review • Change for review committed locally • Push to refs/for/<branch> for submitting local Git changes for review on <branch> review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 31. 8. Verify change against CI review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 32. 9. Additional patch-set to Change-Id • Fix the problem locally • Amend the commit (same Change-Id) • Push again to refs/for/<branch> for adding one extra change-set review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 33. 10. Change-Id is validated against CI • Request code-review review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 34. 11. Review and comment changes review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 35. 12. Review merge and submit change • One or more reviewers can “vote” for the change • Authorised users can then “Submit” the change. • Change is automatically merged to master review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 36. 13. Master build is triggered … SUCCESS !! review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 37. … is just about code-review then ? GitHub BitBucket Gitorious Gerrit SSH / HTTPS Free public repo Free private repo Repo security Branch security Code review Hooks / API Replication CI Integration OpenSource / extensible Issue-tracker integration review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 38. Credits and resources • Many thanks to Shawn Pearce, father of Gerrit Its contributors and Google Inc. • Google Gerrit code-review http://code.google.com/p/gerrit/ • Assembla Gerrit http://review.assembla.com • GitEnterprise http://review.gitent-scm.com @gitenterprise Slides available at http://www.slideshare.net/lucamilanesio Follow me: @lucamilanesio review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 39. BACKUP review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 40. Gerrit: just code-review then ? • Git Security – Groups Define different “roles” in the project System groups • Anonymous users: use for public projects • Registered Users: all users • Administrators: to administer Gerrit • Project Owners: to administer projects • Non-interactive Users: for CI or batch operations Groups can be hierarchical (groups of groups) review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 41. Define groups and members Admin > Groups review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 42. Putting all together with projects • Git Security: rights to projects Define access rights to Git operations Control the Gerrit identity vs Git author / committer Delegate project administration Assign code-review voting range rights Define who can submit and merge changes Organise project rights hirarchically review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 43. Define project access rights per refspec Admin > Projects > 33degree > Access review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 44. Assign access rights to Groups review.GerritForge™.com Copyright © 2012 – LMIT Software
  • 45. … and Gerrit replication Remote gerrit or git Remote gerrit or git Master gerrit review.GerritForge™.com Copyright © 2012 – LMIT Software