egit 3.0 and beyond
DESCRIPTION
Talk held at EclipseCon Europe 2013TRANSCRIPT
![Page 1: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/1.jpg)
EGit 3.0 and beyond
Matthias Sohn (SAP)
Robin Stocker
![Page 2: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/2.jpg)
Performance improvementsRecursive merge
3.0 – June 2013
how to merge fix1 ?
2 common base versions
![Page 3: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/3.jpg)
Merge options
Rename detection
3.0 – June 2013
![Page 4: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/4.jpg)
Reset to expression
3.0 – June 2013
![Page 5: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/5.jpg)
3.1 – October 2013
Staging viewPresentation modes (tree, list)FilterRebase integration
![Page 6: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/6.jpg)
3.1 – October 2013
Compare withSynchronize for multi-selection3-way compare
Mylyn links in history & staging viewUsability
![Page 7: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/7.jpg)
Push branch wizardInteractive rebaseHistory view: Search all
3.2 – December 2013
![Page 8: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/8.jpg)
Planned
Merge drivers (text, binary, model)Wizard for pushing tag(s)Optional Apache HttpClient for HTTP
![Page 9: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/9.jpg)
Serving git with JGit– faster –
3.0 (GC fixes in 3.1)
![Page 10: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/10.jpg)
Serving git with JGit
jgit (git)$ jgit daemon <dir> --export-all
gitblit (http)$ java -jar gitblit.jar --baseFolder <dir>
gerrit (http and ssh)$ ./gerrit.sh start
![Page 11: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/11.jpg)
Serving faster
Clone & fetch dominated by “counting…” phaseCost linear with repo complexity/age
Linux kernel git: 2.9M objects ⇨ 60 sec 100% CPU counting…
JGit bitmap index (ignored by native git)pre-computed reachability data for commits in a pack559 MiB pack / 78 MiB idx / 2.9 MiB bitmap idx⇨ < 80ms counting...
![Page 12: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/12.jpg)
Bitmap structure
● Assign bits by order of objects in pack file● Objects to send = want AND_NOT have● Bitmaps are compressible● EWAH bitmap, variant of RLE
![Page 13: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/13.jpg)
The race
Use jgit gc to create bitmap index
$ jgit --git-dir <dir> gc$ ssh -p 29418 <host> gerrit gc <repo>
Race jgit vs. native git daemonwhich doesn’t (yet) understand bitmap index
![Page 14: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/14.jpg)
Staging View3.1
![Page 15: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/15.jpg)
Staging View
Presentation modes (tree, list)FilterRebase integrationTips & Tricks
![Page 16: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/16.jpg)
Push Branch Wizard3.2
![Page 17: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/17.jpg)
Interactive Rebase3.2
sneak preview
![Page 18: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/18.jpg)
Interactive Rebase
commit --amend on steroids: edit a series of commits● Don’t use on published commits
Rebase actions:pick - include commit, reorder commitsskip - remove commitedit - pick and pause, amend, insert/split commitreword - fix commit messagesquash - combine commits incl. messagesfixup - combine commits excl. additional messages
![Page 19: EGit 3.0 and beyond](https://reader034.vdocuments.site/reader034/viewer/2022052410/554a50afb4c9054b328b479f/html5/thumbnails/19.jpg)
join us at the
Eclipse Contributor
Hackathonand learn how to hack on JGit / EGit
today evening 20:30-22:30in Wilhelm-Krämer-Zimmer
http://www.eclipsecon.org/europe2013/eclipse-contributor-hackathon