SlideShare a Scribd company logo
1 of 23
Developer Days München
                              12. - 15. April 2012




Making you a GIT hero
   Part 3/3: Gerrit
Developer Days München
                                 12. - 15. April 2012



Your Presenter

Hi,

I’m Steffen!



Please give me feedback
about this presentation!



steffen.gebert@typo3.org

@StGebert on Twitter
Developer Days München
                                                                                  12. - 15. April 2012



           I live in Würzburg

                                                       Studied Computer science there




Photo by Juergen Mangelsdorf (CC)
http://www.flickr.com/photos/22084572@N07/2217991811/
Developer Days München
                                                             12. - 15. April 2012



           Day-to-day Job

      Now PhD student and researcher

          • Network and Cloud Security

          • Core Network Routing




Photo by Paul Soler-Moya (CC)
http://www.flickr.com/photos/40351463@N00/3927504524/
Developer Days München
                               12. - 15. April 2012



TYPO3 Core Team Member
Developer Days München
                                       12. - 15. April 2012



TYPO3.org Server Admin Team Member
Developer Days München
                                                       12. - 15. April 2012



Questions!

 • Who already worked with Git (besides yesterday/today)?

 • Who already worked with Gerrit?

 • Who already has a Gerrit setup?

 • Who knows, what Gerrit is?
Developer Days München
                                             12. - 15. April 2012



What’s Gerrit?

 • Gerrit is for Quality Assurance!

 • Make sure that the author does it
Developer Days München
                                                           12. - 15. April 2012



Preparation

 • Please clone the Sandbox project:




        git clone --recursive git://git.typo3.org/
                       Sandbox.git
Developer Days München
                                                         12. - 15. April 2012



About Gerrit

 • Web-based Code Review Software

 • Git server, SSH server

 • Written in Java

 • Developed by Google (for Android Development)

 • Relies on Git as Version Control System (VCS)

 • Gatekeeper in front of the Git repositories

 • .. and the reason, why TYPO3 migrated to Git
Developer Days München
                                     12. - 15. April 2012




Git Architecture




Git with Gerrit Architecture
Developer Days München
                                                        12. - 15. April 2012



Gerrit Usage in TYPO3 world

Gerrit is used by

 • TYPO3v4/v6

    • workspaces, extbase, fluid, .. Subprojects

 • FLOW3

 • Phoenix

 • Few elitist extensions

    • news, community, extension_builder

 • Working hard on support for community extensions!
Developer Days München
                                                      12. - 15. April 2012



Ages ago...

 • Reviews using the TYPO3 Core Team Mailing list
Developer Days München
                                      12. - 15. April 2012



Reviews through Mailing Lists
Developer Days München
                                                            12. - 15. April 2012



Reviews through Mailing Lists

Keeping track of changes was.. well.. a manual job!
Developer Days München
                                      12. - 15. April 2012



Back to Gerrit!

 • that’s where you find it:

   • https://review.typo3.org
Developer Days München
                                                            12. - 15. April 2012



Software Reviews

 • All code contains errors, more or less

 • Easier to spot them with four, six, eight, ..., eyes

 • No code must be merged without review



 • Review types

   • Functional review

   • Code review
Developer Days München
                                                      12. - 15. April 2012



Functional Review

 • Make sure that a change

   • fixes the bug / implements the feature as advertised

   • doesn’t hurt other functionality

   • is robust



 • Testing methods

   • Automatic (Selenium, Unit Test)

   • Manual (your browser + your mouse + your brain)
Developer Days München
                                                      12. - 15. April 2012



Code Review

 • The change to the code

   • is correct (it does, what it should do)

   • is well-coded (robust, performant, etc.)

   • respects Coding Guide Lines (TYPO3 CGL)



 • Testing methods

   • Automatic: CGL, Unit tests

   • Manual: Reading the code
Developer Days München
                                                    12. - 15. April 2012



Required Votes

 • Votings required to merge a change:


                                     Code
                       Verified
                                    Review
          Team
                      ✓ (+2)        ✓ (+2)
         Member

         Anyone          +1              +1

 • More reviews are welcome!

 • Merging happens by team member pressing a “Submit”
Developer Days München
                                                   12. - 15. April 2012



Git Help

 • The best™ Git Documentation ever:

   • http://wiki.typo3.org/Git

 • Please set up the Gerrit commit hook

   • Contribution Walkthrough with Command Line
