All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Couder <christian.couder@gmail.com>
To: Johannes Schindelin <johannes.schindelin@gmx.de>
Cc: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>,
	Junio C Hamano <gitster@pobox.com>, Jeff King <peff@peff.net>,
	Git Mailing List <git@vger.kernel.org>,
	msysGit <msysgit@googlegroups.com>
Subject: Re: [msysGit] Re: [RFH] GSoC 2015 application
Date: Wed, 25 Feb 2015 11:04:06 +0100	[thread overview]
Message-ID: <CAP8UFD2PcBsU6=FK4OHVrB7E98ycohS_0pYcbCBar=of1HLx+Q@mail.gmail.com> (raw)
In-Reply-To: <3e3da365d9b6021c9b6d8547ad8df788@www.dscho.org>

On Wed, Feb 25, 2015 at 9:44 AM, Johannes Schindelin
<johannes.schindelin@gmx.de> wrote:
> Hi Matthieu,
>
> On 2015-02-25 00:56, Matthieu Moy wrote:
>> Johannes Schindelin <johannes.schindelin@gmx.de> writes:
>>
>>> On 2015-02-24 19:25, Junio C Hamano wrote:
>>>> On Tue, Feb 24, 2015 at 9:32 AM, Matthieu Moy
>>>> <Matthieu.Moy@grenoble-inp.fr> wrote:
>>>>> About the proposal:
>>>>>
>>>>>   The idea of this project is to dive into the Git source code and
>>>>>   convert, say, git-add--interactive.perl and/or git stash into proper C
>>>>>   code, making it a so-called "built-in".
>>>>>
>>>>> My advice would be to try converting several small scripts, and avoid
>>>>> targetting a big one....
>>>>> add--interactive and stash are relatively complex beasts, perhaps
>>>>> git-pull.sh would be easier to start with.
>>>>
>>>> Yeah, I think that is a very good suggestion.
>>>
>>> Well, git-pull.sh is really small. I did not want to give the impression that the Git project is giving out freebies. But I have no objection to change it if you open that PR.
>>
>> To get an idea, I counted the lines of code written by the student I
>> mentored last year:
>>
>> $ git log --author tanayabh@gmail.com -p | diffstat -s
>>  43 files changed, 1225 insertions(+), 367 deletions(-)
>>
>> I would consider this GSoC as "average" (i.e. not exceptionnally good,
>> but certainly not a bad one either), so you may hope for more, but you
>> should not _expect_ much more IMHO.
>>
>> In comparison:
>>
>> $ wc -l git-add--interactive.perl
>> 1654 git-add--interactive.perl
>> $ wc -l git-stash.sh
>> 617 git-stash.sh

There is also:

$ wc -l git-bisect.sh
528 git-bisect.sh

And there is already builtin/bisect--helper.c that can be used to
convert step by step shell code to C. I can mentor or co-mentor this
convertion by the way, but that would conflict with the other bisect
related GSoC project if a student takes it.

>> I'd expect a rewrite in C to at least double the number of lines of
>> code, so rewriting git-stash would mean writting at least as many lines
>> of code as the GSoC above. git-add--interactive.perl would be rather far
>> above.
>
> Sure. You're right, I was thinking too big.
>
>> But my point was not to convert _only_ git-pull.sh, but to have a GSoC
>> starting with this one and plan more. Then, depending on how it goes,
>> you can adjust the target.
>
> That's excellent advice.

Yeah!

>> This all depends on what you intend to do if the student does not finish
>> the job. If you're going to do the rewrite yourself anyway, then having
>> the student do even half of it is good already. If you're not going to
>> finish the job by yourself, then a 95%-done-rewrite means a piece of
>> code posted on the mailing list and never merged (and a lot of time
>> wasted).
>
> Well, all of this is academic at this point.

Yeah, but it's still worth keeping in many parts of our collective mind :-)

> Let's see whether we get accepted, and then, if a student finds this project compelling enough.
>
> If both things happen, I will definitely heed your advice and encourage the student to start with some script that is easily converted, to "get her feet wet".

Great!

