Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrithttp://code.google.com/p/gerrithttp://eclipse.org/egit+=Matthias Sohn (SAP)matthias.sohn@sap.comTwitter: @masohn
AgendaGit – einverteiltesVersionierungssystemCode Review mitGerritDemo: 	Entwicklung mit Gerrit Code Review neue Features in EGitQ & A  Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
Die HauptdarstellerGitisteinverteiltesVersionierungssystemEGitisteinEclipse Team Provider fürGithttp://www.eclipse.org/egit/JGitisteineleichtgewichtige Java-BibliothekfürGithttp://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
Geschichte von Git, JGit und EGit2005    LinusTorvaldsinitiiertGit2006    Shawn Pearce initiiert JGit2009    Eclipse entscheidetsichfürGit            JGit/EGit ziehen um nach eclipse.org	 SAP beteiligtsichJGit/EGit-ProjektebenutzenGerrit 3/2010 JGit/EGit Release 0.7 (erstes Release bei Eclipse)  6/2010 Release 0.8 (Helios) 9/2010 Release 0.9 (Helios SR1)2010/11 Releases 0.10 – 0.12            3/2011 Eclipse Community Award: Most Innovative new feature6/2011 Release 1.0 (Eclipse Indigo)Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, SAP AG
Git – einverteiltesVersionierungssystem  JederEntwicklerbesitzteinkomplettes RepositoryVerteilteVersionierungssysteme (DVCS):Git, Mercurial, Bazaar, …Git: 2005 für die Linux-Kernel-EntwicklungGitistimKommen:  Linux, Android, Eclipse, Ruby on Rails …
Github
 Integration in Eclipse, Netbeans, XCodeEffiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem  Gitversioniert Repositories, nicht FilesAdded File 1Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem  Gitversioniert Repositories, nicht Files: Commit erzeugtneue Version des Repositories
 Version ist global eindeutigüber Hash-Wert (SHA-1)1Added File 1CommitEffiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem  Gitversioniert Repositories, nicht FilesEdited File 1Added File 21Added File 1Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem  Gitversioniert Repositories, nicht FilesEdited File 1Added File 22Commit1Added File 1Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem  Branches: Zeiger auf CommitsEdited File 1Added File 22master1Added File 1Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem  Clonen: Duplizieren des RepositoriescloneEdited File 1Added File 2Edited File 1Added File 222masterorigin/master11Added File 1Added File 1Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem  Arbeitenmitlokalen branchesfeature1Edited File 1Added File 22origin/master1Added File 1Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem  Arbeitenmitlokalen branchesfeature1Edited File 23Edited File 1Added File 22origin/master1Added File 1Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem  Arbeitenmitlokalen branchespushstefanfeature133Edited File 2Edited File 2Edited File 1Added File 2Edited File 1Added File 222origin/mastermaster11Added File 1Added File 1Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem  Wiekommtmein Commit in den zentralen master-branch?stefanfeature133Edited File 2Edited File 2Edited File 1Added File 2Edited File 1Added File 222origin/mastermaster11Added File 1Added File 1Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
Git – einverteiltesVersionierungssystem  Wiekommtmein Commit in den zentralen master-branch?JederEntwicklerpusheddirekt
Integrationsmanager merged
Gerrit peer code reviewstefanfeature133Edited File 2Edited File 2Edited File 1Added File 2Edited File 1Added File 222origin/mastermaster11Added File 1Added File 1Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by Stefan Lay, Edwin Kempin, SAP AG
Neue* Features in Egit 1.0Release 0.10 Pull
 Rebase
 Cherry-Pick
 Merge tool
 http Authentifizierung* seit 0.9Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, SAP AG
Neue* Features in Egit 1.0Release 0.10 Pull
 Rebase
 Cherry-Pick
 Merge tool
 http AuthentifizierungRelease 0.11 Fetch from Gerrit
 Push to / Fetch from Upstream
 Tree Compare
 Mylyn Integration* seit 0.9Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, SAP AG
Neue* Features in Egit 1.0Release 0.10 Pull
 Rebase
 Cherry-Pick
 Merge tool
 http AuthentifizierungRelease 0.11 Fetch from Gerrit
 Push to / Fetch from Upstream
 Tree Compare
 Mylyn IntegrationRelease 0.12 Gerrit Configuration
 Git config in preferences
 Gerrit Mylyn connector* seit 0.9Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, SAP AG
Neue* Features in Egit 1.0Release 0.10 Pull
 Rebase
 Cherry-Pick
 Merge tool
 http AuthentifizierungRelease 0.11 Fetch from Gerrit
 Push to / Fetch from Upstream
 Tree Compare
 Mylyn IntegrationRelease 0.12 Gerrit Configuration
 Git config in preferences
 Gerrit Mylyn connectorRelease 1.0 Commit Search und Commit Viewer
 Staging View
 Blame
 GitHub Mylyn connector* seit 0.9Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, SAP AG
EtwasStatistikZwischen 0.9 und 1.0 1013 commits in EGit
 796 commits in JGitCommitter (Contributor): EGit: 15 (47), JGit: 9 (32)Fixed Bugs 455 egit + jgitIndigo packages: RCP/RAP, Modeling and LinuxTools* seit 0.9Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, SAP AG

Effiziente Entwicklungsprozesse mit Git, EGit und Gerrit - Intland Technology Day Stuttgart 2011/06/08