git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [GSoC] What is status of Git's Google Summer of Code 2008 projects?

From
Shawn O. Pearce <spearce@spearce.org>
Date
Jul 8, 2008, 04:19 UTC
Message-ID
<20080708041947.GA2542@spearce.org>
In-Reply-To
<200807080227.43515.jnareb@gmail.com>
Jakub Narebski <jnareb@gmail.com> wrote:
Show 9 quoted lines
> I'd very much like to have (or perhaps to wrote) some sort of interim 
> progress report for Google Summer of Code 2008 projects on 
> http://git.or.cz/gitwiki/SoC2008Projects.  Therefore I'd like you to 
> expand and/or correct those mini-summaries below.
> 
> (It would be, I guess, good preparation for GSoC 2008 mid-term 
> evaluations, which according to GSoC 2008 timeline
>   http://code.google.com/opensource/gsoc/2008/faqs.html#0.1_timeline
> are to take place July 7 -- July 14.)
Yes, it is that time for evaluations.  The evaluations are now open
to students and mentors alike; please make sure you complete them
by the deadline of July 14th.
 
Show 11 quoted lines
> 4. Eclipse plugin push support (!)
> 
> Student: Marek Zawirski
> Mentor: Shawn O. Pearce
> 
> I am not following egit/jgit development close enough, but if I remember 
> correctly there is some code which provides very rudimentary support 
> for native generation of simplified packs, and IIRC also for push over 
> some protocols.
> 
> And there is push support over SFTP and (encrypted) Amazon S3...

Marek is on holiday right now, so I have to answer for him here. Otherwise I would have preferred to let him do it.

Thus far Marek has completed generation of packs, including delta re-use from packs using either v1 or v2 index, including taking advantage of the CRC inside the v2 index to accelerate a safe reuse. This code permits jgit to write a valid pack.

The packing code does not (yet) search for a delta base, or create a new delta for an undeltified object. Packing loose objects packs them as whole objects in the pack file, resulting in little to no reduction over their loose object size. This is not a limitation of Java. Marek and I simply decided that protocol support was more important than really tight network transport at this point in time.

As a result of being able to create pack files Marek was able to implement the client side of git-push for the native pack transfer service, aka push over SSH, push to another local repository (by forking 'git receive-pack') and push over anonymous git://.

Using Marek's pack generation code I added support for push over the dumb sftp:// and amazon-s3:// protocols, with the latter also supporting transparent client side encryption.

I chose to add these features to jgit partly as an exercise to prove that Marek's code was built well enough to be reused for this task, partly because I wanted to backup some private personal repositories to Amazon S3, and partly to prove that multiple dumb transports could implement push support.

All of the above is done in the non-Eclipse, BSD licensed jgit library, making it available to any tool built on top of the Java platform, even if said tool does not use the Eclipse platform or any other code from Eclipse.

At this point Marek's code is in the main egit.git tree's master branch, and is in "production" use by myself and Robin, and maybe a few others. I am quite happy with the work Marek has completed to date for the project.

When Marek returns from his holiday he will be working on Eclipse UI features to expose this jgit push functionality to the end-user within the Eclipse workbench.

-- 
Shawn.
Previous: J.H.Next: Joshua Roys
Message 13 of 46 in “[GSoC] What is status of Git's Google Summer of Code 2008 projects?”
  1. Jakub NarebskiJul 8, 2008
  2. David SymondsJul 8, 2008
  3. Stephan BeyerJul 8, 2008
  4. Junio C HamanoJul 8, 2008
  5. Stephan BeyerJul 8, 2008
  6. Jakub NarebskiJul 8, 2008
  7. Stephan BeyerJul 8, 2008
  8. Jakub NarebskiJul 8, 2008
  9. Stephan BeyerJul 8, 2008
  10. Jakub NarebskiJul 8, 2008
  11. Lea WiemannJul 8, 2008
  12. J.H.Jul 8, 2008
  13. Shawn O. PearceJul 8, 2008
  14. Joshua RoysJul 8, 2008
  15. Johannes SchindelinJul 8, 2008
  16. Jakub NarebskiJul 8, 2008
  17. Petr BaudisJul 8, 2008
  18. Sam VilainJul 8, 2008
  19. Sverre RabbelierJul 9, 2008
  20. Miklos VajnaJul 9, 2008
  21. Jakub NarebskiJul 9, 2008
  22. Jakub NarebskiJul 20, 2008
  23. Sverre RabbelierJul 20, 2008
  24. Stephan BeyerJul 20, 2008
  25. Sam VilainJul 21, 2008
  26. Johannes SchindelinJul 21, 2008
  27. Jakub NarebskiJul 21, 2008
  28. Petr BaudisJul 21, 2008
  29. Joshua RoysJul 21, 2008
  30. Shawn O. PearceJul 21, 2008
  31. Sverre RabbelierAug 17, 2008
  32. Jakub NarebskiAug 14, 2008
  33. Sam VilainAug 14, 2008
  34. Petr BaudisAug 14, 2008
  35. Jakub NarebskiAug 14, 2008
  36. Johannes SchindelinAug 14, 2008
  37. Lea WiemannAug 15, 2008
  38. Jakub NarebskiAug 15, 2008
  39. Stephan BeyerAug 16, 2008
  40. Shawn O. PearceAug 16, 2008
  41. Jakub NarebskiAug 16, 2008
  42. Marek ZawirskiAug 17, 2008
  43. Shawn O. PearceAug 18, 2008
  44. Joshua RoysAug 19, 2008
  45. Sam VilainAug 20, 2008
  46. Stephan BeyerAug 22, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.