Developer Days München
                                                   12. - 15. April 2012



 Pushing a Change to Gerrit


   git push origin HEAD:refs/for/<release-branch>




   the remote to push to
(could be also github, etc.)
Developer Days München
                                                 12. - 15. April 2012



Pushing a Change to Gerrit


 git push origin HEAD:refs/for/<release-branch>




    state of your   pseudo-branch target branch
    working tree       in Gerrit     (master,
                                  TYPO3_4-6)

More Related Content

What's hot

What's hot (20)

Gerrit + Jenkins = Continuous Delivery For Big Data
Gerrit + Jenkins = Continuous Delivery For Big DataGerrit + Jenkins = Continuous Delivery For Big Data
Gerrit + Jenkins = Continuous Delivery For Big Data
 
Integrating Git, Gerrit and Jenkins/Hudson with Mylyn
Integrating Git, Gerrit and Jenkins/Hudson with MylynIntegrating Git, Gerrit and Jenkins/Hudson with Mylyn
Integrating Git, Gerrit and Jenkins/Hudson with Mylyn
 
Git and Gerrit Code Review - Tech Talk - 2010_09_23
Git and Gerrit Code Review - Tech Talk - 2010_09_23Git and Gerrit Code Review - Tech Talk - 2010_09_23
Git and Gerrit Code Review - Tech Talk - 2010_09_23
 
Gerrit jenkins-big data-continuous-delivery
Gerrit jenkins-big data-continuous-deliveryGerrit jenkins-big data-continuous-delivery
Gerrit jenkins-big data-continuous-delivery
 
How Git and Gerrit make you more productive
How Git and Gerrit make you more productiveHow Git and Gerrit make you more productive
How Git and Gerrit make you more productive
 
Git strategies for DevOps
Git strategies for DevOpsGit strategies for DevOps
Git strategies for DevOps
 
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
 
Intro to Git & GitHub
Intro to Git & GitHubIntro to Git & GitHub
Intro to Git & GitHub
 
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
Git Tutorial | Git Basics - Branching, Merging, Rebasing | Learn Git | DevOps...
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub plugin
 
Introducing GitLab
Introducing GitLabIntroducing GitLab
Introducing GitLab
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
 
Speed up Continuous Delivery with BigData Analytics
Speed up Continuous Delivery with BigData AnalyticsSpeed up Continuous Delivery with BigData Analytics
Speed up Continuous Delivery with BigData Analytics
 
Gerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review: how to script a plugin with Scala and GroovyGerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review: how to script a plugin with Scala and Groovy
 
What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020
 
Git & GitLab
Git & GitLabGit & GitLab
Git & GitLab
 
GitHub
GitHubGitHub
GitHub
 
Git/Gerrit with TeamForge
Git/Gerrit with TeamForgeGit/Gerrit with TeamForge
Git/Gerrit with TeamForge
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
 
Up GitLab Presentation 2015
Up GitLab Presentation 2015Up GitLab Presentation 2015
Up GitLab Presentation 2015
 

Similar to Gerrit Workshop

Product teams & software development
Product teams & software developmentProduct teams & software development
Product teams & software development
Angela Wise
 
PFCongres 2012 - Rock Solid Deployment of PHP Apps
PFCongres 2012 - Rock Solid Deployment of PHP AppsPFCongres 2012 - Rock Solid Deployment of PHP Apps
PFCongres 2012 - Rock Solid Deployment of PHP Apps
Pablo Godel
 

Similar to Gerrit Workshop (20)

EGit and Gerrit Code Review - Eclipse DemoCamp Bonn - 2010-11-16
EGit and Gerrit Code Review - Eclipse DemoCamp Bonn - 2010-11-16EGit and Gerrit Code Review - Eclipse DemoCamp Bonn - 2010-11-16
EGit and Gerrit Code Review - Eclipse DemoCamp Bonn - 2010-11-16
 
A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5
 
Untangling DevOps - A high-level overview and how we got here
Untangling DevOps -  A high-level overview and how we got hereUntangling DevOps -  A high-level overview and how we got here
Untangling DevOps - A high-level overview and how we got here
 
Product teams & software development
Product teams & software developmentProduct teams & software development
Product teams & software development
 
Grails & DevOps: continuous integration and delivery in the cloud
Grails & DevOps: continuous integration and delivery in the cloudGrails & DevOps: continuous integration and delivery in the cloud
Grails & DevOps: continuous integration and delivery in the cloud
 
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
 
Collaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source DocumentationCollaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source Documentation
 
DevOpsGuys - Getting Started with DevOps - Github/Azure Webinar
DevOpsGuys - Getting Started with DevOps - Github/Azure WebinarDevOpsGuys - Getting Started with DevOps - Github/Azure Webinar
DevOpsGuys - Getting Started with DevOps - Github/Azure Webinar
 
Designing in the open
Designing in the openDesigning in the open
Designing in the open
 
Webinar on How to use MyAppConverter
Webinar on How to use  MyAppConverterWebinar on How to use  MyAppConverter
Webinar on How to use MyAppConverter
 
Optimizing development processes with tridion
Optimizing development processes with tridionOptimizing development processes with tridion
Optimizing development processes with tridion
 
What designers can learn from (code) review
What designers can learn from (code) reviewWhat designers can learn from (code) review
What designers can learn from (code) review
 
DevOps and its impact
DevOps and its impactDevOps and its impact
DevOps and its impact
 
Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Mastering BDD - Eran Kinsbruner Workshop Quest 2018Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Mastering BDD - Eran Kinsbruner Workshop Quest 2018
 
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareLessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
 
PFCongres 2012 - Rock Solid Deployment of PHP Apps
PFCongres 2012 - Rock Solid Deployment of PHP AppsPFCongres 2012 - Rock Solid Deployment of PHP Apps
PFCongres 2012 - Rock Solid Deployment of PHP Apps
 
Agility via Software Engineering Practices - Agile Tour Montreal 2015
Agility via Software Engineering Practices - Agile Tour Montreal 2015Agility via Software Engineering Practices - Agile Tour Montreal 2015
Agility via Software Engineering Practices - Agile Tour Montreal 2015
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
 
Ship code like a keptn
Ship code like a keptnShip code like a keptn
Ship code like a keptn
 
The DevOps Journey in an Enterprise - DOES 2021
The DevOps Journey in an Enterprise - DOES 2021The DevOps Journey in an Enterprise - DOES 2021
The DevOps Journey in an Enterprise - DOES 2021
 

More from Steffen Gebert

More from Steffen Gebert (20)

Building an IoT SuperNetwork on top of the AWS Global Infrastructure
Building an IoT SuperNetwork on top of the AWS Global InfrastructureBuilding an IoT SuperNetwork on top of the AWS Global Infrastructure
Building an IoT SuperNetwork on top of the AWS Global Infrastructure
 
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
 
Feature Management Platforms
Feature Management PlatformsFeature Management Platforms
Feature Management Platforms
 
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT DevicesServerless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
 
How our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical RoutersHow our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical Routers
 
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
 
Jenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipelineJenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipeline
 
Monitoring Akka with Kamon 1.0
Monitoring Akka with Kamon 1.0Monitoring Akka with Kamon 1.0
Monitoring Akka with Kamon 1.0
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines
 
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins PipelinesAn Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Jenkins Pipelines
Jenkins PipelinesJenkins Pipelines
Jenkins Pipelines
 
Let's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a CertificateLet's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a Certificate
 
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebCleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
 
Investigating the Impact of Network Topology on the Processing Times of SDN C...
Investigating the Impact of Network Topology on the Processing Times of SDN C...Investigating the Impact of Network Topology on the Processing Times of SDN C...
Investigating the Impact of Network Topology on the Processing Times of SDN C...
 
SDN interfaces and performance analysis of SDN components
SDN interfaces and performance analysis of SDN componentsSDN interfaces and performance analysis of SDN components
SDN interfaces and performance analysis of SDN components
 
Git Power-Workshop
Git Power-WorkshopGit Power-Workshop
Git Power-Workshop
 
The Development Infrastructure of the TYPO3 Project
The Development Infrastructure of the TYPO3 ProjectThe Development Infrastructure of the TYPO3 Project
The Development Infrastructure of the TYPO3 Project
 
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-EntwicklungDer Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
 
Official typo3.org infrastructure &
the TYPO3 Server Admin Team
Official typo3.org infrastructure &
the TYPO3 Server Admin TeamOfficial typo3.org infrastructure &
the TYPO3 Server Admin Team
Official typo3.org infrastructure &
the TYPO3 Server Admin Team
 

Recently uploaded

Recently uploaded (20)

AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 

