Top Banner
EGit 3.0 and beyond Matthias Sohn (SAP) Robin Stocker
19

EGit 3.0 and beyond

May 07, 2015

Download

Technology

msohn

Talk held at EclipseCon Europe 2013
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: EGit 3.0 and beyond

EGit 3.0 and beyond

Matthias Sohn (SAP)

Robin Stocker

Page 2: EGit 3.0 and beyond

Performance improvementsRecursive merge

3.0 – June 2013

how to merge fix1 ?

2 common base versions

Page 3: EGit 3.0 and beyond

Merge options

Rename detection

3.0 – June 2013

Page 4: EGit 3.0 and beyond

Reset to expression

3.0 – June 2013

Page 5: EGit 3.0 and beyond

3.1 – October 2013

Staging viewPresentation modes (tree, list)FilterRebase integration

Page 6: EGit 3.0 and beyond

3.1 – October 2013

Compare withSynchronize for multi-selection3-way compare

Mylyn links in history & staging viewUsability

Page 7: EGit 3.0 and beyond

Push branch wizardInteractive rebaseHistory view: Search all

3.2 – December 2013

Page 8: EGit 3.0 and beyond

Planned

Merge drivers (text, binary, model)Wizard for pushing tag(s)Optional Apache HttpClient for HTTP

Page 9: EGit 3.0 and beyond

Serving git with JGit– faster –

3.0 (GC fixes in 3.1)

Page 10: EGit 3.0 and beyond

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

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

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

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

Staging View3.1

Page 15: EGit 3.0 and beyond

Staging View

Presentation modes (tree, list)FilterRebase integrationTips & Tricks

Page 16: EGit 3.0 and beyond

Push Branch Wizard3.2

Page 17: EGit 3.0 and beyond

Interactive Rebase3.2

sneak preview

Page 18: EGit 3.0 and beyond

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

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