SlideShare una empresa de Scribd logo
1 de 56
Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit http://code.google.com/p/gerrit http://eclipse.org/egit EdwinKempin, Dr. Stefan Lay (SAP) edwin.kempin@sap.com,  stefan.lay@sap.com Twitter: @stefanlay + =
Agenda Git – einverteiltesVersionierungssystem Code Review mitGerrit Demo: LebenszykluseinerÄnderung Q & A    Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
Die Hauptdarsteller GitisteinverteiltesVersionierungssystem EGitisteinEclipse Team Provider fürGit http://www.eclipse.org/egit/ JGitisteineleichtgewichtige Java-BibliothekfürGit http://www.eclipse.org/jgit/ Gerritistein Code-Review-System, basierend auf JGit  http://code.google.com/p/gerrit/ Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, SAP AG
Git – einverteiltesVersionierungssystem    JederEntwicklerbesitzteinkomplettes Repository VerteilteVersionierungssysteme (DVCS): Git, Mercurial, Bazaar, … Git: 2005 für die Linux-Kernel-Entwicklung GitistimKommen:  ,[object Object]
Github
 Integration in Eclipse, Netbeans, XCodeEffiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
Geschichte von Git, JGit und EGit 2005    LinusTorvaldsinitiiertGit 2006    Shawn Pearce initiiert JGit 2009    Eclipse entscheidetsichfürGit            JGit/EGit ziehen um nach eclipse.org	 SAP beteiligtsich JGit/Egit-ProjektebenutzenGerrit  3/2010 JGit/EGit Release 0.7 (erstes Release bei Eclipse)   2010/11 Releases 0.8 – 0.12             3/2011 Eclipse Community Award: Most Innovative new feature 5/2011 JGit proposed for JAX innovation award 6/2011 Release 1.0 (Eclipse Indigo) Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, SAP AG
Git – einverteiltesVersionierungssystem    Gitversioniert Repositories, nicht Files Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem    Gitversioniert Repositories, nicht Files: ,[object Object]
 Version ist global eindeutigüber Hash-Wert (SHA-1)1 Added File 1 Commit Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem    Gitversioniert Repositories, nicht Files Edited File 1 Added File 2 1 Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem    Gitversioniert Repositories, nicht Files Edited File 1 Added File 2 2 Commit 1 Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem    Branches: Zeiger auf Commits Edited File 1 Added File 2 2 master 1 Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem    Clonen: Duplizieren des Repositories clone Edited File 1 Added File 2 Edited File 1 Added File 2 2 2 master origin/ master 1 1 Added File 1 Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem    Arbeitenmitlokalen branches feature1 Edited File 1 Added File 2 2 origin/ master 1 Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem    Arbeitenmitlokalen branches feature1 Edited File 2 3 Edited File 1 Added File 2 2 origin/ master 1 Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem    Arbeitenmitlokalen branches push stefan feature1 3 3 Edited File 2 Edited File 2 Edited File 1 Added File 2 Edited File 1 Added File 2 2 2 origin/ master master 1 1 Added File 1 Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem    Wiekommtmein Commit in den zentralen master-branch? stefan feature1 3 3 Edited File 2 Edited File 2 Edited File 1 Added File 2 Edited File 1 Added File 2 2 2 origin/ master master 1 1 Added File 1 Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem    Wiekommtmein Commit in den zentralen master-branch? ,[object Object]
