+ All Categories
Home > Technology > EGit 3.0 and beyond

EGit 3.0 and beyond

Date post: 07-May-2015
Category:
Upload: msohn
View: 311 times
Download: 5 times
Share this document with a friend
Description:
Talk held at EclipseCon Europe 2013
19
EGit 3.0 and beyond Matthias Sohn (SAP) Robin Stocker
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


Recommended