Re: [libgit2] End year project : minimal Git client based on libgit2
- From:
- Vicent Marti
- Date:
- 2011-05-19 @ 20:13
Yo!
On Thu, May 19, 2011 at 3:33 PM, Romain Geissler
<romain.geissler@gmail.com> wrote:
> Hello everyone.
>
> We are a team of four students from a French school of
> engineering (Ensimag: http://ensimag.grenoble-inp.fr/). To end the
8> 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 ?
Yay! it's awesome that you chose libgit2 as the topic for your final
project! Our expectations for the minimal client were pretty high
--mainly because it was a paid project that was supposed to last three
months-- but of you are doing this in just one month, and even if
you're a small team and not an individual, you probably won't be able
to complete the original client project, so you should probably set
some more realistic goals.
The main goal of the minimal client was being able to reuse the unit
tests from Core git to test libgit2, so if you want a good starting
point, grab an existing test for a command (it doesn't matter if it's
high level or plumbing) and hack on the minimal client until it passes
it! That should get you moving quite fast.
If you encounter any problems or have any doubts, I'll gladly help you
through this mailing list, or just contact me directly. As soon as you
find some bugs (and trust me, you will), open an issue in our tracker
and we'll get right to them.
Cheers guys, best of luck.
Vicent
Re: [libgit2] End year project : minimal Git client based on libgit2
- From:
- Romain Geissler
- Date:
- 2011-05-23 @ 01:40
Hello
> Yay! it's awesome that you chose libgit2 as the topic for your final
> project! Our expectations for the minimal client were pretty high
> --mainly because it was a paid project that was supposed to last three
> months-- but of you are doing this in just one month, and even if
> you're a small team and not an individual, you probably won't be able
> to complete the original client project, so you should probably set
> some more realistic goals.
That's what we found out this last week, we didn't really know where to
start. Finally we come out to this : a fully usable git client. When a
command and the requested switches are not supported by our minimal
libgit2 implementations we fall back to the usual git.
>
> The main goal of the minimal client was being able to reuse the unit
> tests from Core git to test libgit2, so if you want a good starting
> point, grab an existing test for a command (it doesn't matter if it's
> high level or plumbing) and hack on the minimal client until it passes
> it! That should get you moving quite fast.
Thanks to fallback to the usual git client, we can use the huge git base
test on our client.
For now we have a rough git-log (without arguments) command, but there are
still cases that we don't handle (print a merge notice in the commit
description for example). But that's maybe not the better command to test
libgit2 through.
We also implemented ls-files --stage but some test are broken, we have to
find out what's the issue.
The public repo can be found here https://github.com/Romain-Geissler/git2
Romain Geissler
Re: [libgit2] End year project : minimal Git client based on libgit2
- From:
- David Glesser
- Date:
- 2011-05-20 @ 16:39
> The main goal of the minimal client was being able to reuse the unit
> tests from Core git to test libgit2, so if you want a good starting
> point, grab an existing test for a command (it doesn't matter if it's
> high level or plumbing) and hack on the minimal client until it passes
> it! That should get you moving quite fast.
We are going to do a "test framework" which will test commands implemented
with libgit2 or fallback to git for the commands not implemented yet.
Obviously we will only be able to implement commands partially (due to the
lack of features in libgit2). Perhaps it can be interesting to list these
missing features; and if we have time it can be more interesting to
implement some.
We didn't find a way to find an object given the beginning of its SHA1. Is
it one of the missing features of libgit2? Or maybe we just missed it?
> If you encounter any problems or have any doubts, I'll gladly help you
> through this mailing list, or just contact me directly.
Thanks :)