Gerrit Workshop

  • 1. Developer Days München 12. - 15. April 2012 Making you a GIT hero Part 3/3: Gerrit
  • 2. Developer Days München 12. - 15. April 2012 Your Presenter Hi, I’m Steffen! Please give me feedback about this presentation! steffen.gebert@typo3.org @StGebert on Twitter
  • 3. Developer Days München 12. - 15. April 2012 I live in Würzburg Studied Computer science there Photo by Juergen Mangelsdorf (CC) http://www.flickr.com/photos/22084572@N07/2217991811/
  • 4. Developer Days München 12. - 15. April 2012 Day-to-day Job Now PhD student and researcher • Network and Cloud Security • Core Network Routing Photo by Paul Soler-Moya (CC) http://www.flickr.com/photos/40351463@N00/3927504524/
  • 5. Developer Days München 12. - 15. April 2012 TYPO3 Core Team Member
  • 6. Developer Days München 12. - 15. April 2012 TYPO3.org Server Admin Team Member
  • 7. Developer Days München 12. - 15. April 2012 Questions! • Who already worked with Git (besides yesterday/today)? • Who already worked with Gerrit? • Who already has a Gerrit setup? • Who knows, what Gerrit is?
  • 8. Developer Days München 12. - 15. April 2012 What’s Gerrit? • Gerrit is for Quality Assurance! • Make sure that the author does it
  • 9. Developer Days München 12. - 15. April 2012 Preparation • Please clone the Sandbox project: git clone --recursive git://git.typo3.org/ Sandbox.git
  • 10. Developer Days München 12. - 15. April 2012 About Gerrit • Web-based Code Review Software • Git server, SSH server • Written in Java • Developed by Google (for Android Development) • Relies on Git as Version Control System (VCS) • Gatekeeper in front of the Git repositories • .. and the reason, why TYPO3 migrated to Git
  • 11. Developer Days München 12. - 15. April 2012 Git Architecture Git with Gerrit Architecture
  • 12. Developer Days München 12. - 15. April 2012 Gerrit Usage in TYPO3 world Gerrit is used by • TYPO3v4/v6 • workspaces, extbase, fluid, .. Subprojects • FLOW3 • Phoenix • Few elitist extensions • news, community, extension_builder • Working hard on support for community extensions!
  • 13. Developer Days München 12. - 15. April 2012 Ages ago... • Reviews using the TYPO3 Core Team Mailing list
  • 14. Developer Days München 12. - 15. April 2012 Reviews through Mailing Lists
  • 15. Developer Days München 12. - 15. April 2012 Reviews through Mailing Lists Keeping track of changes was.. well.. a manual job!
  • 16. Developer Days München 12. - 15. April 2012 Back to Gerrit! • that’s where you find it: • https://review.typo3.org
  • 17. Developer Days München 12. - 15. April 2012 Software Reviews • All code contains errors, more or less • Easier to spot them with four, six, eight, ..., eyes • No code must be merged without review • Review types • Functional review • Code review
  • 18. Developer Days München 12. - 15. April 2012 Functional Review • Make sure that a change • fixes the bug / implements the feature as advertised • doesn’t hurt other functionality • is robust • Testing methods • Automatic (Selenium, Unit Test) • Manual (your browser + your mouse + your brain)
  • 19. Developer Days München 12. - 15. April 2012 Code Review • The change to the code • is correct (it does, what it should do) • is well-coded (robust, performant, etc.) • respects Coding Guide Lines (TYPO3 CGL) • Testing methods • Automatic: CGL, Unit tests • Manual: Reading the code
  • 20. Developer Days München 12. - 15. April 2012 Required Votes • Votings required to merge a change: Code Verified Review Team ✓ (+2) ✓ (+2) Member Anyone +1 +1 • More reviews are welcome! • Merging happens by team member pressing a “Submit”
  • 21. Developer Days München 12. - 15. April 2012 Git Help • The best™ Git Documentation ever: • http://wiki.typo3.org/Git • Please set up the Gerrit commit hook • Contribution Walkthrough with Command Line
  • 22. Developer Days München 12. - 15. April 2012 Pushing a Change to Gerrit git push origin HEAD:refs/for/<release-branch> the remote to push to (could be also github, etc.)
  • 23. Developer Days München 12. - 15. April 2012 Pushing a Change to Gerrit git push origin HEAD:refs/for/<release-branch> state of your pseudo-branch target branch working tree in Gerrit (master, TYPO3_4-6)

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. - overview of change sets\n- details\n- voting\n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n