Thanks,
Christian.

  reply	other threads:[~2015-02-25 10:04 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-18 19:14 [RFH] GSoC 2015 application Jeff King
2015-02-18 19:32 ` Jeff King
2015-02-24 12:01   ` Johannes Schindelin
2015-02-24 12:06     ` [msysGit] " Jeff King
2015-02-24 12:25       ` Johannes Schindelin
2015-02-24 12:28         ` [msysGit] " Jeff King
2015-02-25  9:25           ` Johannes Schindelin
2015-02-25  9:39             ` Matthieu Moy
2015-02-25 10:25             ` Matthieu Moy
2015-02-25 12:15               ` Johannes Schindelin
2015-02-24 17:32     ` Matthieu Moy
2015-02-24 18:25       ` Junio C Hamano
2015-02-24 20:33         ` Johannes Schindelin
2015-02-24 21:02           ` Junio C Hamano
2015-02-24 23:56           ` Matthieu Moy
2015-02-25  0:34             ` [msysGit] " Stefan Beller
2015-02-25  9:25               ` Michael J Gruber
2015-02-25  8:44             ` Johannes Schindelin
2015-02-25 10:04               ` Christian Couder [this message]
2015-02-25 10:02             ` Duy Nguyen
2015-02-25 12:10               ` Johannes Schindelin
2015-02-18 21:54 ` Junio C Hamano
2015-02-19  5:49   ` Junio C Hamano
2015-02-19 10:32 ` Matthieu Moy
2015-02-20  2:00   ` Jeff King
2015-02-20 10:06     ` Matthieu Moy
2015-02-20 10:22       ` Dennis Kaarsemaker
2015-02-20 10:34         ` Matthieu Moy
2015-02-20 23:06       ` Eric Sunshine
2015-02-20 10:31     ` [PATCH 1/3] microprojects: tweaks after discussion with Peff Matthieu Moy
2015-02-20 10:31       ` [PATCH 2/3] GSoC ideas: git bisect fixed/unfixed Matthieu Moy
2015-02-20 10:31       ` [PATCH 3/3] idea: Be nicer to the user on tracked/untracked merge conflicts Matthieu Moy
2015-02-20  3:26 ` [RFH] GSoC 2015 application Duy Nguyen
2015-02-20  7:13   ` Jeff King
2015-02-20  8:26     ` Junio C Hamano
2015-02-21  3:02       ` Support customized reordering in version sort Duy Nguyen
2015-02-21  3:25         ` Junio C Hamano
2015-02-21  3:33           ` Duy Nguyen
2015-02-21  5:12             ` Junio C Hamano
2015-02-21  5:37               ` Junio C Hamano
2015-02-26 10:44               ` [PATCH] versionsort: support reorder prerelease suffixes Nguyễn Thái Ngọc Duy
2015-02-27 21:37                 ` Junio C Hamano
2015-03-05  1:28                   ` Junio C Hamano
2015-03-09  1:01                     ` Duy Nguyen
2015-03-10  7:52                       ` Junio C Hamano
2015-03-10  8:03                         ` Eric Sunshine
2015-03-10 10:16                     ` [PATCH] config.txt: update versioncmp.prereleaseSuffix Nguyễn Thái Ngọc Duy
2015-02-20  5:35 ` [RFH] GSoC 2015 application Michael Haggerty
2015-02-20  7:29   ` Jeff King
2015-02-20  8:06     ` Junio C Hamano
2015-02-20  9:39     ` Matthieu Moy
2015-02-20  9:48       ` Jeff King
2015-02-20 11:35         ` Jeff King
2015-02-23  8:02           ` Matthieu Moy
2015-02-23 15:36             ` Jeff King
2015-03-04 22:05       ` Philip Oakley
2015-03-04 23:55         ` Stefan Beller
2015-03-05  0:17           ` Philip Oakley
2015-03-05  0:22             ` Junio C Hamano
2015-03-05  0:32               ` Stefan Beller
2015-03-05  1:17                 ` Junio C Hamano
2015-03-05  6:19                 ` Junio C Hamano
2015-03-06 11:24                   ` Duy Nguyen
2015-03-05  0:26           ` Duy Nguyen
2015-03-05 10:28         ` Nguyễn Thái Ngọc Duy
2015-03-05 10:28           ` [PATCH 1/6] upload-pack: move shallow deepen code out of receive_needs() Nguyễn Thái Ngọc Duy
2015-03-05 10:28           ` [PATCH 2/6] upload-pack: move "shallow" sending code out of deepen() Nguyễn Thái Ngọc Duy
2015-03-05 10:28           ` [PATCH 3/6] upload-pack: remove unused variable "backup" Nguyễn Thái Ngọc Duy
2015-03-05 10:28           ` [PATCH 4/6] upload-pack: move "unshallow" sending code out of deepen() Nguyễn Thái Ngọc Duy
2015-03-05 10:28           ` [PATCH 5/6] shallow.c: implement a generic shallow boundary finder based on rev-list Nguyễn Thái Ngọc Duy
2015-03-05 10:28           ` [PATCH 6/6] upload-pack: example code to use get_shallow_commits_by_rev_list Nguyễn Thái Ngọc Duy
2015-02-26 13:10 ` [RFH] GSoC 2015 application Duy Nguyen
2015-03-04 10:31   ` Jeff King
2015-03-04 11:21     ` Duy Nguyen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAP8UFD2PcBsU6=FK4OHVrB7E98ycohS_0pYcbCBar=of1HLx+Q@mail.gmail.com' \
    --to=christian.couder@gmail.com \
    --cc=Matthieu.Moy@grenoble-inp.fr \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=johannes.schindelin@gmx.de \
    --cc=msysgit@googlegroups.com \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.