threads / discuss / 27397

End year project : minimal Git client based on libgit2

Subject: End year project : minimal Git client based on libgit2

## tl;dr

3 messages between May 18, 2011 and May 19, 2011.

replies: 2people: 3as markdown or json

Marc Pegon· May 18, 2011, 16:42 UTC · lore

Hello everyone. We are a team of four students from a French school of engineering (Ensimag: http://ensimag.grenoble-inp.fr/). To end the school year, we are supposed to work on a four-week full-time project, under the supervision of Matthieu Moy, who has been following Git's development for quite a few years now. We thought it would be interesting to contribute to git/libgit2. We are especially interested in one of the GSoC2011 ideas : Build a minimal Git client based on libgit2 (http://git.wiki.kernel.org/index.php/SoC2011Ideas#Build_a_minimal_Git_client_based_on_libgit2)

We started by taking a look at libgit2 API and Git source code, and we have already begun to write some (quick and dirty) code. We would like to know more about your expectations around the "minimal" git client. What are the key features to implement ? According to the GSoC proposal, we should implement some high level functionalities (push, commit, branch...). Perhaps we should concentrate on more "plumbing" commands ?

Regards,

Bettaoui Nassima Geissler Romain Glesser David Pegon Marc.

Andreas Ericsson· May 19, 2011, 06:18 UTC · re: Marc Pegon · lore

Re: End year project : minimal Git client based on libgit2

On 05/18/2011 06:42 PM, Marc Pegon wrote:
Show 9 quoted lines
> Hello everyone. We are a team of four students from a French school of
> engineering (Ensimag: http://ensimag.grenoble-inp.fr/). To end the
> school year, we are supposed to work on a four-week full-time project,
> under the supervision of Matthieu Moy, who has been following Git's
> development for quite a few years now. We thought it would be
> interesting to contribute to git/libgit2. We are especially interested
> in one of the GSoC2011 ideas : Build a minimal Git client based on
> libgit2 (http://git.wiki.kernel.org/index.php/SoC2011Ideas#Build_a_minimal_Git_client_based_on_libgit2)
> 
Cool project :)
Show 8 quoted lines
> We started by taking a look at libgit2 API and Git source code, and we
> have already begun to write some (quick and dirty) code.
> We would like to know more about your expectations around the
> "minimal" git client. What are the key features to implement ?
> According to the GSoC proposal, we should implement some high level
> functionalities (push, commit, branch...). Perhaps we should
> concentrate on more "plumbing" commands ?
> 

If you can make the plumbing commands work it should be trivial to script the other tools on top of the plumbing.

Otoh, coding up the commands currently implemented as scripts in C with libgit2 as backend would increase the chance of acceptance into git.git proper, since you'd then be doing something worthwhile for the git core.

Then again, creating bindings into other languages and writing up the minimal git in python or some such would also be extremely useful and worthwhile, and probably faster than writing the minimal git from scratch in C as well.

-- 
Andreas Ericsson                   andreas.ericsson@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.
Romain Geissler· May 19, 2011, 16:15 UTC · re: Andreas Ericsson · lore

Re: End year project : minimal Git client based on libgit2

Hello,
It seems that most of the currently scripted commands can't be implemented with libgit2 as it's still not mature enough to handle it (eg the whole merge part is still missing), though we might have missed something.
Thus we've chosen to first focus on two simple plumbings: commit-tree and cat-file as there is the material for it in libgit2 and the command signature is restricted to only a few parameters. When it's done, we'll try to compare the efficiency of this partial port (works well and quickly). Thanks to that background, it might be easier to move on other plumbings.
Romain Geissler
(Sorry for answering you directly, i should have checked the mail recipient before sending it !)

← back to recent threads