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

Formation autour de git et git lab
Formation autour de git et git labFormation autour de git et git lab
Formation autour de git et git labAbdelghani Azri
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...Simplilearn
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Gibran Badrulzaman
 
DevOps Monitoring and Alerting
DevOps Monitoring and AlertingDevOps Monitoring and Alerting
DevOps Monitoring and AlertingKhairul Zebua
 
Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsAccess Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsTeamstudio
 
DevOps topologies
DevOps topologiesDevOps topologies
DevOps topologiesSushma
 
Introduction to Git and Github
Introduction to Git and Github Introduction to Git and Github
Introduction to Git and Github Max Claus Nunes
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hubVenkat Malladi
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Noa Harel
 
IoT testing and quality assurance indicthreads
IoT testing and quality assurance indicthreadsIoT testing and quality assurance indicthreads
IoT testing and quality assurance indicthreadsIndicThreads
 
DevOps Roadmap.pptx
DevOps Roadmap.pptxDevOps Roadmap.pptx
DevOps Roadmap.pptxHARSH MANVAR
 
CI/CD Best Practices for Your DevOps Journey
CI/CD Best  Practices for Your DevOps JourneyCI/CD Best  Practices for Your DevOps Journey
CI/CD Best Practices for Your DevOps JourneyDevOps.com
 

What's hot (20)

Git
GitGit
Git
 
Formation autour de git et git lab
Formation autour de git et git labFormation autour de git et git lab
Formation autour de git et git lab
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
 
Github
GithubGithub
Github
 
Git training v10
Git training v10Git training v10
Git training v10
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
 
DevOps Monitoring and Alerting
DevOps Monitoring and AlertingDevOps Monitoring and Alerting
DevOps Monitoring and Alerting
 
Github PowerPoint Final
Github PowerPoint FinalGithub PowerPoint Final
Github PowerPoint Final
 
Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsAccess Data from XPages with the Relational Controls
Access Data from XPages with the Relational Controls
 
DevOps topologies
DevOps topologiesDevOps topologies
DevOps topologies
 
Introduction to Git and Github
Introduction to Git and Github Introduction to Git and Github
Introduction to Git and Github
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
 
Introducing GitLab
Introducing GitLabIntroducing GitLab
Introducing GitLab
 
DevOps
DevOps DevOps
DevOps
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)
 
Git vs svn
Git vs svnGit vs svn
Git vs svn
 
IoT testing and quality assurance indicthreads
IoT testing and quality assurance indicthreadsIoT testing and quality assurance indicthreads
IoT testing and quality assurance indicthreads
 
DevOps Roadmap.pptx
DevOps Roadmap.pptxDevOps Roadmap.pptx
DevOps Roadmap.pptx
 
CI/CD Best Practices for Your DevOps Journey
CI/CD Best  Practices for Your DevOps JourneyCI/CD Best  Practices for Your DevOps Journey
CI/CD Best Practices for Your DevOps Journey
 

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

Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 

Recently uploaded (20)

Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
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
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 

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