• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Cool new stuff in JGit and EGit - Eclipse Democamp Munich 2013-06-12
 

Cool new stuff in JGit and EGit - Eclipse Democamp Munich 2013-06-12

on

  • 1,244 views

Presentation shown at Eclipse Democamp Munich 2013-06-12

Presentation shown at Eclipse Democamp Munich 2013-06-12

Statistics

Views

Total Views
1,244
Views on SlideShare
1,228
Embed Views
16

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 16

https://twitter.com 16

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Show the gitblit UIRepositoriesUsers/TeamsPermissionsSearch
  • Show the UI- Do a comment
  • Show the UI- Do a comment
  • Maybe
  • Maybe
  • DemoExplain daemonsStart themStart cgit cloneStart jgit cloneExplain that „receiving objects“ and „resolving deltas“ is bound by network and client side processing

Cool new stuff in JGit and EGit - Eclipse Democamp Munich 2013-06-12 Cool new stuff in JGit and EGit - Eclipse Democamp Munich 2013-06-12 Presentation Transcript

  • Cool new stuff in JGit and EGitEclipse Democamp Munich, Jun 12 2013Matthias Sohn (SAP)matthias.sohnn@sap.com,@masohn
  • AgendaServing Git Repositories with JGitJGit daemonGitBlitGerritThe race - how to serve faster ?Other new stuff
  • Serving Git Repositories with JGit
  • Serving Git Repositories with JGitJGit daemon$ jgit daemon . --export-all --port 19418Exporting /home/user/git/.Listening on 0.0.0.0/0.0.0.0:19418$ git clone git://localhost:19418/test.git
  • Serving Git Repositories with JGitJGit daemonGitBlitDownload and configure GitBlit GOInitialize certs$ java -jar authority.jar --baseFolder dataStart server$ java -jar gitblit.jar --baseFolder data
  • GitBlit - Git serverGitBlit is a Git server based on JGithttp://gitblit.com/• http daemon using JGit’s GitServlet• nice UI• user management• simple access control• Lucene based searchNext GitBlit version 1.3 will use JGit 3.0 Demo
  • Serving Git Repositories with JGitJGit daemonGitBlitGerritInitialize and configure$ java –jar gerrit.war init -d gerrit_siteStart server$ ./gerrit_site/bin/gerrit.sh start
  • Code Review with Git and GerritGerrit is a Code Review system based on JGithttp://code.google.com/p/gerrit/Serves as a Git server• http and ssh daemon• access control• customizable code review workflow• plugins (also GitBlit)Gerrit 2.6 uses JGit 3.0 Demo
  • Code Review with Git and Gerrit
  • Serving fasterClone and Fetch PerformanceTypically dominated by "Counting: ..." phaseCost is linear with complexity and age of repositoryLinux kernel: 2.9M objects, 100% server CPU60s counting timeJGit Bitmap IndexesPre-computed reachability data for commits in a pack fileLinux kernel bitmap data: 2.9 MiB (for 559 MiB pack, 78 MiB idx)<80ms counting timeignored by native gitships in JGit 3.0 and Gerrit Code Review 2.6
  • 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 RLEDaniel Lemire, Owen Kaser, Kamel Aouiche,Sorting improves word-aligned bitmap indexes,Data & Knowledge Engineering, Volume 69, Issue 1, 2010
  • The Race - serving fasterRun JGit’s GC to create bitmap index$ jgit --git-dir . debug-gc using JGit CLI$ ssh -p 29418 localhost gerrit gc linux using Gerrit CLIRace against native git daemonwhich does not (yet) understand bitmap index Demo
  • Recursive Merge- Can merge more complex version graphs- e.g. criss-cross merges- is now the default like in native gitmaster fix12 common base versionsHow to merge branch fix1 ?
  • Other new EGit stuffRename detection in history view and commiteditor
  • Other new EGit stuffReset toexpressione.g. commit-id,HEAD^ ...
  • Other new EGit stuffClean untrackedresources
  • Other new EGit stuff1-clickCommit & Pushin Commit Dialogand Staging View
  • Other new EGit stuff3 way merge inmerge tool
  • Questions ?