[Mono-list] Welcome Summer of Code 2009 Students!

Andreas Ericsson ae at op5.se
Fri Apr 24 04:22:35 EDT 2009


Andreia Gaita wrote:
> 
> Implementing Git as class libraries in managed code
> Matt Enright
> 

Ahoy. I'm one of the several hundred git developers, and one of
the seven libgit2 developers.

First of all, let me say I'm pretty excited about this, since
World Domination is, as always, the ultimate goal of any oss
project. I'll help in any way I can. My C# is far from stellar
but my knowledge of git internals is not far from awesome ;-)
Besides, algorithms aren't all that different between C and C#.
It's mostly code layout, function names and namespace design
that differs IME.

Second of all, I'd like to wave the warning-flag here a bit.
This project needs delimiters in order to have a chance to
succeed. It's simply not possible to re-implement all of git
in a new language for a single person in the short period of
time that GSoC runs. This is particularly true if the developer
in question lacks extensive knowledge about how git internals
work today.

A viable goal would be to restrict this to one of two areas:
* Catering to IDE's that wish to incorporate version control
  into their UI (ie, write objects into the git object database,
  create tags and commits, switch branches, etc).

OR

* Catering to applications that wishes to display the history
  of a particular repository (think gitk or gitweb).

Note that both of these goals will still be pretty hard to
achieve, but at least it will be within reach if the student
and his mentors are really, really good.

The reason I fear a full re-implementation is not possible is
primarily that git is still actively developed by a team of
about 40-50 fairly active contributors. Keeping pace with them
while starting from scratch will be challenging, to say the
least.

The other reasons are (in order):
* The code is far from trivial, and there's a *lot* of it in C
  (around 100k lines for current 'master', not counting perl,
  tcl and shell-scripts).
* jgit, which has been worked on extensively by one of git's
  most prominent contributors along with many others, *still*
  doesn't implement *all* of git.git. It's been in development
  for three years now.
* Without support from git.git, there is no way, ever, that
  this will result in anything. Last years mono-git project
  didn't request any help what so ever from the git mailing
  list or any of git.git's prominent contributors. I hope I'm
  partially addressing that by coming here and announcing my
  interest in helping out. Time will tell, I suppose ;-)

Hope I didn't put too big a stick in the spokes of fun, but it
really is no fun at all to fail a GSoC student. It's twice as
sad if it's because the goals originally set were impossible
to achieve.

-- 
Andreas Ericsson                   andreas.ericsson at op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.


More information about the Mono-list mailing list