Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

EGit and Gerrit Code Review - Eclipse DemoCamp Bonn - 2010-11-16

3,386 views

Published on

Presentation on EGit and Gerrit Code Review held at Eclipse DemoCamp Bonn Nov 16, 2010

Published in: Technology
  • Be the first to comment

  • Be the first to like this

EGit and Gerrit Code Review - Eclipse DemoCamp Bonn - 2010-11-16

  1. 1. EGit & Gerrit Code Review Towards Contributor's Heaven http://eclipse.org/egit http://code.google.com/p/gerrit/ Matthias Sohn (SAP) matthias.sohn@sap.com + =
  2. 2. Git … a distributed revision control system built by the Linux project to automate patch workflow Distributed means no central repository • No central authority! • Easy offline usage • Easy to fork a project • Protected against manipulation by cryptographic hashes Really good at merging • Coordination only needed "after the fact” • Easier to rejoin (or refresh) forked projects Structured around commits (i.e. patches) • Integrates with email channel • Tools for identifying problem commits (git bisect) • Tools for restructuring branches w/ specific commits Using Git in Eclipse | © 2010 by C. Aniszczyk and M. Sohn
  3. 3. Git at Eclipse Eclipse defined a roadmap to move to Git in 2009 CVS is deprecated; SVN will be deprecated in the future EGit is an Eclipse Team provider for Git http://www.eclipse.org/egit/ JGit is a lightweight Java library implementing Git http://www.eclipse.org/jgit/ The goal is to build an Eclipse community around Git EGit and JGit are still beta and we want to establish a feedback loop to improve the tooling Using Git in Eclipse | © 2010 by C. Aniszczyk and M. Sohn
  4. 4. History of JGit and EGit 2005 Linus Torvalds starts Git 2006 Shawn Pearce starts JGit 2009 Eclipse decides for Git Roadmap JGit/EGit move to eclipse.org 3/2010 Released 0.7 (first release at Eclipse) Diff/Merge Algorithms, Automatic IP Logs 6/2010 Released 0.8 (Helios) Usability Improvements, Git Repositories View, Tagging 9/2010 Released 0.9 (Helios SR1) Merge, Synchronize View, .gitignore Planned: 12/2010 0.10 (Helios SR2) 3/2011 0.11 6/2011 1.0 (Indigo) Using Git in Eclipse | © 2010 by C. Aniszczyk and M. Sohn
  5. 5. What is Peer Code Review? 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 … best an integral part of coding process Debugging someone else's broken code ... involuntary code review, not so good Guido van Rossum [1] [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Using Git in Eclipse | © 2010 by C. Aniszczyk and M. Sohn
  6. 6. Code Review – Benefits Four eyes catch more bugs Coding standards help readability → better code Mentoring of new developers Establish trust relationships Good alternative to pair programming Guido van Rossum [1] [1] http://code.google.com/p/rietveld/downloads/detail?name=Mondrian2006.pdf Using Git in Eclipse | © 2010 by C. Aniszczyk and M. Sohn
  7. 7. Code Review @ Eclipse in Bugzilla Using Git in Eclipse | © 2010 by C. Aniszczyk and M. Sohn
  8. 8. Eclipse – Review Process Contributors • create patch using CVS, SVN, Git • attach patch to bug in Bugzilla Committers • do code and IP review in Bugzilla • initiate IP review for changes > 250 loc • commit accepted changes IP Team • does IP reviews Using Git in Eclipse | © 2010 by C. Aniszczyk and M. Sohn
  9. 9. Gerrit Code Review Gerrit is a Code Review system based on JGit http://code.google.com/p/gerrit/ Also serves as a git server adding access control and workflow Used by • Android https://review.source.android.com/ • JGit, EGit http://egit.eclipse.org/r/ • Google, SAP, … Eclipse wants to use it … Using Git in Eclipse | © 2010 by C. Aniszczyk and M. Sohn
  10. 10. Gerrit http://egit.eclipse.org/r/ - change,825Using Git in Eclipse | © 2010 by C. Aniszczyk and M. Sohn
  11. 11. Gerrit Workflow Using Git in Eclipse | © 2010 by C. Aniszczyk and M. Sohn
  12. 12. 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
  13. 13. Demo: Using EGit and Gerrit Code Review Using Git in Eclipse | © 2010 by C. Aniszczyk and M. Sohn
  14. 14. Conclusion EGit and JGit are evolving quickly Gerrit enables a nice code review workflow Git supports convenient branching and merging Git is very fast and scales well Eclipse and major other OS projects are moving to Git Git and Gerrit kick ass! Using Git in Eclipse | © 2010 by C. Aniszczyk and M. Sohn
  15. 15. Git Resources http://git-scm.com/documentation is your friend Watch Linus' talk at Google http://www.youtube.com/watch?v=4XpnKHJAok8 Read the Pro Git book - http://progit.org/book/ Using Git in Eclipse | © 2010 by C. Aniszczyk and M. Sohn
  16. 16. Features EGit 0.10 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 .gitignore git-checkout git-mv git-config git-cherry git daemon git-cherry-pick git-notes git-fast-export git-count-objects Visual merge tool 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 ** planned for 0.10, * planned for 0.11 supported, partial, missing, irrelevant for EGit
  17. 17. Git at Eclipse EGit and JGit developed at http://egit.eclipse.org http://git.eclipse.org/ hosts live Eclipse Git repos http://dev.eclipse.org/git/index.html git mirrors for CVS Read-only copies kept up-to-date Using Git in Eclipse | © 2010 by C. Aniszczyk and M. Sohn

×