Integrationsmanager merged
Gerrit peer code reviewstefan feature1 3 3 Edited File 2 Edited File 2 Edited File 1 Added File 2 Edited File 1 Added File 2 2 2 origin/ master master 1 1 Added File 1 Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
Gerrit ? Code Review | © 2010 by M. Sohn
Gerrit Server, der die zentralenGit Repositories verwaltet Gerrit Code Review | © 2010 by M. Sohn
Gerrit Access Control Gerrit Code Review | © 2010 by M. Sohn
Gerrit Access Control Gerrit Code Review | © 2010 by M. Sohn
Gerrit Access Control Gerrit Code Review | © 2010 by M. Sohn
Gerrit Access Control Gerrit Code Review | © 2010 by M. Sohn
Gerrit Code Review Gerrit Code Review | © 2010 by M. Sohn
Gerrit Code Review Gerrit Code Review | © 2010 by M. Sohn
Gerrit Code Review Gerrit Code Review | © 2010 by M. Sohn
Gerrit Code Review Gerrit Code Review | © 2010 by M. Sohn
Code Review – Vorteile Guido van Rossum [1] [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Code Review | © 2010 by M. Sohn
Code Review – Vorteile Guido van Rossum [1] VierAugenfindenmehr Bugs [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Code Review | © 2010 by M. Sohn
Code Review – Vorteile Guido van Rossum [1] VierAugenfindenmehr Bugs Einhaltung von Coding Standards [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Code Review | © 2010 by M. Sohn
Code Review – Vorteile Guido van Rossum [1] VierAugenfindenmehr Bugs Einhaltung von Coding Standards Mentoring von neuenEntwicklern [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Code Review | © 2010 by M. Sohn
Code Review – Vorteile Guido van Rossum [1] VierAugenfindenmehr Bugs Einhaltung von Coding Standards Mentoring von neuenEntwicklern Etablierung von Vertrauensverhältnissen [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Code Review | © 2010 by M. Sohn
Code Review – Vorteile Guido van Rossum [1] VierAugenfindenmehr Bugs Einhaltung von Coding Standards Mentoring von neuenEntwicklern Etablierung von Vertrauensverhältnissen Gute Alternative zuPair Programming [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Code Review | © 2010 by M. Sohn
Wiefunktioniert Code Review in Gerrit? Code Review | © 2010 by M. Sohn
Gerrit – Extreme Branching Code Review | © 2010 by M. Sohn
Ein Branch per Feature Code Review | © 2010 by M. Sohn
Ein Branch per Feature Master Branch enthältnur Changes, die ge-reviewed und approved  wurden Code Review | © 2010 by M. Sohn
Ein Branch per Feature Master Branch enthältnur Changes, die ge-reviewed und approved  wurden Jeder Feature Branch basiert auf dem Master Branch Code Review | © 2010 by M. Sohn
Ein Branch per Feature Master Branch enthältnur Changes, die ge-reviewed und approved  wurden Jeder Feature Branch basiert auf dem Master Branch Ein Change kann abandoned (aufgegeben) werden Code Review | © 2010 by M. Sohn
Gerrit - Workflow Code Review | © 2010 by M. Sohn
Gerrit http://egit.eclipse.org/r/ - change,825 Code Review | © 2010 by M. Sohn
Gerrit Was istsonstnochwissenswert? Code Review | © 2010 by M. Sohn
Gerrit Gerrit = 4. Generation Code Review @ Google Code Review | © 2010 by M. Sohn
Gerrit Gerrit = 4. Generation Code Review @ Google Open Source mit Apache 2 Lizenz Code Review | © 2010 by M. Sohn
Gerrit Gerrit = 4. Generation Code Review @ Google Open Source mit Apache 2 Lizenz Gerritbasiert auf JGit und GWT Code Review | © 2010 by M. Sohn
Gerrit Gerrit = 4. Generation Code Review @ Google Open Source mit Apache 2 Lizenz Gerritbasiert auf JGit und GWT Verwender: ,[object Object]
JGit, EGit
Google, SAP, …
Eclipse istinteressiertCode Review | © 2010 by M. Sohn
Gerrit Gerrit = 4. Generation Code Review @ Google Open Source mit Apache 2 Lizenz Gerritbasiert auf JGit und GWT Verwender: ,[object Object]
JGit, EGit
Google, SAP, …

Más contenido relacionado

Destacado

Egit democamp-darmstadt-2011-06-21
Egit democamp-darmstadt-2011-06-21Egit democamp-darmstadt-2011-06-21
Egit democamp-darmstadt-2011-06-21Stefan Lay
 
Egit democamp-karlsruhe-2011-11-29
Egit democamp-karlsruhe-2011-11-29Egit democamp-karlsruhe-2011-11-29
Egit democamp-karlsruhe-2011-11-29Stefan Lay
 
Legality in business law
Legality in business law Legality in business law
Legality in business law Babasab Patil
 
세종학교이야기 김태균 V2003
세종학교이야기 김태균 V2003세종학교이야기 김태균 V2003
세종학교이야기 김태균 V2003JUNGEUN KANG
 
Onboarding For Public Private And Hybrid Clouds Aws 30.04.09
Onboarding For Public Private And Hybrid Clouds Aws 30.04.09Onboarding For Public Private And Hybrid Clouds Aws 30.04.09
Onboarding For Public Private And Hybrid Clouds Aws 30.04.09Chris Purrington
 
It's all about feedback - code review as a great tool in the agile toolbox
It's all about feedback - code review as a great tool in the agile toolboxIt's all about feedback - code review as a great tool in the agile toolbox
It's all about feedback - code review as a great tool in the agile toolboxStefan Lay
 
How to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanHow to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanPost Planner
 

Destacado (7)

Egit democamp-darmstadt-2011-06-21
Egit democamp-darmstadt-2011-06-21Egit democamp-darmstadt-2011-06-21
Egit democamp-darmstadt-2011-06-21
 
Egit democamp-karlsruhe-2011-11-29
Egit democamp-karlsruhe-2011-11-29Egit democamp-karlsruhe-2011-11-29
Egit democamp-karlsruhe-2011-11-29
 
Legality in business law
Legality in business law Legality in business law
Legality in business law
 
세종학교이야기 김태균 V2003
세종학교이야기 김태균 V2003세종학교이야기 김태균 V2003
세종학교이야기 김태균 V2003
 
Onboarding For Public Private And Hybrid Clouds Aws 30.04.09
Onboarding For Public Private And Hybrid Clouds Aws 30.04.09Onboarding For Public Private And Hybrid Clouds Aws 30.04.09
Onboarding For Public Private And Hybrid Clouds Aws 30.04.09
 
It's all about feedback - code review as a great tool in the agile toolbox
It's all about feedback - code review as a great tool in the agile toolboxIt's all about feedback - code review as a great tool in the agile toolbox
It's all about feedback - code review as a great tool in the agile toolbox
 
How to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanHow to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media Plan
 

Similar a Entwicklertag Karlsruhe 2011

Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsThorsten Kamann
 
MediaInfo: Git DVCS & Requirements Management InfoDay@Intland Software
MediaInfo: Git DVCS & Requirements Management InfoDay@Intland Software MediaInfo: Git DVCS & Requirements Management InfoDay@Intland Software
MediaInfo: Git DVCS & Requirements Management InfoDay@Intland Software Intland Software GmbH
 
Testautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeTestautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeNico Orschel
 
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...Nico Orschel
 
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...Marc Müller
 
Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis
Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis
Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis Intland Software GmbH
 
Einsatz von Git im Unternehmen
Einsatz von Git im UnternehmenEinsatz von Git im Unternehmen
Einsatz von Git im Unternehmenoose
 
Update TYPO3 V4.5 > 6.2 LTS
Update TYPO3 V4.5 > 6.2 LTSUpdate TYPO3 V4.5 > 6.2 LTS
Update TYPO3 V4.5 > 6.2 LTSCS2 AG
 
Vorstellung von CollabNet TeamForge 8.0 (German)
Vorstellung von CollabNet TeamForge 8.0 (German)Vorstellung von CollabNet TeamForge 8.0 (German)
Vorstellung von CollabNet TeamForge 8.0 (German)CollabNet
 
Quo vadis DevOps
Quo vadis DevOpsQuo vadis DevOps
Quo vadis DevOpscusy GmbH
 
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas HirtFMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas HirtVerein FM Konferenz
 
DWX 2017 - GIT im Leben eines VS Entwicklers
DWX 2017 - GIT im Leben eines VS EntwicklersDWX 2017 - GIT im Leben eines VS Entwicklers
DWX 2017 - GIT im Leben eines VS EntwicklersMarc Müller
 
Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI Florian Bosselmann
 
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloudGünzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloudAndreas Günzel
 
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-CommunityGit & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-CommunitySteffen Gebert
 
Elgg - Social Network im Unternehmen
Elgg - Social Network im UnternehmenElgg - Social Network im Unternehmen
Elgg - Social Network im UnternehmenVisionConnect GmbH
 
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge UnternehmenBjoern Reinhold
 
IBM Notes Domino & Verse Update
IBM Notes Domino & Verse UpdateIBM Notes Domino & Verse Update
IBM Notes Domino & Verse Updateeschwalb
 
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch SalzburgSlides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch SalzburgDNUG e.V.
 

Similar a Entwicklertag Karlsruhe 2011 (20)

Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
 
MediaInfo: Git DVCS & Requirements Management InfoDay@Intland Software
MediaInfo: Git DVCS & Requirements Management InfoDay@Intland Software MediaInfo: Git DVCS & Requirements Management InfoDay@Intland Software
MediaInfo: Git DVCS & Requirements Management InfoDay@Intland Software
 
Testautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeTestautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für Fortgeschrittende
 
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
 
Advanced Continuous Integration
Advanced Continuous IntegrationAdvanced Continuous Integration
Advanced Continuous Integration
 
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
 
Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis
Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis
Eclipse DVCS-Day: eGit, Git, Mercurial-Anwendungen in der Praxis
 
Einsatz von Git im Unternehmen
Einsatz von Git im UnternehmenEinsatz von Git im Unternehmen
Einsatz von Git im Unternehmen
 
Update TYPO3 V4.5 > 6.2 LTS
Update TYPO3 V4.5 > 6.2 LTSUpdate TYPO3 V4.5 > 6.2 LTS
Update TYPO3 V4.5 > 6.2 LTS
 
Vorstellung von CollabNet TeamForge 8.0 (German)
Vorstellung von CollabNet TeamForge 8.0 (German)Vorstellung von CollabNet TeamForge 8.0 (German)
Vorstellung von CollabNet TeamForge 8.0 (German)
 
Quo vadis DevOps
Quo vadis DevOpsQuo vadis DevOps
Quo vadis DevOps
 
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas HirtFMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
 
DWX 2017 - GIT im Leben eines VS Entwicklers
DWX 2017 - GIT im Leben eines VS EntwicklersDWX 2017 - GIT im Leben eines VS Entwicklers
DWX 2017 - GIT im Leben eines VS Entwicklers
 
Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI Continuous Integration / Deployment mit Jenkins CI
Continuous Integration / Deployment mit Jenkins CI
 
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloudGünzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
 
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-CommunityGit & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
Git & Gerrit: Verteilte Softwareentwicklung und -reviews in der TYPO3-Community
 
Elgg - Social Network im Unternehmen
Elgg - Social Network im UnternehmenElgg - Social Network im Unternehmen
Elgg - Social Network im Unternehmen
 
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
 
IBM Notes Domino & Verse Update
IBM Notes Domino & Verse UpdateIBM Notes Domino & Verse Update
IBM Notes Domino & Verse Update
 
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch SalzburgSlides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
Slides zum Impulsreferat: HCL UDP - DNUG Stammtisch Salzburg
 

Entwicklertag Karlsruhe 2011

  • 1. Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit http://code.google.com/p/gerrit http://eclipse.org/egit EdwinKempin, Dr. Stefan Lay (SAP) edwin.kempin@sap.com, stefan.lay@sap.com Twitter: @stefanlay + =
  • 2. Agenda Git – einverteiltesVersionierungssystem Code Review mitGerrit Demo: LebenszykluseinerÄnderung Q & A    Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
  • 3. Die Hauptdarsteller GitisteinverteiltesVersionierungssystem EGitisteinEclipse Team Provider fürGit http://www.eclipse.org/egit/ JGitisteineleichtgewichtige Java-BibliothekfürGit http://www.eclipse.org/jgit/ Gerritistein Code-Review-System, basierend auf JGit http://code.google.com/p/gerrit/ Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, SAP AG
  • 4.
  • 6. Integration in Eclipse, Netbeans, XCodeEffiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
  • 7. Geschichte von Git, JGit und EGit 2005    LinusTorvaldsinitiiertGit 2006    Shawn Pearce initiiert JGit 2009    Eclipse entscheidetsichfürGit JGit/EGit ziehen um nach eclipse.org SAP beteiligtsich JGit/Egit-ProjektebenutzenGerrit  3/2010 JGit/EGit Release 0.7 (erstes Release bei Eclipse)   2010/11 Releases 0.8 – 0.12            3/2011 Eclipse Community Award: Most Innovative new feature 5/2011 JGit proposed for JAX innovation award 6/2011 Release 1.0 (Eclipse Indigo) Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, SAP AG
  • 8. Git – einverteiltesVersionierungssystem    Gitversioniert Repositories, nicht Files Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, Edwin Kempin, SAP AG
  • 9.
  • 10. Version ist global eindeutigüber Hash-Wert (SHA-1)1 Added File 1 Commit Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
  • 11. Git – einverteiltesVersionierungssystem    Gitversioniert Repositories, nicht Files Edited File 1 Added File 2 1 Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, Edwin Kempin, SAP AG
  • 12. Git – einverteiltesVersionierungssystem    Gitversioniert Repositories, nicht Files Edited File 1 Added File 2 2 Commit 1 Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, Edwin Kempin, SAP AG
  • 13. Git – einverteiltesVersionierungssystem    Branches: Zeiger auf Commits Edited File 1 Added File 2 2 master 1 Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
  • 14. Git – einverteiltesVersionierungssystem    Clonen: Duplizieren des Repositories clone Edited File 1 Added File 2 Edited File 1 Added File 2 2 2 master origin/ master 1 1 Added File 1 Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, Edwin Kempin, SAP AG
  • 15. Git – einverteiltesVersionierungssystem    Arbeitenmitlokalen branches feature1 Edited File 1 Added File 2 2 origin/ master 1 Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, Edwin Kempin, SAP AG
  • 16. Git – einverteiltesVersionierungssystem    Arbeitenmitlokalen branches feature1 Edited File 2 3 Edited File 1 Added File 2 2 origin/ master 1 Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
  • 17. Git – einverteiltesVersionierungssystem    Arbeitenmitlokalen branches push stefan feature1 3 3 Edited File 2 Edited File 2 Edited File 1 Added File 2 Edited File 1 Added File 2 2 2 origin/ master master 1 1 Added File 1 Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
  • 18. Git – einverteiltesVersionierungssystem    Wiekommtmein Commit in den zentralen master-branch? stefan feature1 3 3 Edited File 2 Edited File 2 Edited File 1 Added File 2 Edited File 1 Added File 2 2 2 origin/ master master 1 1 Added File 1 Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
  • 19.
  • 21. Gerrit peer code reviewstefan feature1 3 3 Edited File 2 Edited File 2 Edited File 1 Added File 2 Edited File 1 Added File 2 2 2 origin/ master master 1 1 Added File 1 Added File 1 Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
  • 22. Gerrit ? Code Review | © 2010 by M. Sohn
  • 23. Gerrit Server, der die zentralenGit Repositories verwaltet Gerrit Code Review | © 2010 by M. Sohn
  • 24. Gerrit Access Control Gerrit Code Review | © 2010 by M. Sohn
  • 25. Gerrit Access Control Gerrit Code Review | © 2010 by M. Sohn
  • 26. Gerrit Access Control Gerrit Code Review | © 2010 by M. Sohn
  • 27. Gerrit Access Control Gerrit Code Review | © 2010 by M. Sohn
  • 28. Gerrit Code Review Gerrit Code Review | © 2010 by M. Sohn
  • 29. Gerrit Code Review Gerrit Code Review | © 2010 by M. Sohn
  • 30. Gerrit Code Review Gerrit Code Review | © 2010 by M. Sohn
  • 31. Gerrit Code Review Gerrit Code Review | © 2010 by M. Sohn
  • 32. Code Review – Vorteile Guido van Rossum [1] [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Code Review | © 2010 by M. Sohn
  • 33. Code Review – Vorteile Guido van Rossum [1] VierAugenfindenmehr Bugs [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Code Review | © 2010 by M. Sohn
  • 34. Code Review – Vorteile Guido van Rossum [1] VierAugenfindenmehr Bugs Einhaltung von Coding Standards [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Code Review | © 2010 by M. Sohn
  • 35. Code Review – Vorteile Guido van Rossum [1] VierAugenfindenmehr Bugs Einhaltung von Coding Standards Mentoring von neuenEntwicklern [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Code Review | © 2010 by M. Sohn
  • 36. Code Review – Vorteile Guido van Rossum [1] VierAugenfindenmehr Bugs Einhaltung von Coding Standards Mentoring von neuenEntwicklern Etablierung von Vertrauensverhältnissen [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Code Review | © 2010 by M. Sohn
  • 37. Code Review – Vorteile Guido van Rossum [1] VierAugenfindenmehr Bugs Einhaltung von Coding Standards Mentoring von neuenEntwicklern Etablierung von Vertrauensverhältnissen Gute Alternative zuPair Programming [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Code Review | © 2010 by M. Sohn
  • 38. Wiefunktioniert Code Review in Gerrit? Code Review | © 2010 by M. Sohn
  • 39. Gerrit – Extreme Branching Code Review | © 2010 by M. Sohn
  • 40. Ein Branch per Feature Code Review | © 2010 by M. Sohn
  • 41. Ein Branch per Feature Master Branch enthältnur Changes, die ge-reviewed und approved wurden Code Review | © 2010 by M. Sohn
  • 42. Ein Branch per Feature Master Branch enthältnur Changes, die ge-reviewed und approved wurden Jeder Feature Branch basiert auf dem Master Branch Code Review | © 2010 by M. Sohn
  • 43. Ein Branch per Feature Master Branch enthältnur Changes, die ge-reviewed und approved wurden Jeder Feature Branch basiert auf dem Master Branch Ein Change kann abandoned (aufgegeben) werden Code Review | © 2010 by M. Sohn
  • 44. Gerrit - Workflow Code Review | © 2010 by M. Sohn
  • 45. Gerrit http://egit.eclipse.org/r/ - change,825 Code Review | © 2010 by M. Sohn
  • 46. Gerrit Was istsonstnochwissenswert? Code Review | © 2010 by M. Sohn
  • 47. Gerrit Gerrit = 4. Generation Code Review @ Google Code Review | © 2010 by M. Sohn
  • 48. Gerrit Gerrit = 4. Generation Code Review @ Google Open Source mit Apache 2 Lizenz Code Review | © 2010 by M. Sohn
  • 49. Gerrit Gerrit = 4. Generation Code Review @ Google Open Source mit Apache 2 Lizenz Gerritbasiert auf JGit und GWT Code Review | © 2010 by M. Sohn
  • 50.
  • 53. Eclipse istinteressiertCode Review | © 2010 by M. Sohn
  • 54.
  • 57. Eclipse istinteressiertShawn Pearce Code Review | © 2010 by M. Sohn
  • 58. No Free Lunch ? -- DEMO Code Review | © 2010 by M. Sohn
  • 59. Code Review – Our Experience Review all changes! Review takes time (1 day … weeks)  Implies parallel workflow  Every team member should do reviews regularly Authors have to wait for the review to happen Git & Gerrit help a lot here Code Review | © 2010 by M. Sohn
  • 60. Code Review – Tips Small changes are much easier to review A change should logically do one thing (not many) No change shall break build or tests Split big changes into series of digestible changes (patch series) - These changes depend on each other - Last change should switch the new feature on Commit message should explain Why - The What should be obvious from the code change Code Review | © 2010 by M. Sohn
  • 61. Conclusion Code Review rocks ! Gerrit enables a nice code review workflow DVCS like Git are powerful Git supports convenient branching and merging Gitis very fast and scales well Code Review | © 2010 by M. Sohn
  • 62. Gerrit Code Review Gerrit developed at http://code.google.com/p/gerrit https://review.source.android.com/Gerrit for Android projects (also Gerrit) Code Review | © 2010 by M. Sohn
  • 63. Git at Eclipse EGit/JGit developed at http://egit.eclipse.org http://git.eclipse.org/hosts live Eclipse Git repos Virgo, Mylyn Review, ScalaModules, SWTBot … http://dev.eclipse.org/git/index.html git mirrors for CVS Read-only copies kept up-to-date Can clone with git:// or http:// Code Review | © 2010 by M. Sohn
  • 64. Git Resources Ask questions on the EGit forum or egit-dev/jgit-dev lists http://git-scm.com/documentation is your friend If you want comedy, watch Linus' talk at Google http://www.youtube.com/watch?v=4XpnKHJAok8 Read the Pro Git book - http://progit.org/book/ Code Review | © 2010 by M. Sohn
  • 65. Gerrit Code Review - Outlook Upcoming proposal for MylynGerrit Connector Port from SQL DB to Cassandra Store review comments as git notes for offline review Support for change dependencies across repositories … Code Review | © 2010 by M. Sohn
  • 66. git-add git-format-patch git-shortlog git-relink git-rev-parse git-am git-gc git-show git-remote git-show-branch git-archive git-grep git-stash git-repack git-verify-tag git-bisect git-init git-status git-replace git-whatchanged git-branch git-log git-submodule git-annotate git-bundle * git-merge * git-tag * git-blame git-checkout git-mv git-config git-cherry .gitignore * git-cherry-pick git-notes git-fast-export git-count-objects git daemon git-clean * git-pull git-fast-import git-difftool * HTTP support git-clone git-push git-filter-branch git-fsck * Mylyn integration git-commit * git-rebase git-mergetool git-get-tar-commit-id * Staging View git-describe git-reset git-pack-refs git-help * Synchronize View git-diff git-revert git-prune git-merge-tree History View git-fetch git-rm git-reflog git-rerere Repositories View Features EGit 0.9 * planned for next release, supported, partial, missing, irrelevant for EGit
  • 67. Gerrit – Rebase Code Review | © 2010 by M. Sohn