Subject: Re: GSoC questions

From: Jonathan Nieder <[email-masked]>
Date: Sun, 27 Mar 2011 19:11:53 -0500

Hi,

Alexandru Sutii wrote:

> I am interested in two projects from your list:
> - Build a minimal Git client based on libgit2
> - Port Git to Android
> My questions are:
> - How important are these projects for the community?
> - Should I provide a patch in order to prove that I am suited for one of these
> projects?
>   If so, what specifically should I implement?

Thanks for writing.  The "minimal Git client" task seems like a
popular one.  Luckily that is not a fatal problem --- git has many
subcommands, so even if every proposal is about that, it could be
possible to subdivide the work and produce something interesting.

Some reading matter:

 http://thread.gmane.org/gmane.comp.version-control.git/99608/focus=99682
 http://thread.gmane.org/gmane.comp.version-control.git/169498/focus=169517
 http://thread.gmane.org/gmane.comp.version-control.git/169498/focus=169762
 http://thread.gmane.org/gmane.comp.version-control.git/170032/focus=170076

Is there some particular part of git functionality you would like to
focus on (history creation, history mining, object store maintenance,
configuration, transport)?  The list of low-level commands (plumbing)
in the git manual might be a good place to get an idea of the scope.

The ideas page mentions areas in which libgit2 functionality is
incomplete --- depending on your interest, you might want to focus on
one of these (so the project would be to add functionality to libgit2
as well as using it) or to steer clear of them (to focus on
functionality libgit2 already has).

So, to make a long story short: there is something sneaky about us
presenting this idea, since there is so much room for choice.  As your
project becomes more precise it should be possible for people on the
list to give more detailed advice.

Cc-ing the libgit2 list and Jeff King for more hints.

As for porting git to Android: that idea is less concrete to me.  A
native Android app would presumably be in Java, so most likely your
best bet is to talk to someone involved in the JGit project[1].

Another note.  Please feel free to venture beyond projects listed on
the ideas page.  For example the 2010 ideas page contains some gems:

 https://git.wiki.kernel.org/index.php/SoC2010Ideas#Several_small_projects_improving_msysGit

as does the 2008 page if you can get Nicolas Pitre on board :)

 https://git.wiki.kernel.org/index.php/SoC2008Ideas#Implement_pack_v4.2Fv5_for_higher_compression

Really, if you name any git-related topic you're interested in,
chances are we can come up together with something valuable and
interesting to work on in that area.

Lastly, as far as patches go: yes, it would be excellent (and it would
show initiative) to offer an experience of what it is like to work
with you (if you end up finding time for this).

Git may misbehave; or while getting up to speed on some aspect of its
behavior you may find some documentation confusing; or you may wonder,
"why is this code doing such a slow/unreliable/otherwise insane
thing?"  When the moment comes, look straight to
Documentation/SubmittingPatches and it will tell what to do. :)

Good luck with whatever project you decide,
Jonathan

[1] http://wiki.eclipse.org/Google_Summer_of_Code_2011_Ideas#Ideas_submission
http://eclipse.org/jgit/developers/