git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [msysGit] Re: [RFH] GSoC 2015 application

From
Michael J Gruber <git@drmicha.warpmail.net>
Date
Feb 25, 2015, 09:25 UTC
Message-ID
<54ED951B.8020105@drmicha.warpmail.net>
In-Reply-To
<CAGZ79kbcoN=-Byu8fPV9_9ZpFhsuZ=5U=V-Xif_30s-J8OWfJg@mail.gmail.com>
Stefan Beller venit, vidit, dixit 25.02.2015 01:34:
Show 74 quoted lines
> On Tue, Feb 24, 2015 at 3:56 PM, Matthieu Moy
> <Matthieu.Moy@grenoble-inp.fr> wrote:
>> Johannes Schindelin <johannes.schindelin@gmx.de> writes:
>>
>>> Hi Junio,
>>>
>>> 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
>>
>> 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.
>>
>> 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.
>>
>> 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).
>>
>> In any case, these are just advices, certainly not objections or hard
>> requests to change.
>>
> 
> 
> Once upon a time (Sep 2013) I rewrote builtin/repack.c which was a
> shell script before. I did not have much real-coding expertise with the
> git community before and by today there are 403 lines of code in
> builtin/repack.c. so going for roughly 3 times (1200 lines of code) change
> would make a summer, specially if you need to learn how the workflow
> is in the open source world.  There the lines in c doubled nearly exactly.
> (before 197 shell lines, afterwards 387 c lines).
> 
> Just last weekend I met people, who were afraid of contributing to open source
> "because sometimes the internet can be very mean". Git being quite a high
> profile project, as it is widely used, might not help, but rather fear
> people away.
I guess they've read about the lkml too much :)

I consider the gitml to be a relatively civilized place for constructive criticism, without rants, flame wars and ad hominem swear word attacks. I don't know how it's perceived from the outside (but that drew me in back then).

Maybe we can attach a photo of our maintainer to the GSOC page? That would prove we're nice and polite :)

> That said I would not underestimate the initial time a student needs to learn
> the workflow. Though most of that learning is done in the micro project phase.

Yes, the technical workflow as well as the "social habits". They should follow the gitml even before, and then the micro projects are a great learning ground.

Michael
Previous: Stefan BellerNext: Johannes Schindelin
Message 17 of 74 in “[RFH] GSoC 2015 application”
  1. Jeff KingFeb 18, 2015
  2. Jeff KingFeb 18, 2015
  3. Johannes SchindelinFeb 24, 2015
  4. Jeff KingFeb 24, 2015
  5. Johannes SchindelinFeb 24, 2015
  6. Jeff KingFeb 24, 2015
  7. Johannes SchindelinFeb 25, 2015
  8. Matthieu MoyFeb 25, 2015
  9. Matthieu MoyFeb 25, 2015
  10. Johannes SchindelinFeb 25, 2015
  11. Matthieu MoyFeb 24, 2015
  12. Junio C HamanoFeb 24, 2015
  13. Johannes SchindelinFeb 24, 2015
  14. Junio C HamanoFeb 24, 2015
  15. Matthieu MoyFeb 24, 2015
  16. Stefan BellerFeb 25, 2015
  17. Michael J GruberFeb 25, 2015
  18. Johannes SchindelinFeb 25, 2015
  19. Christian CouderFeb 25, 2015
  20. Duy NguyenFeb 25, 2015
  21. Johannes SchindelinFeb 25, 2015
  22. Junio C HamanoFeb 18, 2015
  23. Junio C HamanoFeb 19, 2015
  24. Matthieu MoyFeb 19, 2015
  25. Jeff KingFeb 20, 2015
  26. Matthieu MoyFeb 20, 2015
  27. Dennis KaarsemakerFeb 20, 2015
  28. Matthieu MoyFeb 20, 2015
  29. Eric SunshineFeb 20, 2015
  30. 1/3 microprojects: tweaks after discussion with PeffMatthieu Moy, Feb 20, 2015
  31. 2/3 GSoC ideas: git bisect fixed/unfixedMatthieu Moy, Feb 20, 2015
  32. 3/3 idea: Be nicer to the user on tracked/untracked merge conflictsMatthieu Moy, Feb 20, 2015
  33. Duy NguyenFeb 20, 2015
  34. Jeff KingFeb 20, 2015
  35. Junio C HamanoFeb 20, 2015
  36. Support customized reordering in version sortDuy Nguyen, Feb 21, 2015
  37. Junio C HamanoFeb 21, 2015
  38. Duy NguyenFeb 21, 2015
  39. Junio C HamanoFeb 21, 2015
  40. Junio C HamanoFeb 21, 2015
  41. versionsort: support reorder prerelease suffixesNguyễn Thái Ngọc Duy, Feb 26, 2015
  42. Junio C HamanoFeb 27, 2015
  43. Junio C HamanoMar 5, 2015
  44. Duy NguyenMar 9, 2015
  45. Junio C HamanoMar 10, 2015
  46. Eric SunshineMar 10, 2015
  47. config.txt: update versioncmp.prereleaseSuffixNguyễn Thái Ngọc Duy, Mar 10, 2015
  48. Michael HaggertyFeb 20, 2015
  49. Jeff KingFeb 20, 2015
  50. Junio C HamanoFeb 20, 2015
  51. Matthieu MoyFeb 20, 2015
  52. Jeff KingFeb 20, 2015
  53. Jeff KingFeb 20, 2015
  54. Matthieu MoyFeb 23, 2015
  55. Jeff KingFeb 23, 2015
  56. Philip OakleyMar 4, 2015
  57. Stefan BellerMar 4, 2015
  58. Philip OakleyMar 4, 2015
  59. Junio C HamanoMar 5, 2015
  60. Stefan BellerMar 5, 2015
  61. Junio C HamanoMar 5, 2015
  62. Junio C HamanoMar 5, 2015
  63. Duy NguyenMar 6, 2015
  64. Duy NguyenMar 5, 2015
  65. Nguyễn Thái Ngọc DuyMar 5, 2015
  66. 1/6 upload-pack: move shallow deepen code out of receive_needs()Nguyễn Thái Ngọc Duy, Mar 5, 2015
  67. 2/6 upload-pack: move "shallow" sending code out of deepen()Nguyễn Thái Ngọc Duy, Mar 5, 2015
  68. 3/6 upload-pack: remove unused variable "backup"Nguyễn Thái Ngọc Duy, Mar 5, 2015
  69. 4/6 upload-pack: move "unshallow" sending code out of deepen()Nguyễn Thái Ngọc Duy, Mar 5, 2015
  70. 5/6 shallow.c: implement a generic shallow boundary finder based on rev-listNguyễn Thái Ngọc Duy, Mar 5, 2015
  71. 6/6 upload-pack: example code to use get_shallow_commits_by_rev_listNguyễn Thái Ngọc Duy, Mar 5, 2015
  72. Duy NguyenFeb 26, 2015
  73. Jeff KingMar 4, 2015
  74. Duy NguyenMar 4, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.