git at eclipsewiki.eclipse.org/images/f/f7/eclipsedaygoogleplex_egit.pdf · 2010-08-30 · 13...
TRANSCRIPT
![Page 1: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/1.jpg)
Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
Git at Eclipsehttp://eclipse.org/egit
Chris Aniszczyk (Red Hat)[email protected]
http://aniszczyk.org
Shawn Pearce (Google)[email protected]://spearce.org
![Page 2: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/2.jpg)
Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
Agenda
IntroductionHow Git WorksDemos
A tour of EGitGerrit workflow: How the EGit and JGit teams work
ConclusionQ&A
![Page 3: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/3.jpg)
Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
Git and Eclipse
Git is a Distributed Version Control System (DVCS, GPL)
EGit is an Eclipse Team provider for Git (EPL).
JGit is a lightweight Java library implementing Git (EDL).
Technology sub projects (incubation)http://www.eclipse.org/egithttp://www.eclipse.org/jgit
The goal is to build a community around Git at Eclipse
![Page 4: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/4.jpg)
Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
EGit and JGit Diverse Committership
Chris Aniszczyk (Red Hat)Christian Halstrick (SAP)Mik Kersten (Tasktop)Mathias Kinzler (SAP) Stefan Lay (SAP)+ Darius Luzska (Independent) + Benjamin Muskalla (EclipseSource) Mykola Nikishov (Independent)Shawn Pearce (Google)Robin Rosenberg (Dewire)Matthias Sohn (SAP)Remy Suen (IBM) Gunnar Wagenknecht (Ageto)
![Page 5: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/5.jpg)
Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
Git at Eclipse
Eclipse is moving to Git...
http://git.eclipse.org
![Page 6: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/6.jpg)
Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
History2005 Linus Torvalds starts Git2006 Proof-of-concept, quite unusable2007 Index reader, quickdiff2008 Add history view, commit, push/fetch 2009 Eclipse decides on Git; moved to Eclipse.org
3/2010 Released 0.7 Diff/Merge Algorithms, Automatic IP Logs6/2010 Released 0.8 (Helios) Usability Improvements, Git Repositories View, Tagging
9/2010 Planned 0.9 (Helios SR1) Full Merge, Synchronize View, Stashing, .gitignore
12/2010 Planned 1.0 and stable API
![Page 7: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/7.jpg)
Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
Git, Eclipse and Rome
EGit is still beta (incubation by Eclipse terms) and we want to establish a feedback loop to improve the tooling
“Rome wasn’t built in a day”
![Page 8: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/8.jpg)
13
Features in EGit 0.8SupportedPartially supportedNot yet supported* planned for 0.9 in September ’10
git init / git clonegit addgit statusgit commitgit diffgit fetchgit loggit merge*git rebasegit remote
git pullgit pushgit stash*git branchgit taggit checkoutgit config*git format-patchgit mv* / git rmgit reset
![Page 9: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/9.jpg)
Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
Planned work for 0.9 (Sept 2010)
EGitSynchronize viewChangesets Full merge supportUsability polish
JGit git-notes support Git API improvements
![Page 10: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/10.jpg)
Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
No Free Lunch
The best way to learn Git is to use Git
![Page 11: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/11.jpg)
5
Git vs. CVS/SVN
Distributed (git)Full local historyWork off-lineFastRebase patches easilyForks happen,deal with itPowerful merging,allows many branches
Centralized (CVS)NoNoSlowPatches go staleForks are painfulMerging is painful
![Page 12: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/12.jpg)
Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
Agenda
IntroductionHow Git WorksDemosConclusionQ&A
![Page 13: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/13.jpg)
6
How Git works?Staging directory
Images taken from Pro Git book (http://progit.org)
![Page 14: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/14.jpg)
6
How Git works?Typical setup
Images taken from Pro Git book (http://progit.org)
![Page 15: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/15.jpg)
6
How Git works?Any workflow...
Images taken from Pro Git book (http://progit.org)
![Page 16: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/16.jpg)
6
How Git works?Saves state not deltas.
Images taken from Pro Git book (http://progit.org)
![Page 17: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/17.jpg)
7
How Git works?Objects
Images taken from Pro Git book (http://progit.org)
![Page 18: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/18.jpg)
8
How Git works?Branches and tags
v1.3
Images taken from Pro Git book (http://progit.org)
![Page 19: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/19.jpg)
Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
Merging
Merges are just the weaving together of two (or more) local branches into one
However, unlike CVCS, you don't have to specify anything about where you're merging from and to; the trees automatically know what their split point was in the past, and can work it out from there.
Merging is much easier in a DVCS like Git
![Page 20: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/20.jpg)
Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
Agenda
IntroductionHow Git WorksDemosConclusionQ&A
![Page 21: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/21.jpg)
DemoA tour of EGit
![Page 22: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/22.jpg)
DemoGerrit Code Review
“How the EGit and JGit teams work”
![Page 23: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/23.jpg)
Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
Agenda
IntroductionHow Git WorksDemosConclusionQ&A
![Page 24: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/24.jpg)
Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
Conclusion
DVCS like Git are powerful
Git supports convenient branching and merging Git is very fast and scales wellGerrit enables a nice code review workflow
Git is the future SCM of Eclipse
![Page 25: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/25.jpg)
Understanding and Using Git at Eclipse | © 2010 by C. Aniszczyk, S. Pearce, R. Rosenberg and M. Sohn
Resources
Ask questions on the EGit/JGit forums
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 Pro Git: http://progit.org/book/
http://whygitisbetterthanx.com/
Read the EGit User Guidehttp://wiki.eclipse.org/EGit/User_Guide
![Page 26: Git at Eclipsewiki.eclipse.org/images/f/f7/EclipseDayGoogleplex_EGit.pdf · 2010-08-30 · 13 Features in EGit 0.8 Supported Partially supported Not yet supported * planned for 0.9](https://reader035.vdocuments.net/reader035/viewer/2022081607/5ee1b914ad6a402d666c7fa7/html5/thumbnails/26.jpg)
Thanks!Q & A