Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit<br />http://code.google.com/p/gerrit<br />http://eclipse.org/e...
Agenda<br />Git – einverteiltesVersionierungssystem<br />Code Review mitGerrit<br />Demo: LebenszykluseinerÄnderung<br />Q...
Die Hauptdarsteller<br />GitisteinverteiltesVersionierungssystem<br />EGitisteinEclipse Team Provider fürGit<br />http://w...
Git – einverteiltesVersionierungssystem<br />  <br />JederEntwicklerbesitzteinkomplettes Repository<br />VerteilteVersioni...
Github
 Integration in Eclipse, Netbeans, XCode</li></ul>Effiziente Entwicklungsprozesse mit Eclipse, Git und Gerrit | © 2011 by ...
Geschichte von Git, JGit und EGit<br />2005    LinusTorvaldsinitiiertGit<br />2006    Shawn Pearce initiiert JGit<br />200...
Git – einverteiltesVersionierungssystem<br />  <br />Gitversioniert Repositories, nicht Files<br />Added File 1<br />Effiz...
Git – einverteiltesVersionierungssystem<br />  <br />Gitversioniert Repositories, nicht Files:<br /><ul><li> Commit erzeug...
 Version ist global eindeutigüber Hash-Wert (SHA-1)</li></ul>1<br />Added File 1<br />Commit<br />Effiziente Entwicklungsp...
Git – einverteiltesVersionierungssystem<br />  <br />Gitversioniert Repositories, nicht Files<br />Edited File 1<br />Adde...
Git – einverteiltesVersionierungssystem<br />  <br />Gitversioniert Repositories, nicht Files<br />Edited File 1<br />Adde...
Git – einverteiltesVersionierungssystem<br />  <br />Branches: Zeiger auf Commits<br />Edited File 1<br />Added File 2<br ...
Git – einverteiltesVersionierungssystem<br />  <br />Clonen: Duplizieren des Repositories<br />clone<br />Edited File 1<br...
Git – einverteiltesVersionierungssystem<br />  <br />Arbeitenmitlokalen branches<br />feature1<br />Edited File 1<br />Add...
Git – einverteiltesVersionierungssystem<br />  <br />Arbeitenmitlokalen branches<br />feature1<br />Edited File 2<br />3<b...
Git – einverteiltesVersionierungssystem<br />  <br />Arbeitenmitlokalen branches<br />push<br />stefan<br />feature1<br />...
Git – einverteiltesVersionierungssystem<br />  <br />Wiekommtmein Commit in den zentralen master-branch?<br />stefan<br />...
Git – einverteiltesVersionierungssystem<br />  <br />Wiekommtmein Commit in den zentralen master-branch?<br /><ul><li>Jede...
Integrationsmanager merged
Gerrit peer code review</li></ul>stefan<br />feature1<br />3<br />3<br />Edited File 2<br />Edited File 2<br />Edited File...
Gerrit ?<br />Code Review | © 2010 by M. Sohn<br />
Gerrit<br />Server, der die zentralenGit Repositories verwaltet<br />Gerrit<br />Code Review | © 2010 by M. Sohn<br />
Gerrit<br />Access Control<br />Gerrit<br />Code Review | © 2010 by M. Sohn<br />
Gerrit<br />Access Control<br />Gerrit<br />Code Review | © 2010 by M. Sohn<br />
Gerrit<br />Access Control<br />Gerrit<br />Code Review | © 2010 by M. Sohn<br />
Gerrit<br />Access Control<br />Gerrit<br />Code Review | © 2010 by M. Sohn<br />
Gerrit<br />Code Review<br />Gerrit<br />Code Review | © 2010 by M. Sohn<br />
Gerrit<br />Code Review<br />Gerrit<br />Code Review | © 2010 by M. Sohn<br />
Gerrit<br />Code Review<br />Gerrit<br />Code Review | © 2010 by M. Sohn<br />
Gerrit<br />Code Review<br />Gerrit<br />Code Review | © 2010 by M. Sohn<br />
Code Review – Vorteile<br />Guido van Rossum [1]<br />[1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian...
Code Review – Vorteile<br />Guido van Rossum [1]<br />VierAugenfindenmehr Bugs<br />[1] http://code.google.com/p/rietveld/...
Code Review – Vorteile<br />Guido van Rossum [1]<br />VierAugenfindenmehr Bugs<br />Einhaltung von Coding Standards<br />[...
Code Review – Vorteile<br />Guido van Rossum [1]<br />VierAugenfindenmehr Bugs<br />Einhaltung von Coding Standards<br />M...
Code Review – Vorteile<br />Guido van Rossum [1]<br />VierAugenfindenmehr Bugs<br />Einhaltung von Coding Standards<br />M...
Code Review – Vorteile<br />Guido van Rossum [1]<br />VierAugenfindenmehr Bugs<br />Einhaltung von Coding Standards<br />M...
Wiefunktioniert<br />Code Review<br />in Gerrit?<br />Code Review | © 2010 by M. Sohn<br />
Gerrit – Extreme Branching<br />Code Review | © 2010 by M. Sohn<br />
Ein Branch per Feature<br />Code Review | © 2010 by M. Sohn<br />
Ein Branch per Feature<br />Master Branch enthältnur Changes, die ge-reviewed und approved  wurden<br />Code Review | © 20...
Ein Branch per Feature<br />Master Branch enthältnur Changes, die ge-reviewed und approved  wurden<br />Jeder Feature Bran...
Ein Branch per Feature<br />Master Branch enthältnur Changes, die ge-reviewed und approved  wurden<br />Jeder Feature Bran...
Gerrit - Workflow<br />Code Review | © 2010 by M. Sohn<br />
Gerrit<br />http://egit.eclipse.org/r/ - change,825<br />Code Review | © 2010 by M. Sohn<br />
Gerrit<br />Was istsonstnochwissenswert?<br />Code Review | © 2010 by M. Sohn<br />
Gerrit<br />Gerrit = 4. Generation Code Review @ Google<br />Code Review | © 2010 by M. Sohn<br />
Gerrit<br />Gerrit = 4. Generation Code Review @ Google<br />Open Source mit Apache 2 Lizenz<br />Code Review | © 2010 by ...
Gerrit<br />Gerrit = 4. Generation Code Review @ Google<br />Open Source mit Apache 2 Lizenz<br />Gerritbasiert auf JGit u...
Gerrit<br />Gerrit = 4. Generation Code Review @ Google<br />Open Source mit Apache 2 Lizenz<br />Gerritbasiert auf JGit u...
JGit, EGit
Google, SAP, …
Eclipse istinteressiert</li></ul>Code Review | © 2010 by M. Sohn<br />
Gerrit<br />Gerrit = 4. Generation Code Review @ Google<br />Open Source mit Apache 2 Lizenz<br />Gerritbasiert auf JGit u...
JGit, EGit
Google, SAP, …
Upcoming SlideShare
Loading in...5
×

Entwicklertag Karlsruhe 2011

964

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
964
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Entwicklertag Karlsruhe 2011

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

    Clipping is a handy way to collect important slides you want to go back to later.

×