Weitere ähnliche Inhalte Ähnlich wie Eclipse, Git und Gerrit (20) Eclipse, Git und Gerrit2. Agenda Git – einverteiltesVersionierungssystem Gitbei Eclipse und innerhalbeinesUnternehmens Code Review mitGerrit Demo: LebenszykluseinerÄnderung Q & A Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, 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 | © 2010 by Stefan Lay, SAP AG 4. 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 3/2010 JGit/EGit Release 0.7 (erstes Release bei Eclipse) Diff/Merge Algorithms, Automatic IP Logs 6/2010Release 0.8 (Helios) GitRepositories View, Tagging 9/2010Release 0.9 (Helios SR1) Merge, Synchronize View, .gitignore Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, SAP AG 16. Sehr gute Mergeunterstützung -> lokale Feature-BranchesUnderstanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn 17. Eclipse - Rollen Committer Gewählt in einemformalenProzess KanneigeneÄnderungenohne Review committen Contributor KleineÄnderungen von Committerngereviewt GrößereÄnderungen zusätzlichformales IP review in speziellemgeschütztenBugzilla Review Tool Patches werden an Bugzillaangehängt Kommentare in Bugzilla Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, SAP AG 19. Git @ Eclipse EGit/Jgit-Entwicklung: http://egit.eclipse.org http://git.eclipse.org/hostetlive Eclipse Git Repositories Virgo, Mylyn Review, ScalaModules, SWTBot … http://dev.eclipse.org/git/index.html git mirrors für CVS Read-only Kopien, up-to-date Clonenmitgit:// oder http:// “Git is the future SCM of Eclipse (Chris Aniszczyk)” Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2010 by Stefan Lay, SAP AG 20. Git innerhalb eines Unternehmens? Git wurde für die Entwicklung des Linux Kernels konzipiert Verteilte Entwicklung bringt Vorteile für Contributors in Open-Source-Projekten Comitter / contributor model auch innerhalb eines Unternehmens -> für re-use-Komponenten Produktivität durch lokale Feature branches Gitand Gerrit ermöglichen einen (Peer) Code reviewworkflow 21. Peer Code Review Guido van Rossum, Google [1] When one developer writes code, another developer is asked to review that code A careful line-by-line critique Happens in a non-threatening context Goal is cooperation, not fault-finding Often an integral part of coding process Debugging someone else's broken code – Involuntary code review: Not so good; emotions may flare [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Code Review | © 2010 by M. Sohn 31. Ein Branch per Feature Master branch enthältnurakzeptierteÄnderungen Master verbessertsichmitjedem Commit JederFeature branch basiert auf demMaster branch StabilerStartpunkt Neueste Commits in master könnenleicht in die Änderungintegriertwerden Git rebase isthiersehrhilfreich EineÄnderungkannleichtverworfenwerden KeineandereÄnderunghängt von ihrab Code Review | © 2010 by M. Sohn 52. Code Review – UnsereErfahrungen AlleÄnderungenwerdengereviewt! Ein Review kanndauern(1 Tag … Wochen) Codeautoren müssen auf den Review warten Einparalleler Workflow istnötig JedesTeammitgliedsolltesichbeteiligen Git & Gerritsindaußerordentlichhilfreich Code Review | © 2010 by M. Sohn 53. Code Review – Tipps KleineÄnderungen EineÄnderungsollteatomarsein EineÄnderungsollteweder Build noch Tests brechen GrößereÄnderungensollten in eineSerie von kleinerenunterteiltwerden (patch series) - Die letzteÄnderungschaltet das Feature ein Die Commit message sollte das Warumerläutern - Das Wassollteausdem Code klarhervorgehen Code Review | © 2010 by M. Sohn 54. No Free Lunch -- DEMO The best way to learn Git is to use Git Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn 55. Zusammenfassung DVCS wiez.B. Gitsindleistungsstark Gitunterstützt Branches und Merging hervorragend Gitistschnell und skaliert Gerritermöglichteinen Review workflow Gitund Gerriteignensichfür den EinsatzimUnternehmen Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn 56. 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/ Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn 84. Gerrit- Workflow Every change is reviewed - Authors can invite reviewers - Complex changes reviewed by many Look at the change - Comment on how to improve it - Discuss in context of the change Download the change - test it - improve it Discussion usually leads to new improved change Code Review | © 2010 by M. Sohn 85. Code Review dailyworkwithcodereview improvesquality helpslearningandavoidingsilos reviewtakes time -> parallel workflow -> githelps a lothere peercodereviewandautomatedverification on isolatedchange -> voting -> improvechangebased on comments -> submittomaster -> centralbuildandtest