* GSoC 2016: applications open, deadline = Fri, 19/2 @ 2016-02-10 9:31 Matthieu Moy 2016-02-10 11:09 ` Johannes Schindelin ` (2 more replies) 0 siblings, 3 replies; 67+ messages in thread From: Matthieu Moy @ 2016-02-10 9:31 UTC (permalink / raw) To: git; +Cc: Jeff King, Christian Couder, Johannes Schindelin, Stefan Beller Hi, The GSoC (Google Summer of Code) application for mentoring organizations is now open. The deadline is Friday, February 19 at 19:00 UTC. That is: very soon. New website here: https://summerofcode.withgoogle.com/. More info about Git's previous GSoC iterations there: http://git.github.io/SoC-2015-Microprojects/, http://git.github.io/SoC-2015-Org-Application/. I haven't been watching the list very closely the last few weeks, but I didn't see a discussion on whether we shall participate this year, other than "Starting on a microproject for GSoC" (http://thread.gmane.org/gmane.comp.version-control.git/284958). I think participating is a good thing, but it needs mentors, ie. people and time. On my side, I'd be happy to give a hand to GSoC, but unfortunately, I won't have time to properly mentor a student. I can be co-admin, and can help someone to mentor, but only if this someone agrees to do most of the work. Yes, I do realize that this sounds like "we should do it, but someone else should do the work" ;-). So, the first question is: are there volunteers to be GSoC mentors this year? For those who never did it: mentoring means giving advices to the student (partly done during the "microproject" phase in our organization), participating actively in reviews (possibly doing some first review iterations off-list to avoid overloading the list). On overall, the goal is to make sure that some useful code is merged before the end. It's a very enjoyable experience, it can be done with reasonable knowledge of Git's codebase and community (no need to be an old-timer), but it needs time to be done properly (expect to get ~10 iterations of each patch series, and spend hour(s) on each). And you get a nice tee-shirt to show off with your geek friends. If we have enough potential mentors, then the next questions are: who's the admin? Work on the application itself, and on the list of ideas. Cheers, -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-10 9:31 GSoC 2016: applications open, deadline = Fri, 19/2 Matthieu Moy @ 2016-02-10 11:09 ` Johannes Schindelin 2016-02-10 17:44 ` Stefan Beller 2016-02-11 8:36 ` Christian Couder 2016-02-17 17:24 ` Thomas Gummerer 2 siblings, 1 reply; 67+ messages in thread From: Johannes Schindelin @ 2016-02-10 11:09 UTC (permalink / raw) To: Matthieu Moy; +Cc: git, Jeff King, Christian Couder, Stefan Beller Hi Matthieu, On Wed, 10 Feb 2016, Matthieu Moy wrote: > I think participating is a good thing, but it needs mentors, ie. people > and time. I am available for mentoring. Stefan, it was really fun to co-mentor with you, would you be willing to repeat the exercise? Ciao, Dscho ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-10 11:09 ` Johannes Schindelin @ 2016-02-10 17:44 ` Stefan Beller 0 siblings, 0 replies; 67+ messages in thread From: Stefan Beller @ 2016-02-10 17:44 UTC (permalink / raw) To: Johannes Schindelin; +Cc: Matthieu Moy, git, Jeff King, Christian Couder On Wed, Feb 10, 2016 at 3:09 AM, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote: > Hi Matthieu, > > On Wed, 10 Feb 2016, Matthieu Moy wrote: > >> I think participating is a good thing, but it needs mentors, ie. people >> and time. I am people and I have time! ;) > > I am available for mentoring. Stefan, it was really fun to co-mentor with > you, would you be willing to repeat the exercise? Sure thing. > > Ciao, > Dscho ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-10 9:31 GSoC 2016: applications open, deadline = Fri, 19/2 Matthieu Moy 2016-02-10 11:09 ` Johannes Schindelin @ 2016-02-11 8:36 ` Christian Couder 2016-02-12 7:10 ` Matthieu Moy 2016-02-17 17:24 ` Thomas Gummerer 2 siblings, 1 reply; 67+ messages in thread From: Christian Couder @ 2016-02-11 8:36 UTC (permalink / raw) To: Matthieu Moy; +Cc: git, Jeff King, Johannes Schindelin, Stefan Beller Hi, On Wed, Feb 10, 2016 at 10:31 AM, Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote: > > So, the first question is: are there volunteers to be GSoC mentors this > year? I can co-mentor this year too, with you or someone else. With you I think it will work out even if you have less time than last year. Best, Christian. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-11 8:36 ` Christian Couder @ 2016-02-12 7:10 ` Matthieu Moy 2016-02-12 8:29 ` Lars Schneider 2016-02-12 13:04 ` Jeff King 0 siblings, 2 replies; 67+ messages in thread From: Matthieu Moy @ 2016-02-12 7:10 UTC (permalink / raw) To: git, Jeff King; +Cc: Christian Couder, Johannes Schindelin, Stefan Beller Christian Couder <christian.couder@gmail.com> writes: > Hi, > > On Wed, Feb 10, 2016 at 10:31 AM, Matthieu Moy > <Matthieu.Moy@grenoble-inp.fr> wrote: >> >> So, the first question is: are there volunteers to be GSoC mentors this >> year? > > I can co-mentor this year too, with you or someone else. > With you I think it will work out even if you have less time than last year. So, that makes it 4 possible co-mentors, i.e. 2 potential slots. Not much, but it starts looking like last year ... ;-). Peff, would you be willing to co-admin with me (that would be cool, you are the one with most experience here and you know the SFC stuff for payment)? Are there any other co-admin volunteer? -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-12 7:10 ` Matthieu Moy @ 2016-02-12 8:29 ` Lars Schneider 2016-02-12 9:11 ` Matthieu Moy 2016-02-12 13:04 ` Jeff King 1 sibling, 1 reply; 67+ messages in thread From: Lars Schneider @ 2016-02-12 8:29 UTC (permalink / raw) To: Matthieu Moy Cc: git, Jeff King, Christian Couder, Johannes Schindelin, Stefan Beller On 12 Feb 2016, at 08:10, Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote: > Christian Couder <christian.couder@gmail.com> writes: > >> Hi, >> >> On Wed, Feb 10, 2016 at 10:31 AM, Matthieu Moy >> <Matthieu.Moy@grenoble-inp.fr> wrote: >>> >>> So, the first question is: are there volunteers to be GSoC mentors this >>> year? >> >> I can co-mentor this year too, with you or someone else. >> With you I think it will work out even if you have less time than last year. > > So, that makes it 4 possible co-mentors, i.e. 2 potential slots. Not > much, but it starts looking like last year ... ;-). > > Peff, would you be willing to co-admin with me (that would be cool, you > are the one with most experience here and you know the SFC stuff for > payment)? Are there any other co-admin volunteer? I don't know what level of Git development knowledge and what amount of time is necessary but I would be available as junior co-mentor :-) Cheers, Lars ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-12 8:29 ` Lars Schneider @ 2016-02-12 9:11 ` Matthieu Moy 0 siblings, 0 replies; 67+ messages in thread From: Matthieu Moy @ 2016-02-12 9:11 UTC (permalink / raw) To: Lars Schneider Cc: git, Jeff King, Christian Couder, Johannes Schindelin, Stefan Beller Lars Schneider <larsxschneider@gmail.com> writes: > I don't know what level of Git development knowledge and what amount of time > is necessary but I would be available as junior co-mentor :-) AFAICT, you don't have much experience with Git's codebase itself (if I don't count git-p4 as "Git itself"), but you've already been involved in typical reviewing cycles (just the discussions on Travis-CI were a good example), and that is something at least as important as knowing the codebase well. It's up to you to decide whether you feel experienced enough, but I think you are welcome as a co-mentor! As a mentor, to me, the most important things are: * Give advice on how to interact with the Git community. Students can be shy, and then repeating "you should post more to the mailing-list" can be useful. They sometimes make mistakes, and explaining off-list "there's nothing wrong with what you did, but the custom here is to ..." can help. * Give advice on how to get useful code merged. My usual advice is: "don't be too ambitious", which translates to "git this part done, reviewed and possibly merged, you'll work on the bells and whistles later". * Avoid overloading the list with reviews. Getting your own GSoC tee-shirt and letting the list do the work is unfair ;-). Off-list reviews are good to eliminate straightforwards issues, and then mentors should actively participate to the on-list review. That is probably what takes most time. -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-12 7:10 ` Matthieu Moy 2016-02-12 8:29 ` Lars Schneider @ 2016-02-12 13:04 ` Jeff King 2016-02-12 13:11 ` Jeff King 2016-02-13 11:21 ` Matthieu Moy 1 sibling, 2 replies; 67+ messages in thread From: Jeff King @ 2016-02-12 13:04 UTC (permalink / raw) To: Matthieu Moy; +Cc: git, Christian Couder, Johannes Schindelin, Stefan Beller On Fri, Feb 12, 2016 at 08:10:34AM +0100, Matthieu Moy wrote: > So, that makes it 4 possible co-mentors, i.e. 2 potential slots. Not > much, but it starts looking like last year ... ;-). > > Peff, would you be willing to co-admin with me (that would be cool, you > are the one with most experience here and you know the SFC stuff for > payment)? Are there any other co-admin volunteer? Yes, I'm willing to co-admin (though I'm also happy to step aside for somebody else if they would like to do it). The biggest task there is getting the application together. I went through the account creation steps at the site (which is different this year), and the application questions are: - Why does your org want to participate in Google Summer of Code? - How many potential mentors have agreed to mentor this year? - How will you keep mentors engaged with their students? - How will you help your students stay on schedule to complete their projects? - How will you get your students involved in your community during GSoC? - How will you keep students involved with your community after GSoC? - Has your org been accepted as a mentoring org in Google Summer of Code before? - Are you part of a foundation/umbrella organization? - What year was your project started? I think we can pull most of these answers from previous-year applications, but I haven't looked yet. In years past we collaborated on the answers via the git.github.io site, and I pasted them in place. -Peff ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-12 13:04 ` Jeff King @ 2016-02-12 13:11 ` Jeff King 2016-02-13 11:21 ` Matthieu Moy 1 sibling, 0 replies; 67+ messages in thread From: Jeff King @ 2016-02-12 13:11 UTC (permalink / raw) To: Matthieu Moy; +Cc: git, Christian Couder, Johannes Schindelin, Stefan Beller On Fri, Feb 12, 2016 at 08:04:46AM -0500, Jeff King wrote: > The biggest task there is getting the application together. I went > through the account creation steps at the site (which is different this > year), and the application questions are: > [...] We also need to fill out our profile. Those items are listed below. Matthieu, I listed you as a co-mentor, so I think it will have sent you an email to join the application I started (hopefully you didn't do the exact same thing already... :) ). - Website URL - Tagline - Logo - Primary Open Source License - Organization Category - Technology Tags - Topic Tags - Ideas List - Short Description - Long Description - Application Instructions - Proposal Tags - IRC Channel, Mailing List, or Email The big thing there is the ideas list. -Peff ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-12 13:04 ` Jeff King 2016-02-12 13:11 ` Jeff King @ 2016-02-13 11:21 ` Matthieu Moy 2016-02-16 18:10 ` Stefan Beller 2016-02-22 9:28 ` Duy Nguyen 1 sibling, 2 replies; 67+ messages in thread From: Matthieu Moy @ 2016-02-13 11:21 UTC (permalink / raw) To: Jeff King; +Cc: git, Christian Couder, Johannes Schindelin, Stefan Beller Jeff King <peff@peff.net> writes: > On Fri, Feb 12, 2016 at 08:10:34AM +0100, Matthieu Moy wrote: > >> So, that makes it 4 possible co-mentors, i.e. 2 potential slots. Not >> much, but it starts looking like last year ... ;-). >> >> Peff, would you be willing to co-admin with me (that would be cool, you >> are the one with most experience here and you know the SFC stuff for >> payment)? Are there any other co-admin volunteer? > > Yes, I'm willing to co-admin (though I'm also happy to step aside for > somebody else if they would like to do it). Cool! > The biggest task there is getting the application together. I went > through the account creation steps at the site (which is different this > year), and the application questions are: > > - Why does your org want to participate in Google Summer of Code? > > - How many potential mentors have agreed to mentor this year? > > - How will you keep mentors engaged with their students? > > - How will you help your students stay on schedule to complete their projects? > > - How will you get your students involved in your community during GSoC? > > - How will you keep students involved with your community after GSoC? > > - Has your org been accepted as a mentoring org in Google Summer of Code before? > > - Are you part of a foundation/umbrella organization? > > - What year was your project started? > > I think we can pull most of these answers from previous-year > applications, but I haven't looked yet. In years past we collaborated > on the answers via the git.github.io site, and I pasted them in place. I started working on it. http://git.github.io/SoC-2015-Org-Application/ => the application itself. Mostly cut-and-paste from last year, but the questions have changed a bit. There's a "Remarks on the current state of the application" section at the end for stuff I wasn't sure about. This is the urgent part, we won't have an opportunity to modify it after the deadline. Less urgent, but we need to add more stuff to be credible: http://git.github.io/SoC-2016-Ideas/ => Ideas page. I removed the completed project, and updated some other to reflect the current state of Git. I think "Convert scripts to builtins" is still feasible this year, but probably harder (we can't say "start with git-pull.sh" anymore ...). Johannes: you're still interested I guess? http://git.github.io/SoC-2016-Microprojects/ => I just did s/2015/2016/. I think most projects are not valid anymore, and we need new ones. To all: please contribute to these pages, either by sending patches here (CC: me and peff), pushing directly if you have access, or submitting pull-requests. The repo is https://github.com/git/git.github.io/. Thanks, -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-13 11:21 ` Matthieu Moy @ 2016-02-16 18:10 ` Stefan Beller 2016-02-17 10:34 ` Matthieu Moy 2016-02-17 13:09 ` GSoC 2016: applications open, deadline = Fri, 19/2 Johannes Schindelin 2016-02-22 9:28 ` Duy Nguyen 1 sibling, 2 replies; 67+ messages in thread From: Stefan Beller @ 2016-02-16 18:10 UTC (permalink / raw) To: Matthieu Moy; +Cc: Jeff King, git, Christian Couder, Johannes Schindelin On Sat, Feb 13, 2016 at 3:21 AM, Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote: > Jeff King <peff@peff.net> writes: > >> On Fri, Feb 12, 2016 at 08:10:34AM +0100, Matthieu Moy wrote: >> >>> So, that makes it 4 possible co-mentors, i.e. 2 potential slots. Not >>> much, but it starts looking like last year ... ;-). >>> >>> Peff, would you be willing to co-admin with me (that would be cool, you >>> are the one with most experience here and you know the SFC stuff for >>> payment)? Are there any other co-admin volunteer? >> >> Yes, I'm willing to co-admin (though I'm also happy to step aside for >> somebody else if they would like to do it). > > Cool! > >> The biggest task there is getting the application together. I went >> through the account creation steps at the site (which is different this >> year), and the application questions are: >> >> - Why does your org want to participate in Google Summer of Code? >> >> - How many potential mentors have agreed to mentor this year? >> >> - How will you keep mentors engaged with their students? >> >> - How will you help your students stay on schedule to complete their projects? >> >> - How will you get your students involved in your community during GSoC? >> >> - How will you keep students involved with your community after GSoC? >> >> - Has your org been accepted as a mentoring org in Google Summer of Code before? >> >> - Are you part of a foundation/umbrella organization? >> >> - What year was your project started? >> >> I think we can pull most of these answers from previous-year >> applications, but I haven't looked yet. In years past we collaborated >> on the answers via the git.github.io site, and I pasted them in place. > > I started working on it. > > http://git.github.io/SoC-2015-Org-Application/ => the application itself. > Mostly cut-and-paste from last year, but the questions have changed a > bit. There's a "Remarks on the current state of the application" section > at the end for stuff I wasn't sure about. > > This is the urgent part, we won't have an opportunity to modify it after > the deadline. > > > Less urgent, but we need to add more stuff to be credible: > > http://git.github.io/SoC-2016-Ideas/ => Ideas page. I removed the > completed project, and updated some other to reflect the current state > of Git. I think "Convert scripts to builtins" is still feasible this > year, but probably harder (we can't say "start with git-pull.sh" > anymore ...). Johannes: you're still interested I guess? I'd be interested to co-mentor a sh->C conversion. I think the git-rebase*.sh is a good start. $ wc -l git-rebase*.sh 101 git-rebase--am.sh 1296 git-rebase--interactive.sh 167 git-rebase--merge.sh 636 git-rebase.sh 2200 total So start with rebase--am and rebase--merge to have the same amount of lines as git-pull.sh. I did not look at the code, just judging by the lines of code. git-rebase.sh with 636 lines of code is quite a lot I would think. Then there is also git-bisect.sh with nearly 700 lines, which is also not as easy. Thanks, Stefan > > http://git.github.io/SoC-2016-Microprojects/ => I just did s/2015/2016/. > I think most projects are not valid anymore, and we need new ones. > > To all: please contribute to these pages, either by sending patches here > (CC: me and peff), pushing directly if you have access, or submitting > pull-requests. The repo is https://github.com/git/git.github.io/. > > Thanks, > > -- > Matthieu Moy > http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-16 18:10 ` Stefan Beller @ 2016-02-17 10:34 ` Matthieu Moy 2016-02-17 10:45 ` Duy Nguyen 2016-02-17 13:36 ` [PATCH 0/3] Turn git-rebase--*.sh to external helpers Nguyễn Thái Ngọc Duy 2016-02-17 13:09 ` GSoC 2016: applications open, deadline = Fri, 19/2 Johannes Schindelin 1 sibling, 2 replies; 67+ messages in thread From: Matthieu Moy @ 2016-02-17 10:34 UTC (permalink / raw) To: Stefan Beller; +Cc: Jeff King, git, Christian Couder, Johannes Schindelin Stefan Beller <sbeller@google.com> writes: > I'd be interested to co-mentor a sh->C conversion. > > I think the git-rebase*.sh is a good start. > > $ wc -l git-rebase*.sh > 101 git-rebase--am.sh > 1296 git-rebase--interactive.sh > 167 git-rebase--merge.sh > 636 git-rebase.sh > 2200 total > > So start with rebase--am and rebase--merge to have the same amount > of lines as git-pull.sh. I did not look at the code, just judging by > the lines of > code. There's a funny exercice there: the git-rebase--$type.sh scripts are not called as external helpers, but like this: run_specific_rebase () { if [ "$interactive_rebase" = implied ]; then GIT_EDITOR=: export GIT_EDITOR autosquash= fi . git-rebase--$type # ... So, turning these scripts into builtins would first require turning this ". git-rebase--$type" into an actual command call. But nothing unfeasible. Anyway, I'm not happy with the current shape of the code since .-including files within a function already caused us several issues (I fixed a FreeBSD related bug which triggered another one, so the current code is a fix for a workaround for a FreeBSD issue ...). I guess git-rebase--interactive.sh would be a lot for a single GSoC project, but it can remain a shell-script helper called by a builtin. Can you add more details to the "Convert scripts to builtins" part of http://git.github.io/SoC-2016-Ideas/ to reflect this? And make it look attractive for candidates ;-). Thanks, -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-17 10:34 ` Matthieu Moy @ 2016-02-17 10:45 ` Duy Nguyen 2016-02-17 13:36 ` [PATCH 0/3] Turn git-rebase--*.sh to external helpers Nguyễn Thái Ngọc Duy 1 sibling, 0 replies; 67+ messages in thread From: Duy Nguyen @ 2016-02-17 10:45 UTC (permalink / raw) To: Matthieu Moy Cc: Stefan Beller, Jeff King, git, Christian Couder, Johannes Schindelin On Wed, Feb 17, 2016 at 5:34 PM, Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote: > Stefan Beller <sbeller@google.com> writes: > >> I'd be interested to co-mentor a sh->C conversion. >> >> I think the git-rebase*.sh is a good start. >> >> $ wc -l git-rebase*.sh >> 101 git-rebase--am.sh >> 1296 git-rebase--interactive.sh >> 167 git-rebase--merge.sh >> 636 git-rebase.sh >> 2200 total >> >> So start with rebase--am and rebase--merge to have the same amount >> of lines as git-pull.sh. I did not look at the code, just judging by >> the lines of >> code. > > There's a funny exercice there: the git-rebase--$type.sh scripts are not > called as external helpers, but like this: > > run_specific_rebase () { > if [ "$interactive_rebase" = implied ]; then > GIT_EDITOR=: > export GIT_EDITOR > autosquash= > fi > . git-rebase--$type > # ... > > So, turning these scripts into builtins would first require turning this > ". git-rebase--$type" into an actual command call. But nothing > unfeasible. Yeah we can turn those git-rebase--*.sh into separate actual programs, then we can convert git-rebase.sh to C and other subprograms at a later time. I started something back in 2013 [1] but never managed to finish it. Also see the abandoned rewrite effort [2] from git for windows [1] https://github.com/pclouds/git/commits/rebase-rewrite [2] https://github.com/git-for-windows/git/pull/461 -- Duy ^ permalink raw reply [flat|nested] 67+ messages in thread
* [PATCH 0/3] Turn git-rebase--*.sh to external helpers 2016-02-17 10:34 ` Matthieu Moy 2016-02-17 10:45 ` Duy Nguyen @ 2016-02-17 13:36 ` Nguyễn Thái Ngọc Duy 2016-02-17 13:36 ` [PATCH 1/3] rebase: move common functions to rebase--lib.sh Nguyễn Thái Ngọc Duy ` (3 more replies) 1 sibling, 4 replies; 67+ messages in thread From: Nguyễn Thái Ngọc Duy @ 2016-02-17 13:36 UTC (permalink / raw) To: git Cc: Matthieu.Moy, sbeller, peff, christian.couder, Johannes.Schindelin, Nguyễn Thái Ngọc Duy On Wed, Feb 17, 2016 at 5:34 PM, Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote: > There's a funny exercice there: the git-rebase--$type.sh scripts are not > called as external helpers, but like this: > > run_specific_rebase () { > if [ "$interactive_rebase" = implied ]; then > GIT_EDITOR=: > export GIT_EDITOR > autosquash= > fi > . git-rebase--$type > # ... > > So, turning these scripts into builtins would first require turning this > ". git-rebase--$type" into an actual command call. But nothing > unfeasible. We do want to turn all these scripts to C in the end, regardless if the conversion is part of any GSoC. So I dug up my code and prepared this. Now we need people to convert any git-rebase*.sh to C :) Nguyễn Thái Ngọc Duy (3): rebase: move common functions to rebase--lib.sh rebase: move cleanup code to exit_rebase() rebase: turn git-rebase--*.sh into separate programs Makefile | 7 +-- git-rebase--am.sh (mode +x) | 23 ++++---- git-rebase--interactive.sh (mode +x) | 15 ++++++ git-rebase--lib.sh (new +x) | 79 +++++++++++++++++++++++++++ git-rebase--merge.sh (mode +x) | 14 +++++ git-rebase.sh | 100 ++++++----------------------------- 6 files changed, 143 insertions(+), 95 deletions(-) mode change 100644 => 100755 git-rebase--am.sh mode change 100644 => 100755 git-rebase--interactive.sh create mode 100755 git-rebase--lib.sh mode change 100644 => 100755 git-rebase--merge.sh -- 2.7.0.377.g4cd97dd ^ permalink raw reply [flat|nested] 67+ messages in thread
* [PATCH 1/3] rebase: move common functions to rebase--lib.sh 2016-02-17 13:36 ` [PATCH 0/3] Turn git-rebase--*.sh to external helpers Nguyễn Thái Ngọc Duy @ 2016-02-17 13:36 ` Nguyễn Thái Ngọc Duy 2016-02-17 13:36 ` [PATCH 2/3] rebase: move cleanup code to exit_rebase() Nguyễn Thái Ngọc Duy ` (2 subsequent siblings) 3 siblings, 0 replies; 67+ messages in thread From: Nguyễn Thái Ngọc Duy @ 2016-02-17 13:36 UTC (permalink / raw) To: git Cc: Matthieu.Moy, sbeller, peff, christian.couder, Johannes.Schindelin, Nguyễn Thái Ngọc Duy These functions are used by git-rebase--*.sh, which will be made separate programs later. At that point, we can reinclude rebase--lib.sh to provide the functions without duplicating code. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> --- Makefile | 1 + git-rebase--lib.sh (new) | 41 +++++++++++++++++++++++++++++++++++++++++ git-rebase.sh | 42 +----------------------------------------- 3 files changed, 43 insertions(+), 41 deletions(-) create mode 100644 git-rebase--lib.sh diff --git a/Makefile b/Makefile index fc2f1ab..1ee0ed3 100644 --- a/Makefile +++ b/Makefile @@ -496,6 +496,7 @@ SCRIPT_LIB += git-parse-remote SCRIPT_LIB += git-rebase--am SCRIPT_LIB += git-rebase--interactive SCRIPT_LIB += git-rebase--merge +SCRIPT_LIB += git-rebase--lib SCRIPT_LIB += git-sh-setup SCRIPT_LIB += git-sh-i18n diff --git a/git-rebase--lib.sh b/git-rebase--lib.sh new file mode 100644 index 0000000..8bec516 --- /dev/null +++ b/git-rebase--lib.sh @@ -0,0 +1,41 @@ +write_basic_state () { + echo "$head_name" > "$state_dir"/head-name && + echo "$onto" > "$state_dir"/onto && + echo "$orig_head" > "$state_dir"/orig-head && + echo "$GIT_QUIET" > "$state_dir"/quiet && + test t = "$verbose" && : > "$state_dir"/verbose + test -n "$strategy" && echo "$strategy" > "$state_dir"/strategy + test -n "$strategy_opts" && echo "$strategy_opts" > \ + "$state_dir"/strategy_opts + test -n "$allow_rerere_autoupdate" && echo "$allow_rerere_autoupdate" > \ + "$state_dir"/allow_rerere_autoupdate + test -n "$gpg_sign_opt" && echo "$gpg_sign_opt" > "$state_dir"/gpg_sign_opt +} + +output () { + case "$verbose" in + '') + output=$("$@" 2>&1 ) + status=$? + test $status != 0 && printf "%s\n" "$output" + return $status + ;; + *) + "$@" + ;; + esac +} + +move_to_original_branch () { + case "$head_name" in + refs/*) + message="rebase finished: $head_name onto $onto" + git update-ref -m "$message" \ + $head_name $(git rev-parse HEAD) $orig_head && + git symbolic-ref \ + -m "rebase finished: returning to $head_name" \ + HEAD $head_name || + die "$(gettext "Could not move back to $head_name")" + ;; + esac +} diff --git a/git-rebase.sh b/git-rebase.sh index cf60c43..dc29474 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -46,6 +46,7 @@ edit-todo! edit the todo list during an interactive rebase " . git-sh-setup . git-sh-i18n +. git-rebase--lib set_reflog_action rebase require_work_tree_exists cd_to_toplevel @@ -114,47 +115,6 @@ read_basic_state () { gpg_sign_opt="$(cat "$state_dir"/gpg_sign_opt)" } -write_basic_state () { - echo "$head_name" > "$state_dir"/head-name && - echo "$onto" > "$state_dir"/onto && - echo "$orig_head" > "$state_dir"/orig-head && - echo "$GIT_QUIET" > "$state_dir"/quiet && - test t = "$verbose" && : > "$state_dir"/verbose - test -n "$strategy" && echo "$strategy" > "$state_dir"/strategy - test -n "$strategy_opts" && echo "$strategy_opts" > \ - "$state_dir"/strategy_opts - test -n "$allow_rerere_autoupdate" && echo "$allow_rerere_autoupdate" > \ - "$state_dir"/allow_rerere_autoupdate - test -n "$gpg_sign_opt" && echo "$gpg_sign_opt" > "$state_dir"/gpg_sign_opt -} - -output () { - case "$verbose" in - '') - output=$("$@" 2>&1 ) - status=$? - test $status != 0 && printf "%s\n" "$output" - return $status - ;; - *) - "$@" - ;; - esac -} - -move_to_original_branch () { - case "$head_name" in - refs/*) - message="rebase finished: $head_name onto $onto" - git update-ref -m "$message" \ - $head_name $(git rev-parse HEAD) $orig_head && - git symbolic-ref \ - -m "rebase finished: returning to $head_name" \ - HEAD $head_name || - die "$(gettext "Could not move back to $head_name")" - ;; - esac -} apply_autostash () { if test -f "$state_dir/autostash" -- 2.7.0.377.g4cd97dd ^ permalink raw reply related [flat|nested] 67+ messages in thread
* [PATCH 2/3] rebase: move cleanup code to exit_rebase() 2016-02-17 13:36 ` [PATCH 0/3] Turn git-rebase--*.sh to external helpers Nguyễn Thái Ngọc Duy 2016-02-17 13:36 ` [PATCH 1/3] rebase: move common functions to rebase--lib.sh Nguyễn Thái Ngọc Duy @ 2016-02-17 13:36 ` Nguyễn Thái Ngọc Duy 2016-02-17 14:03 ` Matthieu Moy 2016-02-17 13:36 ` [PATCH 3/3] rebase: turn git-rebase--*.sh into separate programs Nguyễn Thái Ngọc Duy 2016-02-17 14:22 ` [PATCH 0/3] Turn git-rebase--*.sh to external helpers Johannes Schindelin 3 siblings, 1 reply; 67+ messages in thread From: Nguyễn Thái Ngọc Duy @ 2016-02-17 13:36 UTC (permalink / raw) To: git Cc: Matthieu.Moy, sbeller, peff, christian.couder, Johannes.Schindelin, Nguyễn Thái Ngọc Duy Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> --- git-rebase--lib.sh (mode +x) | 38 ++++++++++++++++++++++++++++++++++++++ git-rebase.sh | 37 +------------------------------------ 2 files changed, 39 insertions(+), 36 deletions(-) mode change 100644 => 100755 git-rebase--lib.sh diff --git a/git-rebase--lib.sh b/git-rebase--lib.sh old mode 100644 new mode 100755 index 8bec516..a876fc2 --- a/git-rebase--lib.sh +++ b/git-rebase--lib.sh @@ -39,3 +39,41 @@ move_to_original_branch () { ;; esac } + +apply_autostash () { + if test -f "$state_dir/autostash" + then + stash_sha1=$(cat "$state_dir/autostash") + if git stash apply $stash_sha1 2>&1 >/dev/null + then + echo "$(gettext 'Applied autostash.')" + else + git stash store -m "autostash" -q $stash_sha1 || + die "$(eval_gettext "Cannot store \$stash_sha1")" + gettext 'Applying autostash resulted in conflicts. +Your changes are safe in the stash. +You can run "git stash pop" or "git stash drop" at any time. +' + fi + fi +} + +finish_rebase () { + apply_autostash && + { git gc --auto || true; } && + rm -rf "$state_dir" +} + +exit_rebase () { + ret=$1 + if test $ret -eq 0 + then + finish_rebase + elif test $ret -eq 2 # special exit status for rebase -i + then + apply_autostash && + rm -rf "$state_dir" && + die "Nothing to do" + fi + exit $ret +} diff --git a/git-rebase.sh b/git-rebase.sh index dc29474..0c70381 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -115,31 +115,6 @@ read_basic_state () { gpg_sign_opt="$(cat "$state_dir"/gpg_sign_opt)" } - -apply_autostash () { - if test -f "$state_dir/autostash" - then - stash_sha1=$(cat "$state_dir/autostash") - if git stash apply $stash_sha1 2>&1 >/dev/null - then - echo "$(gettext 'Applied autostash.')" - else - git stash store -m "autostash" -q $stash_sha1 || - die "$(eval_gettext "Cannot store \$stash_sha1")" - gettext 'Applying autostash resulted in conflicts. -Your changes are safe in the stash. -You can run "git stash pop" or "git stash drop" at any time. -' - fi - fi -} - -finish_rebase () { - apply_autostash && - { git gc --auto || true; } && - rm -rf "$state_dir" -} - run_specific_rebase () { if [ "$interactive_rebase" = implied ]; then GIT_EDITOR=: @@ -147,17 +122,7 @@ run_specific_rebase () { autosquash= fi . git-rebase--$type - ret=$? - if test $ret -eq 0 - then - finish_rebase - elif test $ret -eq 2 # special exit status for rebase -i - then - apply_autostash && - rm -rf "$state_dir" && - die "Nothing to do" - fi - exit $ret + exit_rebase $? } run_pre_rebase_hook () { -- 2.7.0.377.g4cd97dd ^ permalink raw reply related [flat|nested] 67+ messages in thread
* Re: [PATCH 2/3] rebase: move cleanup code to exit_rebase() 2016-02-17 13:36 ` [PATCH 2/3] rebase: move cleanup code to exit_rebase() Nguyễn Thái Ngọc Duy @ 2016-02-17 14:03 ` Matthieu Moy 0 siblings, 0 replies; 67+ messages in thread From: Matthieu Moy @ 2016-02-17 14:03 UTC (permalink / raw) To: Nguyễn Thái Ngọc Duy Cc: git, sbeller, peff, christian.couder, Johannes.Schindelin Nguyễn Thái Ngọc Duy <pclouds@gmail.com> writes: > Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> This patch could use a little bit more verbose commit message IMHO. At this point it's not completely clear why you need to move this code to git--rebase-lib.sh. My understanding is that you want to have this code in the lib.h file to allow the toplevel to "exec" the helpers which does not allow the toplevel to do the cleanup afterwards. Hence you need exit_rebase in the lib to call it from each helper. -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* [PATCH 3/3] rebase: turn git-rebase--*.sh into separate programs 2016-02-17 13:36 ` [PATCH 0/3] Turn git-rebase--*.sh to external helpers Nguyễn Thái Ngọc Duy 2016-02-17 13:36 ` [PATCH 1/3] rebase: move common functions to rebase--lib.sh Nguyễn Thái Ngọc Duy 2016-02-17 13:36 ` [PATCH 2/3] rebase: move cleanup code to exit_rebase() Nguyễn Thái Ngọc Duy @ 2016-02-17 13:36 ` Nguyễn Thái Ngọc Duy 2016-02-17 14:05 ` Matthieu Moy 2016-02-17 14:22 ` [PATCH 0/3] Turn git-rebase--*.sh to external helpers Johannes Schindelin 3 siblings, 1 reply; 67+ messages in thread From: Nguyễn Thái Ngọc Duy @ 2016-02-17 13:36 UTC (permalink / raw) To: git Cc: Matthieu.Moy, sbeller, peff, christian.couder, Johannes.Schindelin, Nguyễn Thái Ngọc Duy This is the first step of turning any of these scripts into C. We can see now what variables are exchanged between git-rebase.sh and the subscript (but we don't see all in this patch, variables may have been exported earlier in git-rebase.sh) Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> --- Makefile | 6 +++--- git-rebase--am.sh (mode +x) | 23 ++++++++++++++--------- git-rebase--interactive.sh (mode +x) | 15 +++++++++++++++ git-rebase--merge.sh (mode +x) | 14 ++++++++++++++ git-rebase.sh | 23 ++++++++++++++++------- 5 files changed, 62 insertions(+), 19 deletions(-) mode change 100644 => 100755 git-rebase--am.sh mode change 100644 => 100755 git-rebase--interactive.sh mode change 100644 => 100755 git-rebase--merge.sh diff --git a/Makefile b/Makefile index 1ee0ed3..ea636e6 100644 --- a/Makefile +++ b/Makefile @@ -486,6 +486,9 @@ SCRIPT_SH += git-mergetool.sh SCRIPT_SH += git-quiltimport.sh SCRIPT_SH += git-rebase.sh SCRIPT_SH += git-remote-testgit.sh +SCRIPT_SH += git-rebase--am.sh +SCRIPT_SH += git-rebase--interactive.sh +SCRIPT_SH += git-rebase--merge.sh SCRIPT_SH += git-request-pull.sh SCRIPT_SH += git-stash.sh SCRIPT_SH += git-submodule.sh @@ -493,9 +496,6 @@ SCRIPT_SH += git-web--browse.sh SCRIPT_LIB += git-mergetool--lib SCRIPT_LIB += git-parse-remote -SCRIPT_LIB += git-rebase--am -SCRIPT_LIB += git-rebase--interactive -SCRIPT_LIB += git-rebase--merge SCRIPT_LIB += git-rebase--lib SCRIPT_LIB += git-sh-setup SCRIPT_LIB += git-sh-i18n diff --git a/git-rebase--am.sh b/git-rebase--am.sh old mode 100644 new mode 100755 index 9ae898b..3837f53 --- a/git-rebase--am.sh +++ b/git-rebase--am.sh @@ -4,15 +4,19 @@ # Copyright (c) 2010 Junio C Hamano. # -# The whole contents of this file is run by dot-sourcing it from -# inside a shell function. It used to be that "return"s we see -# below were not inside any function, and expected to return -# to the function that dot-sourced us. -# -# However, FreeBSD /bin/sh misbehaves on such a construct and -# continues to run the statements that follow such a "return". -# As a work-around, we introduce an extra layer of a function -# here, and immediately call it after defining it. +. git-sh-setup +. git-sh-i18n +. git-rebase--lib +require_work_tree_exists + +GIT_QUIET=$git_quiet +GIT_REFLOG_ACTION=$git_reflog_action +resolvemsg=" +$(gettext 'When you have resolved this problem, run "git rebase --continue". +If you prefer to skip this patch, run "git rebase --skip" instead. +To check out the original branch and stop rebasing, run "git rebase --abort".') +" + git_rebase__am () { case "$action" in @@ -99,3 +103,4 @@ move_to_original_branch } # ... and then we call the whole thing. git_rebase__am +exit_rebase $? diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh old mode 100644 new mode 100755 index c0cfe88..1169920 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -7,6 +7,20 @@ # The original idea comes from Eric W. Biederman, in # http://article.gmane.org/gmane.comp.version-control.git/22407 # + +. git-sh-setup +. git-sh-i18n +. git-rebase--lib +require_work_tree_exists + +GIT_QUIET=$git_quiet +GIT_REFLOG_ACTION=$git_reflog_action +resolvemsg=" +$(gettext 'When you have resolved this problem, run "git rebase --continue". +If you prefer to skip this patch, run "git rebase --skip" instead. +To check out the original branch and stop rebasing, run "git rebase --abort".') +" + # The file containing rebase commands, comments, and empty lines. # This file is created by "git rebase -i" then edited by the user. As # the lines are processed, they are removed from the front of this @@ -1294,3 +1308,4 @@ do_rest } # ... and then we call the whole thing. git_rebase__interactive +exit_rebase $? diff --git a/git-rebase--merge.sh b/git-rebase--merge.sh old mode 100644 new mode 100755 index 2cc2a6d..f453d15 --- a/git-rebase--merge.sh +++ b/git-rebase--merge.sh @@ -5,6 +5,19 @@ # Copyright (c) 2010 Junio C Hamano. # +. git-sh-setup +. git-sh-i18n +. git-rebase--lib +require_work_tree_exists + +GIT_QUIET=$git_quiet +GIT_REFLOG_ACTION=$git_reflog_action +resolvemsg=" +$(gettext 'When you have resolved this problem, run "git rebase --continue". +If you prefer to skip this patch, run "git rebase --skip" instead. +To check out the original branch and stop rebasing, run "git rebase --abort".') +" + prec=4 read_state () { @@ -165,3 +178,4 @@ finish_rb_merge } # ... and then we call the whole thing. git_rebase__merge +exit_rebase $? diff --git a/git-rebase.sh b/git-rebase.sh index 0c70381..67b847f 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -54,11 +54,6 @@ cd_to_toplevel LF=' ' ok_to_skip_pre_rebase= -resolvemsg=" -$(gettext 'When you have resolved this problem, run "git rebase --continue". -If you prefer to skip this patch, run "git rebase --skip" instead. -To check out the original branch and stop rebasing, run "git rebase --abort".') -" unset onto unset restrict_revision cmd= @@ -121,8 +116,22 @@ run_specific_rebase () { export GIT_EDITOR autosquash= fi - . git-rebase--$type - exit_rebase $? + git_quiet=$GIT_QUIET + git_reflog_action=$GIT_REFLOG_ACTION + export GIT_PAGER + # these are for write_basic_state() + export allow_rerere_autoupdate gpg_sign_opt head_name onto + export orig_head state_dir strategy strategy_opts verbose + # common variables + export action git_reflog_action git_quiet keep_empty + export rebase_root restrict_revision revisions upstream + # git-rebase--am specific + export git_am_opt + # git-rebase--interactive specific + export autosquash cmd force_rebase onto_name preserve_merges + export squash_onto switch_to + + exec git-rebase--$type } run_pre_rebase_hook () { -- 2.7.0.377.g4cd97dd ^ permalink raw reply related [flat|nested] 67+ messages in thread
* Re: [PATCH 3/3] rebase: turn git-rebase--*.sh into separate programs 2016-02-17 13:36 ` [PATCH 3/3] rebase: turn git-rebase--*.sh into separate programs Nguyễn Thái Ngọc Duy @ 2016-02-17 14:05 ` Matthieu Moy 0 siblings, 0 replies; 67+ messages in thread From: Matthieu Moy @ 2016-02-17 14:05 UTC (permalink / raw) To: Nguyễn Thái Ngọc Duy Cc: git, sbeller, peff, christian.couder, Johannes.Schindelin Nguyễn Thái Ngọc Duy <pclouds@gmail.com> writes: > + git_quiet=$GIT_QUIET > + git_reflog_action=$GIT_REFLOG_ACTION > + export GIT_PAGER > + # these are for write_basic_state() > + export allow_rerere_autoupdate gpg_sign_opt head_name onto > + export orig_head state_dir strategy strategy_opts verbose > + # common variables > + export action git_reflog_action git_quiet keep_empty > + export rebase_root restrict_revision revisions upstream > + # git-rebase--am specific > + export git_am_opt > + # git-rebase--interactive specific > + export autosquash cmd force_rebase onto_name preserve_merges > + export squash_onto switch_to > + > + exec git-rebase--$type This is a good first step, but we may later want to turn these environment variables into command-line options for the helpers. Or not. On overall, the series looks good to me, but I don't have time for a detailed review. Thanks, -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: [PATCH 0/3] Turn git-rebase--*.sh to external helpers 2016-02-17 13:36 ` [PATCH 0/3] Turn git-rebase--*.sh to external helpers Nguyễn Thái Ngọc Duy ` (2 preceding siblings ...) 2016-02-17 13:36 ` [PATCH 3/3] rebase: turn git-rebase--*.sh into separate programs Nguyễn Thái Ngọc Duy @ 2016-02-17 14:22 ` Johannes Schindelin 2016-02-17 14:40 ` Duy Nguyen 3 siblings, 1 reply; 67+ messages in thread From: Johannes Schindelin @ 2016-02-17 14:22 UTC (permalink / raw) To: Nguyễn Thái Ngọc Duy Cc: git, Matthieu.Moy, sbeller, peff, christian.couder [-- Attachment #1: Type: text/plain, Size: 1091 bytes --] Hi, On Wed, 17 Feb 2016, Nguyễn Thái Ngọc Duy wrote: > We do want to turn all these scripts to C in the end, regardless if the > conversion is part of any GSoC. So I dug up my code and prepared this. > Now we need people to convert any git-rebase*.sh to C :) While I would love to see all these scripts to be converted to builtins, I think that the proposed path would be too painful. I already started a different route locally (nothing to show yet, mostly because I have to write emails and try to triage the bug tracker instead of doing real work *grmbl*): add a rebase--helper and off-load heavy-duty work from the scripts to that helper. There are major benefits to do it that way: - we can focus on the really rewarding parts first, i.e. the parts that make the interactive rebase so painfully slow, - it allows for a painlessly incremental conversion, - if multiple people are interested in working on the conversion, it can happen in parallel. And probably a few other upsides. Will keep you posted when I have something to show, Dscho ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: [PATCH 0/3] Turn git-rebase--*.sh to external helpers 2016-02-17 14:22 ` [PATCH 0/3] Turn git-rebase--*.sh to external helpers Johannes Schindelin @ 2016-02-17 14:40 ` Duy Nguyen 0 siblings, 0 replies; 67+ messages in thread From: Duy Nguyen @ 2016-02-17 14:40 UTC (permalink / raw) To: Johannes Schindelin Cc: Git Mailing List, Matthieu Moy, Stefan Beller, Jeff King, Christian Couder On Wed, Feb 17, 2016 at 9:22 PM, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote: > I already started a different route locally (nothing to show yet, mostly > because I have to write emails and try to triage the bug tracker instead > of doing real work *grmbl*): add a rebase--helper and off-load heavy-duty > work from the scripts to that helper. > > There are major benefits to do it that way: > > - we can focus on the really rewarding parts first, i.e. the parts that > make the interactive rebase so painfully slow, > > - it allows for a painlessly incremental conversion, > > - if multiple people are interested in working on the conversion, it can > happen in parallel. > > And probably a few other upsides. Now it does sound fun (and probably feel rewarding too), even to GSoC students! -- Duy ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-16 18:10 ` Stefan Beller 2016-02-17 10:34 ` Matthieu Moy @ 2016-02-17 13:09 ` Johannes Schindelin 2016-02-17 16:04 ` Christian Couder 1 sibling, 1 reply; 67+ messages in thread From: Johannes Schindelin @ 2016-02-17 13:09 UTC (permalink / raw) To: Stefan Beller; +Cc: Matthieu Moy, Jeff King, git, Christian Couder Hi Stefan, On Tue, 16 Feb 2016, Stefan Beller wrote: > I'd be interested to co-mentor a sh->C conversion. > > I think the git-rebase*.sh is a good start. > > $ wc -l git-rebase*.sh > 101 git-rebase--am.sh > 1296 git-rebase--interactive.sh > 167 git-rebase--merge.sh > 636 git-rebase.sh > 2200 total > > So start with rebase--am and rebase--merge to have the same amount > of lines as git-pull.sh. I did not look at the code, just judging by > the lines of > code. > > git-rebase.sh with 636 lines of code is quite a lot I would think. As pointed out by Matthieu, starting with `git-rebase.sh` would be the wrong way round. In addition, I would like to point out that turning shell scripts into builtins is not only hard work, it is also very dull. Maybe we can offer GSoC students something more exciting, and *just maybe* they'll stick around longer (I am amazed how active Karthik is, for example). > Then there is also git-bisect.sh with nearly 700 lines, which is also > not as easy. Nothing is easy, but bisect has a much better chance to be finally converted into a builtin: there is already a bisect--helper builtin, and all we need to do is to move more parts over, piece by piece. It does not even have to be a complete rewrite. I count 22 functions with bisect_start and bisect_replay being the obvious elephants. Personally, I would recommend starting with bisect_next_check (which would imply get_terms and bisect_voc, of course). It could even be a mini project for a prospective student. Ciao, Johannes ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-17 13:09 ` GSoC 2016: applications open, deadline = Fri, 19/2 Johannes Schindelin @ 2016-02-17 16:04 ` Christian Couder 0 siblings, 0 replies; 67+ messages in thread From: Christian Couder @ 2016-02-17 16:04 UTC (permalink / raw) To: Johannes Schindelin; +Cc: Stefan Beller, Matthieu Moy, Jeff King, git Hi Johannes, On Wed, Feb 17, 2016 at 2:09 PM, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote: > >> Then there is also git-bisect.sh with nearly 700 lines, which is also >> not as easy. > > Nothing is easy, but bisect has a much better chance to be finally > converted into a builtin: there is already a bisect--helper builtin, and > all we need to do is to move more parts over, piece by piece. It does not > even have to be a complete rewrite. I don't know which has a better chance to be finally converted, but it's true that for bisect, the bisect--helper builtin could help, and it can be done piece by piece. > I count 22 functions with bisect_start and bisect_replay being the obvious > elephants. Personally, I would recommend starting with bisect_next_check > (which would imply get_terms and bisect_voc, of course). It could even be > a mini project for a prospective student. Not sure it is small enough for a mini project, but sure it is a good choice to start with. Thanks, Christian. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-13 11:21 ` Matthieu Moy 2016-02-16 18:10 ` Stefan Beller @ 2016-02-22 9:28 ` Duy Nguyen 2016-02-22 10:22 ` Matthieu Moy 1 sibling, 1 reply; 67+ messages in thread From: Duy Nguyen @ 2016-02-22 9:28 UTC (permalink / raw) To: Matthieu Moy Cc: Jeff King, git, Christian Couder, Johannes Schindelin, Stefan Beller On Sat, Feb 13, 2016 at 6:21 PM, Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote: > Less urgent, but we need to add more stuff to be credible: > > ... > > http://git.github.io/SoC-2016-Microprojects/ => I just did s/2015/2016/. > I think most projects are not valid anymore, and we need new ones. > > To all: please contribute to these pages, either by sending patches here > (CC: me and peff), pushing directly if you have access, or submitting > pull-requests. The repo is https://github.com/git/git.github.io/. Idea for microprojects. If you compile using gcc with -Wshadow, it spots local variables that shadow another local or global variables. These are usually bad because it makes it's easy to make mistakes when changing the code. _If_ you agree shadow vars are bad and should be exterminated, 'master' has 94 warnings spreading over 49 files. A student can pick _one_ file and try to fix all warnings in that file. There are many possible approaches (rename, combine vars, change scope, even restructure/kill global vars..), plenty of room for discussion. -- Duy ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-22 9:28 ` Duy Nguyen @ 2016-02-22 10:22 ` Matthieu Moy 2016-02-22 21:42 ` Jeff King 0 siblings, 1 reply; 67+ messages in thread From: Matthieu Moy @ 2016-02-22 10:22 UTC (permalink / raw) To: Duy Nguyen Cc: Jeff King, git, Christian Couder, Johannes Schindelin, Stefan Beller Duy Nguyen <pclouds@gmail.com> writes: > On Sat, Feb 13, 2016 at 6:21 PM, Matthieu Moy > <Matthieu.Moy@grenoble-inp.fr> wrote: >> Less urgent, but we need to add more stuff to be credible: >> >> ... >> >> http://git.github.io/SoC-2016-Microprojects/ => I just did s/2015/2016/. >> I think most projects are not valid anymore, and we need new ones. >> >> To all: please contribute to these pages, either by sending patches here >> (CC: me and peff), pushing directly if you have access, or submitting >> pull-requests. The repo is https://github.com/git/git.github.io/. > > Idea for microprojects. If you compile using gcc with -Wshadow, it > spots local variables that shadow another local or global variables. > These are usually bad because it makes it's easy to make mistakes when > changing the code. I hade a look an a few instances of the warning, and all of them were bad (sometimes even suspicious, I wouldn't be surprised if we found real bugs hunting these down). > _If_ you agree shadow vars are bad and should be exterminated, > 'master' has 94 warnings spreading over 49 files. A student can pick > _one_ file and try to fix all warnings in that file. There are many > possible approaches (rename, combine vars, change scope, even > restructure/kill global vars..), plenty of room for discussion. +1. Are there counter-arguments to this? -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-22 10:22 ` Matthieu Moy @ 2016-02-22 21:42 ` Jeff King 2016-02-22 21:56 ` Junio C Hamano 0 siblings, 1 reply; 67+ messages in thread From: Jeff King @ 2016-02-22 21:42 UTC (permalink / raw) To: Matthieu Moy Cc: Duy Nguyen, git, Christian Couder, Johannes Schindelin, Stefan Beller On Mon, Feb 22, 2016 at 11:22:48AM +0100, Matthieu Moy wrote: > > Idea for microprojects. If you compile using gcc with -Wshadow, it > > spots local variables that shadow another local or global variables. > > These are usually bad because it makes it's easy to make mistakes when > > changing the code. > > I hade a look an a few instances of the warning, and all of them were > bad (sometimes even suspicious, I wouldn't be surprised if we found real > bugs hunting these down). I looked at a handful, too, and many looked fine (e.g., shadowing an overly-broadly-named global parameter with a function parameter). Not that I'm against squelching them. There's definitely potential for confusion, and I won't be surprised either if there's a real bug lurking in there (which we can't find because of the number of false positives). But... > > _If_ you agree shadow vars are bad and should be exterminated, > > 'master' has 94 warnings spreading over 49 files. A student can pick > > _one_ file and try to fix all warnings in that file. There are many > > possible approaches (rename, combine vars, change scope, even > > restructure/kill global vars..), plenty of room for discussion. > > +1. > > Are there counter-arguments to this? I agree that there are a lot of different ways to resolve each instance, and it will vary from case to case. I think the original point of a microproject was to do something really easy and not contentious, so that the student could get familiar with all of the other parts of the cycle: writing a commit message, formatting the patch, posting to the list, etc. It seems like this has a high chance of frustrating students as they get embroiled in back-and-forth review. I dunno. Maybe it should be marked with a star as a "challenge" microproject. :) -Peff ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-22 21:42 ` Jeff King @ 2016-02-22 21:56 ` Junio C Hamano 2016-02-22 22:02 ` Jeff King 0 siblings, 1 reply; 67+ messages in thread From: Junio C Hamano @ 2016-02-22 21:56 UTC (permalink / raw) To: Jeff King Cc: Matthieu Moy, Duy Nguyen, git, Christian Couder, Johannes Schindelin, Stefan Beller Jeff King <peff@peff.net> writes: > I agree that there are a lot of different ways to resolve each instance, > and it will vary from case to case. I think the original point of a > microproject was to do something really easy and not contentious, so > that the student could get familiar with all of the other parts of the > cycle: writing a commit message, formatting the patch, posting to the > list, etc. I had an impression that Micros are also used as an aptitude test, and one important trait we want to see in a potential developer is how well s/he interacts with others in such a discussion. So "easy and not contentious" might not be a very good criteria. I dunno. > It seems like this has a high chance of frustrating students as they get > embroiled in back-and-forth review. I dunno. Maybe it should be marked > with a star as a "challenge" microproject. :) ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-22 21:56 ` Junio C Hamano @ 2016-02-22 22:02 ` Jeff King 2016-02-23 13:13 ` Matthieu Moy 0 siblings, 1 reply; 67+ messages in thread From: Jeff King @ 2016-02-22 22:02 UTC (permalink / raw) To: Junio C Hamano Cc: Matthieu Moy, Duy Nguyen, git, Christian Couder, Johannes Schindelin, Stefan Beller On Mon, Feb 22, 2016 at 01:56:52PM -0800, Junio C Hamano wrote: > Jeff King <peff@peff.net> writes: > > > I agree that there are a lot of different ways to resolve each instance, > > and it will vary from case to case. I think the original point of a > > microproject was to do something really easy and not contentious, so > > that the student could get familiar with all of the other parts of the > > cycle: writing a commit message, formatting the patch, posting to the > > list, etc. > > I had an impression that Micros are also used as an aptitude test, > and one important trait we want to see in a potential developer is > how well s/he interacts with others in such a discussion. So "easy > and not contentious" might not be a very good criteria. > > I dunno. I sort-of agree. I think of the microprojects as more of a "fizz-buzz", where you intentionally keep the technical level very low so that you can evaluate the other things. So I think a little back and forth is good; almost everybody does something a little wrong in their first patch submission. But I'd worry about a topic that is going to involve a lot of bikeshedding or subtle nuances to finding the correct solution. I certainly think _some_ candidates can handle that, but for the ones who cannot, it may frustrate all involved. -Peff ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-22 22:02 ` Jeff King @ 2016-02-23 13:13 ` Matthieu Moy 2016-02-24 10:52 ` Jeff King 0 siblings, 1 reply; 67+ messages in thread From: Matthieu Moy @ 2016-02-23 13:13 UTC (permalink / raw) To: Jeff King Cc: Junio C Hamano, Duy Nguyen, git, Christian Couder, Johannes Schindelin, Stefan Beller Jeff King <peff@peff.net> writes: > On Mon, Feb 22, 2016 at 01:56:52PM -0800, Junio C Hamano wrote: > >> Jeff King <peff@peff.net> writes: >> >> > I agree that there are a lot of different ways to resolve each instance, >> > and it will vary from case to case. I think the original point of a >> > microproject was to do something really easy and not contentious, so >> > that the student could get familiar with all of the other parts of the >> > cycle: writing a commit message, formatting the patch, posting to the >> > list, etc. >> >> I had an impression that Micros are also used as an aptitude test, >> and one important trait we want to see in a potential developer is >> how well s/he interacts with others in such a discussion. So "easy >> and not contentious" might not be a very good criteria. >> >> I dunno. > > I sort-of agree. I think of the microprojects as more of a "fizz-buzz", > where you intentionally keep the technical level very low so that you > can evaluate the other things. I agree with "very low", but I don't think we should eliminate completely the difficulty. During the selection, microprojects can be very efficient in eliminating the really bad candidates (usually, there are quite a few), but once the first selection is done, we still need tools to separate "moderately good" and "really good" candidates. > So I think a little back and forth is good; almost everybody does > something a little wrong in their first patch submission. But I'd worry > about a topic that is going to involve a lot of bikeshedding or subtle > nuances to finding the correct solution. I certainly think _some_ > candidates can handle that, but for the ones who cannot, it may > frustrate all involved. Well, starting a microproject and realizing afterwards that it was a hard one is frustrating. But picking a very easy project and see someone else do a brillant job on a harder one, and this someone else get accepted is also frustrating. I don't think this "kill -Wshadow warning" is really too hard. I'd say it's hard enough to be interesting for students who have a chance to be selected in the end. -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-23 13:13 ` Matthieu Moy @ 2016-02-24 10:52 ` Jeff King 0 siblings, 0 replies; 67+ messages in thread From: Jeff King @ 2016-02-24 10:52 UTC (permalink / raw) To: Matthieu Moy Cc: Junio C Hamano, Duy Nguyen, git, Christian Couder, Johannes Schindelin, Stefan Beller On Tue, Feb 23, 2016 at 02:13:34PM +0100, Matthieu Moy wrote: > > So I think a little back and forth is good; almost everybody does > > something a little wrong in their first patch submission. But I'd worry > > about a topic that is going to involve a lot of bikeshedding or subtle > > nuances to finding the correct solution. I certainly think _some_ > > candidates can handle that, but for the ones who cannot, it may > > frustrate all involved. > > Well, starting a microproject and realizing afterwards that it was a > hard one is frustrating. But picking a very easy project and see someone > else do a brillant job on a harder one, and this someone else get > accepted is also frustrating. My "all involved" also included reviewers and list regulars. :) > I don't think this "kill -Wshadow warning" is really too hard. I'd say > it's hard enough to be interesting for students who have a chance to be > selected in the end. Fair enough. If you want to add it, go for it. The worst that can happen is some failed microprojects. -Peff ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-10 9:31 GSoC 2016: applications open, deadline = Fri, 19/2 Matthieu Moy 2016-02-10 11:09 ` Johannes Schindelin 2016-02-11 8:36 ` Christian Couder @ 2016-02-17 17:24 ` Thomas Gummerer 2016-02-17 18:32 ` Lars Schneider 2 siblings, 1 reply; 67+ messages in thread From: Thomas Gummerer @ 2016-02-17 17:24 UTC (permalink / raw) To: Matthieu Moy Cc: git, Jeff King, Christian Couder, Johannes Schindelin, Stefan Beller On 02/10, Matthieu Moy wrote: > Work on the application itself, and on the list of ideas. One potential idea: Make destructive git commands more safe for the user. Some commands (e.g. git reset --hard, git clean -f, etc.) can potentially destroy some of the users work. Store the information that we are potentially losing somewhere, where it's easily retrievable by the user. This should probably be hidden behind a new config variable (core.iKnowWhatImDoingButIReallyDont or something better), as it has the potential to really inflate the repository size (when storing binary files that should be deleted by git clean for example). It happened more than once that I thought I knew what I was doing, but would have been really glad if git saved me from my mistakes. I haven't thought this through much further than just the idea, so it would be great to hear some opinions on it first. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-17 17:24 ` Thomas Gummerer @ 2016-02-17 18:32 ` Lars Schneider 2016-02-17 18:58 ` Matthieu Moy 0 siblings, 1 reply; 67+ messages in thread From: Lars Schneider @ 2016-02-17 18:32 UTC (permalink / raw) To: Thomas Gummerer Cc: Matthieu Moy, git, Jeff King, Christian Couder, Johannes Schindelin, Stefan Beller On 17 Feb 2016, at 18:24, Thomas Gummerer <t.gummerer@gmail.com> wrote: > On 02/10, Matthieu Moy wrote: >> Work on the application itself, and on the list of ideas. > > One potential idea: > > Make destructive git commands more safe for the user. > > Some commands (e.g. git reset --hard, git clean -f, etc.) can > potentially destroy some of the users work. Store the information > that we are potentially losing somewhere, where it's easily > retrievable by the user. > > This should probably be hidden behind a new config variable > (core.iKnowWhatImDoingButIReallyDont or something better), as it has > the potential to really inflate the repository size (when storing > binary files that should be deleted by git clean for example). > > It happened more than once that I thought I knew what I was doing, but > would have been really glad if git saved me from my mistakes. > > I haven't thought this through much further than just the idea, so it > would be great to hear some opinions on it first. Coincidentally I started working on similar thing already (1) and I have lots of ideas around it. I get endless requests at my $DAYJOB of messed up Git repos where people just pasted stuff from StackOverflow without a deep understanding of what they are doing. If the lists agrees to take this topic for GSoC I would be happy to co-mentor it. Cheers, Lars (1) using Git config hacks > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-17 18:32 ` Lars Schneider @ 2016-02-17 18:58 ` Matthieu Moy 2016-02-17 19:03 ` Junio C Hamano ` (2 more replies) 0 siblings, 3 replies; 67+ messages in thread From: Matthieu Moy @ 2016-02-17 18:58 UTC (permalink / raw) To: Lars Schneider Cc: Thomas Gummerer, git, Jeff King, Christian Couder, Johannes Schindelin, Stefan Beller Lars Schneider <larsxschneider@gmail.com> writes: > Coincidentally I started working on similar thing already (1) and I have > lots of ideas around it. I guess it's time to start sharing these ideas then ;-). I think there's a lot to do. If we want to push this idea as a GSoC project, we need: * A rough plan. We can't expect students to read a vague text like "let's make Git safer" and write a real proposal out of it. * A way to start this rough plan incrementally (i.e. first step should be easy and mergeable without waiting for next steps). Feel free to start writting an idea for http://git.github.io/SoC-2016-Ideas/. It'd be nice to have a few more ideas before Friday. We can polish them later if needed. -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-17 18:58 ` Matthieu Moy @ 2016-02-17 19:03 ` Junio C Hamano 2016-02-17 20:21 ` Matthieu Moy 2016-02-18 8:41 ` GSoC 2016: applications open, deadline = Fri, 19/2 Lars Schneider 2016-02-19 3:09 ` Duy Nguyen 2 siblings, 1 reply; 67+ messages in thread From: Junio C Hamano @ 2016-02-17 19:03 UTC (permalink / raw) To: Matthieu Moy Cc: Lars Schneider, Thomas Gummerer, git, Jeff King, Christian Couder, Johannes Schindelin, Stefan Beller Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes: > Feel free to start writting an idea for > http://git.github.io/SoC-2016-Ideas/. It'd be nice to have a few more > ideas before Friday. We can polish them later if needed. The top of the page says it is shared between Git and libgit2; should that be really the case? We later say we only have capacity for two mentors, but the mentor pool capacity is not shared between two projects. I am wondering if we heard from libgit2 folks if they want us to host them (or they want to participate in GSoC at all). ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-17 19:03 ` Junio C Hamano @ 2016-02-17 20:21 ` Matthieu Moy 2016-02-17 20:45 ` Jeff King 0 siblings, 1 reply; 67+ messages in thread From: Matthieu Moy @ 2016-02-17 20:21 UTC (permalink / raw) To: Junio C Hamano Cc: Lars Schneider, Thomas Gummerer, git, Jeff King, Christian Couder, Johannes Schindelin, Stefan Beller Junio C Hamano <gitster@pobox.com> writes: > Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes: > >> Feel free to start writting an idea for >> http://git.github.io/SoC-2016-Ideas/. It'd be nice to have a few more >> ideas before Friday. We can polish them later if needed. > > The top of the page says it is shared between Git and libgit2; > should that be really the case? We later say we only have capacity > for two mentors, but the mentor pool capacity is not shared between > two projects. > > I am wondering if we heard from libgit2 folks if they want us to > host them (or they want to participate in GSoC at all). The libgit2 mention is left from previous versions of this page. I left a message on their IRC channel asking to join this thread if people were interested (I don't know the libgit2 community really well, and I didn't find a mailing-list to Cc here). I did not hear anything from them. We should probably remove the mention of libgit2. Or, if anyone receiving this message is interested in having libgit2 participate, or knows anyone who may be, speak now. -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-17 20:21 ` Matthieu Moy @ 2016-02-17 20:45 ` Jeff King 2016-02-17 21:33 ` Junio C Hamano 0 siblings, 1 reply; 67+ messages in thread From: Jeff King @ 2016-02-17 20:45 UTC (permalink / raw) To: Matthieu Moy Cc: Carlos Martín Nieto, Junio C Hamano, Lars Schneider, Thomas Gummerer, git, Christian Couder, Johannes Schindelin, Stefan Beller On Wed, Feb 17, 2016 at 09:21:20PM +0100, Matthieu Moy wrote: > > I am wondering if we heard from libgit2 folks if they want us to > > host them (or they want to participate in GSoC at all). > > The libgit2 mention is left from previous versions of this page. I left > a message on their IRC channel asking to join this thread if people were > interested (I don't know the libgit2 community really well, and I didn't > find a mailing-list to Cc here). > > I did not hear anything from them. We should probably remove the mention > of libgit2. Or, if anyone receiving this message is interested in having > libgit2 participate, or knows anyone who may be, speak now. I think they do a lot of their communication via GitHub issues. I've cc'd Carlos, the maintainer, who can ping the rest of the community as appropriate. I don't think we did a libgit2 project last year, and included the libgit2 references mainly so that we would not drop them with zero warning. -Peff ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-17 20:45 ` Jeff King @ 2016-02-17 21:33 ` Junio C Hamano 2016-02-18 9:38 ` Carlos Martín Nieto 0 siblings, 1 reply; 67+ messages in thread From: Junio C Hamano @ 2016-02-17 21:33 UTC (permalink / raw) To: Jeff King Cc: Matthieu Moy, Carlos Martín Nieto, Lars Schneider, Thomas Gummerer, git, Christian Couder, Johannes Schindelin, Stefan Beller Jeff King <peff@peff.net> writes: > On Wed, Feb 17, 2016 at 09:21:20PM +0100, Matthieu Moy wrote: > >> > I am wondering if we heard from libgit2 folks if they want us to >> > host them (or they want to participate in GSoC at all). >> >> The libgit2 mention is left from previous versions of this page. I left >> a message on their IRC channel asking to join this thread if people were >> interested (I don't know the libgit2 community really well, and I didn't >> find a mailing-list to Cc here). >> >> I did not hear anything from them. We should probably remove the mention >> of libgit2. Or, if anyone receiving this message is interested in having >> libgit2 participate, or knows anyone who may be, speak now. > > I think they do a lot of their communication via GitHub issues. I've > cc'd Carlos, the maintainer, who can ping the rest of the community as > appropriate. > > I don't think we did a libgit2 project last year, and included the > libgit2 references mainly so that we would not drop them with zero > warning. Understandable. I do not mind seeing us hosting them if that is what they want, but the candidate selection and mentor assignment between two more-or-less independent projects would not work very well unless there is _some_ degree of coordination ;-) ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-17 21:33 ` Junio C Hamano @ 2016-02-18 9:38 ` Carlos Martín Nieto 2016-02-19 8:06 ` GSoC 2016: applications open, libgit2 and git.git Matthieu Moy 2016-02-19 8:09 ` GSoC 2016: applications open, deadline = now => submission Matthieu Moy 0 siblings, 2 replies; 67+ messages in thread From: Carlos Martín Nieto @ 2016-02-18 9:38 UTC (permalink / raw) To: Junio C Hamano, Jeff King Cc: Matthieu Moy, Lars Schneider, Thomas Gummerer, git, Christian Couder, Johannes Schindelin, Stefan Beller On Wed, 2016-02-17 at 13:33 -0800, Junio C Hamano wrote: > Jeff King <peff@peff.net> writes: > > > On Wed, Feb 17, 2016 at 09:21:20PM +0100, Matthieu Moy wrote: > > > > > > I am wondering if we heard from libgit2 folks if they want us > > > > to > > > > host them (or they want to participate in GSoC at all). > > > > > > The libgit2 mention is left from previous versions of this page. > > > I left > > > a message on their IRC channel asking to join this thread if > > > people were > > > interested (I don't know the libgit2 community really well, and I > > > didn't > > > find a mailing-list to Cc here). > > > > > > I did not hear anything from them. We should probably remove the > > > mention > > > of libgit2. Or, if anyone receiving this message is interested in > > > having > > > libgit2 participate, or knows anyone who may be, speak now. > > > > I think they do a lot of their communication via GitHub issues. > > I've > > cc'd Carlos, the maintainer, who can ping the rest of the community > > as > > appropriate. > > > > I don't think we did a libgit2 project last year, and included the > > libgit2 references mainly so that we would not drop them with zero > > warning. > > Understandable. I do not mind seeing us hosting them if that is > what they want, but the candidate selection and mentor assignment > between two more-or-less independent projects would not work very > well unless there is _some_ degree of coordination ;-) We still have most of the same things open as for the 2014 list. I'll ask around to see if we have. Last year I wasn't involved in the candidate selection but IIRC we didn't do a project as none of the applications showed the candidates would be capable of doing the project they were applying for. I'll ask around to make sure people would be able to be mentors, but I think that we would still like to put forward a few projects (I can send a PR with the projects that we would still like to see to the 2016 page). Cheers, cmn ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, libgit2 and git.git 2016-02-18 9:38 ` Carlos Martín Nieto @ 2016-02-19 8:06 ` Matthieu Moy 2016-02-19 9:46 ` Carlos Martín Nieto 2016-02-19 8:09 ` GSoC 2016: applications open, deadline = now => submission Matthieu Moy 1 sibling, 1 reply; 67+ messages in thread From: Matthieu Moy @ 2016-02-19 8:06 UTC (permalink / raw) To: Carlos Martín Nieto Cc: Junio C Hamano, Jeff King, Lars Schneider, Thomas Gummerer, git, Christian Couder, Johannes Schindelin, Stefan Beller Carlos Martín Nieto <cmn@dwim.me> writes: > We still have most of the same things open as for the 2014 list. I'll > ask around to see if we have. Last year I wasn't involved in the > candidate selection but IIRC we didn't do a project as none of the > applications showed the candidates would be capable of doing the > project they were applying for. OK. It's essentially too late to change this for this year, but next time we should discuss earlier about how we want to organize this git.git/libgit2 thing. For example, I think it would make little sense to have a git.git microproject and then apply for a libgit2 project since we have very different ways of interacting. And honnestly, right now the application is really git.git-centric so I don't think it attracts students towards libgit2. So, if you want to attract more students, we should work on that. I tried to clarify the situation with libgit2: https://github.com/git/git.github.io/commit/94d1747eb9621b3bc892be2f232338b7933ac271 Please say if you're happy/unhappy with what I wrote. PRs are still welcome after the deadline. > I'll ask around to make sure people would be able to be mentors, but I > think that we would still like to put forward a few projects (I can > send a PR with the projects that we would still like to see to the 2016 > page). We don't have this everywhere, but having a "potential mentors" field for projects also helps (students, and us, at least to make sure we do have mentors). Cheers, -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, libgit2 and git.git 2016-02-19 8:06 ` GSoC 2016: applications open, libgit2 and git.git Matthieu Moy @ 2016-02-19 9:46 ` Carlos Martín Nieto 2016-02-29 21:01 ` Git has been accepted as a GSoC 2016 mentor organization! Matthieu Moy 0 siblings, 1 reply; 67+ messages in thread From: Carlos Martín Nieto @ 2016-02-19 9:46 UTC (permalink / raw) To: Matthieu Moy Cc: Junio C Hamano, Jeff King, Lars Schneider, Thomas Gummerer, git, Christian Couder, Johannes Schindelin, Stefan Beller On Fri, 2016-02-19 at 09:06 +0100, Matthieu Moy wrote: > Carlos Martín Nieto <cmn@dwim.me> writes: > > > We still have most of the same things open as for the 2014 list. > > I'll > > ask around to see if we have. Last year I wasn't involved in the > > candidate selection but IIRC we didn't do a project as none of the > > applications showed the candidates would be capable of doing the > > project they were applying for. > > OK. It's essentially too late to change this for this year, but next > time we should discuss earlier about how we want to organize this > git.git/libgit2 thing. For example, I think it would make little > sense > to have a git.git microproject and then apply for a libgit2 project > since we have very different ways of interacting. And honnestly, > right > now the application is really git.git-centric so I don't think it > attracts students towards libgit2. So, if you want to attract more > students, we should work on that. > > I tried to clarify the situation with libgit2: > > https://github.com/git/git.github.io/commit/94d1747eb9621b3bc892be2f2 > 32338b7933ac271 > > Please say if you're happy/unhappy with what I wrote. PRs are still > welcome after the deadline. This is fine. Our projects file should also be noted for the microprojects, but I'll write that up myself. I'm writing up the two projects we've thought up as part of the ideas page and will send a PR today. cmn ^ permalink raw reply [flat|nested] 67+ messages in thread
* Git has been accepted as a GSoC 2016 mentor organization! 2016-02-19 9:46 ` Carlos Martín Nieto @ 2016-02-29 21:01 ` Matthieu Moy 2016-03-08 22:46 ` Jeff King 0 siblings, 1 reply; 67+ messages in thread From: Matthieu Moy @ 2016-02-29 21:01 UTC (permalink / raw) To: git Cc: Junio C Hamano, Jeff King, Lars Schneider, Thomas Gummerer, Christian Couder, Johannes Schindelin, Stefan Beller, Carlos Martín Nieto Hi, This is my pleasure to inform you all that Git has just been accepted as a GSoC mentor organization. https://summerofcode.withgoogle.com/organizations/?sp-page=3 I've invited Johannes, Stefan, Christian and Lars as potential mentors for Git, and Carlos to represent libgit2. I also took the freedom to invite Junio, not really as potential mentor, but to give access to students proposals and give an opportunity to comment. Let me (or Peff) know if you want an invitation too. No commitment to mentor anyone for now if you accept the invitation, this will be decided later. As a reminder, we post all the GSoC related stuff here: http://git.github.io/SoC-2016-Ideas/ http://git.github.io/SoC-2016-Microprojects/ Cheers! -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Git has been accepted as a GSoC 2016 mentor organization! 2016-02-29 21:01 ` Git has been accepted as a GSoC 2016 mentor organization! Matthieu Moy @ 2016-03-08 22:46 ` Jeff King 2016-03-08 23:01 ` Junio C Hamano ` (3 more replies) 0 siblings, 4 replies; 67+ messages in thread From: Jeff King @ 2016-03-08 22:46 UTC (permalink / raw) To: Matthieu Moy Cc: git, Junio C Hamano, Lars Schneider, Thomas Gummerer, Christian Couder, Johannes Schindelin, Stefan Beller, Carlos Martín Nieto On Mon, Feb 29, 2016 at 10:01:52PM +0100, Matthieu Moy wrote: > Hi, > > This is my pleasure to inform you all that Git has just been accepted as > a GSoC mentor organization. > > https://summerofcode.withgoogle.com/organizations/?sp-page=3 > > I've invited Johannes, Stefan, Christian and Lars as potential mentors > for Git, and Carlos to represent libgit2. I also took the freedom to > invite Junio, not really as potential mentor, but to give access to > students proposals and give an opportunity to comment. > > Let me (or Peff) know if you want an invitation too. No commitment to > mentor anyone for now if you accept the invitation, this will be decided > later. > > As a reminder, we post all the GSoC related stuff here: > > http://git.github.io/SoC-2016-Ideas/ > http://git.github.io/SoC-2016-Microprojects/ I've also signed us up for Outreachy, which is an internship program designed to encourage open source participation by under-represented groups. Details are here: https://www.gnome.org/outreachy/ but I'll try to summarize here what it means for us. It's similar to GSoC and runs during the same time frame. It's open to non-students (so some people who could not do GSoC can apply), but applications must be from one of the under-represented groups listed at the link above. People can apply to both if they are eligible, but can only be accepted to one. As Outreachy is advertised in certain circles where GSoC is not (or where people might be intimidated by GSoC), my hope is we can drive some more diversity in GSoC applicants (not to mention catching people who don't qualify for GSoC because they aren't following traditional education paths). The catch is that Outreachy doesn't provide the stipend money; the projects have to find their own funding. I don't think this should be a big problem for Git. I have some leads we can follow if we get an Outreachy intern (and obviously if they are accepted through GSoC, it's a non-issue). I've put up a landing page for our participation here: http://git.github.io/Outreachy-2016-May/ Comments/patches welcome. Most of the resources are just pointers to our GSoC stuff. This does mean I've effectively signed our mentors up to participate in this program. I hope that's OK, as it's effectively the same commitment as GSoC (and obviously we would spread our mentoring resources over the total pool of applicants between both programs, and not double-book any mentors). And finally, I'm sorry to spring this on the list as a fait accompli. One of the leaders of Outreachy contacted me, Junio, and Shawn off-list asking if we'd like to participate. We agreed it sounded reasonable, but we have to move reasonably quickly, as the application period has already begun (it runs until March 22). That's why I've taken the initial steps independently. But if anybody has comments, or is violently opposed, please don't take my actions as an attempt to skip the discussion phase. :) -Peff ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Git has been accepted as a GSoC 2016 mentor organization! 2016-03-08 22:46 ` Jeff King @ 2016-03-08 23:01 ` Junio C Hamano 2016-03-08 23:03 ` Jeff King 2016-03-09 9:55 ` Matthieu Moy ` (2 subsequent siblings) 3 siblings, 1 reply; 67+ messages in thread From: Junio C Hamano @ 2016-03-08 23:01 UTC (permalink / raw) To: Jeff King Cc: Matthieu Moy, git, Lars Schneider, Thomas Gummerer, Christian Couder, Johannes Schindelin, Stefan Beller, Carlos Martín Nieto Jeff King <peff@peff.net> writes: > I've also signed us up for Outreachy, which is an internship program > designed to encourage open source participation by under-represented > groups. Details are here: > > https://www.gnome.org/outreachy/ > > but I'll try to summarize here what it means for us. https://wiki.gnome.org/Outreachy/2016/MayAugust#Participating_Organizations does not seem to list us though. Is that expected? ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Git has been accepted as a GSoC 2016 mentor organization! 2016-03-08 23:01 ` Junio C Hamano @ 2016-03-08 23:03 ` Jeff King 0 siblings, 0 replies; 67+ messages in thread From: Jeff King @ 2016-03-08 23:03 UTC (permalink / raw) To: Junio C Hamano Cc: Matthieu Moy, git, Lars Schneider, Thomas Gummerer, Christian Couder, Johannes Schindelin, Stefan Beller, Carlos Martín Nieto On Tue, Mar 08, 2016 at 03:01:47PM -0800, Junio C Hamano wrote: > Jeff King <peff@peff.net> writes: > > > I've also signed us up for Outreachy, which is an internship program > > designed to encourage open source participation by under-represented > > groups. Details are here: > > > > https://www.gnome.org/outreachy/ > > > > but I'll try to summarize here what it means for us. > > https://wiki.gnome.org/Outreachy/2016/MayAugust#Participating_Organizations > > does not seem to list us though. Is that expected? Yes. I _just_ sent an email to the organizers telling them our landing page was up (though I think we can add ourselves, too). -Peff ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Git has been accepted as a GSoC 2016 mentor organization! 2016-03-08 22:46 ` Jeff King 2016-03-08 23:01 ` Junio C Hamano @ 2016-03-09 9:55 ` Matthieu Moy 2016-03-09 14:08 ` Jeff King 2016-03-09 13:50 ` Johannes Schindelin 2016-03-09 19:34 ` Jeff King 3 siblings, 1 reply; 67+ messages in thread From: Matthieu Moy @ 2016-03-09 9:55 UTC (permalink / raw) To: Jeff King Cc: git, Junio C Hamano, Lars Schneider, Thomas Gummerer, Christian Couder, Johannes Schindelin, Stefan Beller, Carlos Martín Nieto Jeff King <peff@peff.net> writes: > I've also signed us up for Outreachy, which is an internship program > designed to encourage open source participation by under-represented > groups. Good. In the case of the Git community, "under-represented" may even be a euphemism as it is now :-\. > Most of the resources are just pointers to our GSoC stuff. This does > mean I've effectively signed our mentors up to participate in this > program. I hope that's OK, Not sure whether I was supposed to receive something, but I did not. -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Git has been accepted as a GSoC 2016 mentor organization! 2016-03-09 9:55 ` Matthieu Moy @ 2016-03-09 14:08 ` Jeff King 0 siblings, 0 replies; 67+ messages in thread From: Jeff King @ 2016-03-09 14:08 UTC (permalink / raw) To: Matthieu Moy Cc: git, Junio C Hamano, Lars Schneider, Thomas Gummerer, Christian Couder, Johannes Schindelin, Stefan Beller, Carlos Martín Nieto On Wed, Mar 09, 2016 at 10:55:00AM +0100, Matthieu Moy wrote: > > Most of the resources are just pointers to our GSoC stuff. This does > > mean I've effectively signed our mentors up to participate in this > > program. I hope that's OK, > > Not sure whether I was supposed to receive something, but I did not. No, you shouldn't have gotten anything yet. I only meant that since I am pointing Outreachy applicants to the GSoC ideas page, people who signed up to mentor GSoC may effectively be called on to mentor for Outreachy instead. It's basically the same commitment, which is why I was comfortable doing it without asking beforehand (but again, please speak up if you don't agree). -Peff ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Git has been accepted as a GSoC 2016 mentor organization! 2016-03-08 22:46 ` Jeff King 2016-03-08 23:01 ` Junio C Hamano 2016-03-09 9:55 ` Matthieu Moy @ 2016-03-09 13:50 ` Johannes Schindelin 2016-03-09 19:34 ` Jeff King 3 siblings, 0 replies; 67+ messages in thread From: Johannes Schindelin @ 2016-03-09 13:50 UTC (permalink / raw) To: Jeff King Cc: Matthieu Moy, git, Junio C Hamano, Lars Schneider, Thomas Gummerer, Christian Couder, Stefan Beller, Carlos Martín Nieto Hi Peff, On Tue, 8 Mar 2016, Jeff King wrote: > I've effectively signed our mentors up to participate in this program. > I hope that's OK Speaking for myself, I think this is more than just okay. I really like the idea of more diversity in the Git community. Ciao, Dscho ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: Git has been accepted as a GSoC 2016 mentor organization! 2016-03-08 22:46 ` Jeff King ` (2 preceding siblings ...) 2016-03-09 13:50 ` Johannes Schindelin @ 2016-03-09 19:34 ` Jeff King 3 siblings, 0 replies; 67+ messages in thread From: Jeff King @ 2016-03-09 19:34 UTC (permalink / raw) To: Matthieu Moy Cc: git, Junio C Hamano, Lars Schneider, Thomas Gummerer, Christian Couder, Johannes Schindelin, Stefan Beller, Carlos Martín Nieto On Tue, Mar 08, 2016 at 05:46:25PM -0500, Jeff King wrote: > Most of the resources are just pointers to our GSoC stuff. This does > mean I've effectively signed our mentors up to participate in this > program. I hope that's OK, as it's effectively the same commitment as > GSoC (and obviously we would spread our mentoring resources over the > total pool of applicants between both programs, and not double-book any > mentors). Actually, there is one thing we should do. :) Our ideas page is missing potential mentors for many of the projects. This is useful information for coordinating GSoC, but I think is doubly important for Outreachy, where applicants are encouraged to get in touch with mentors early. So would people who have proposed ideas mind going over the page at http://git.github.io/SoC-2016-Ideas/ and making sure they are listed under their projects? And likewise, can people make sure they are listed with their preferred email addresses? I do think we generally expect people to communicate on the list, but it should be as easy as possible for them to cc the mentors. If you have fixes to make, please feel free to push straight to "master" of that repository (if you have access), or open a pull request or send me a patch if you don't. -Peff ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = now => submission 2016-02-18 9:38 ` Carlos Martín Nieto 2016-02-19 8:06 ` GSoC 2016: applications open, libgit2 and git.git Matthieu Moy @ 2016-02-19 8:09 ` Matthieu Moy 2016-02-19 8:18 ` Jeff King 1 sibling, 1 reply; 67+ messages in thread From: Matthieu Moy @ 2016-02-19 8:09 UTC (permalink / raw) To: Carlos Martín Nieto, Junio C Hamano, Jeff King, Lars Schneider, Thomas Gummerer, git, Christian Couder, Johannes Schindelin, Stefan Beller Hi, The deadline is tonight (19:00 UTC). I don't want to miss it, so I'll submit the application very soon based on http://git.github.io/SoC-2016-Org-Application/. Other pages can still be modified afterwards. -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = now => submission 2016-02-19 8:09 ` GSoC 2016: applications open, deadline = now => submission Matthieu Moy @ 2016-02-19 8:18 ` Jeff King 2016-02-19 9:10 ` GSoC 2016: applications open, deadline = now => submitted Matthieu Moy 0 siblings, 1 reply; 67+ messages in thread From: Jeff King @ 2016-02-19 8:18 UTC (permalink / raw) To: Matthieu Moy Cc: Carlos Martín Nieto, Junio C Hamano, Lars Schneider, Thomas Gummerer, git, Christian Couder, Johannes Schindelin, Stefan Beller On Fri, Feb 19, 2016 at 09:09:50AM +0100, Matthieu Moy wrote: > Hi, > > The deadline is tonight (19:00 UTC). I don't want to miss it, so I'll > submit the application very soon based on > http://git.github.io/SoC-2016-Org-Application/. I think we can continue to modify up to the deadline (at least that has been the case in years past). But I agree with getting something in place and iterating from there. -Peff ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = now => submitted 2016-02-19 8:18 ` Jeff King @ 2016-02-19 9:10 ` Matthieu Moy 2016-02-19 11:37 ` Jeff King 0 siblings, 1 reply; 67+ messages in thread From: Matthieu Moy @ 2016-02-19 9:10 UTC (permalink / raw) To: Jeff King Cc: Carlos Martín Nieto, Junio C Hamano, Lars Schneider, Thomas Gummerer, git, Christian Couder, Johannes Schindelin, Stefan Beller Jeff King <peff@peff.net> writes: > On Fri, Feb 19, 2016 at 09:09:50AM +0100, Matthieu Moy wrote: > >> Hi, >> >> The deadline is tonight (19:00 UTC). I don't want to miss it, so I'll >> submit the application very soon based on >> http://git.github.io/SoC-2016-Org-Application/. > > I think we can continue to modify up to the deadline (at least that has > been the case in years past). Indeed: I've completed the application and it's still possible to modify (the form just says "You've completed this form", but there's no scary "submit and remove write access from now" button ;-)). I had to modify the text a bit to fit within the new length limit (1000 characters for most fields). The content of the form should be the same as what's currently on http://git.github.io/SoC-2016-Org-Application/. Please check. Thanks, -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = now => submitted 2016-02-19 9:10 ` GSoC 2016: applications open, deadline = now => submitted Matthieu Moy @ 2016-02-19 11:37 ` Jeff King 0 siblings, 0 replies; 67+ messages in thread From: Jeff King @ 2016-02-19 11:37 UTC (permalink / raw) To: Matthieu Moy Cc: Carlos Martín Nieto, Junio C Hamano, Lars Schneider, Thomas Gummerer, git, Christian Couder, Johannes Schindelin, Stefan Beller On Fri, Feb 19, 2016 at 10:10:55AM +0100, Matthieu Moy wrote: > > I think we can continue to modify up to the deadline (at least that has > > been the case in years past). > > Indeed: I've completed the application and it's still possible to modify > (the form just says "You've completed this form", but there's no scary > "submit and remove write access from now" button ;-)). > > I had to modify the text a bit to fit within the new length limit (1000 > characters for most fields). The content of the form should be the same > as what's currently on http://git.github.io/SoC-2016-Org-Application/. > Please check. I read over what is in Google's application system, and it all looks good. I did make one minor change, which is that I listed "Software Freedom Conservancy" as a foundation of which we are a member. I don't think it will make a difference either way to our application, but they may want to have it in their system, as it becomes relevant later on for invoicing the mentor payments. Matthieu, thanks for coordinating the application effort this year. And thanks to everybody else for submitting ideas and microprojects. -Peff ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-17 18:58 ` Matthieu Moy 2016-02-17 19:03 ` Junio C Hamano @ 2016-02-18 8:41 ` Lars Schneider 2016-02-18 18:38 ` Stefan Beller 2016-02-19 11:46 ` Thomas Gummerer 2016-02-19 3:09 ` Duy Nguyen 2 siblings, 2 replies; 67+ messages in thread From: Lars Schneider @ 2016-02-18 8:41 UTC (permalink / raw) To: Matthieu Moy Cc: Thomas Gummerer, git, Jeff King, Christian Couder, Johannes Schindelin, Stefan Beller On 17 Feb 2016, at 19:58, Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote: > Lars Schneider <larsxschneider@gmail.com> writes: > >> Coincidentally I started working on similar thing already (1) and I have >> lots of ideas around it. > > I guess it's time to start sharing these ideas then ;-). > > I think there's a lot to do. If we want to push this idea as a GSoC > project, we need: > > * A rough plan. We can't expect students to read a vague text like > "let's make Git safer" and write a real proposal out of it. > > * A way to start this rough plan incrementally (i.e. first step should > be easy and mergeable without waiting for next steps). > > Feel free to start writting an idea for > http://git.github.io/SoC-2016-Ideas/. It'd be nice to have a few more > ideas before Friday. We can polish them later if needed. I published my ideas here: https://github.com/git/git.github.io/pull/125/files Do you think that works as start or do we need more detailed, hands-on instructions? Thanks, Lars ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-18 8:41 ` GSoC 2016: applications open, deadline = Fri, 19/2 Lars Schneider @ 2016-02-18 18:38 ` Stefan Beller 2016-02-18 19:13 ` Junio C Hamano 2016-02-19 11:46 ` Thomas Gummerer 1 sibling, 1 reply; 67+ messages in thread From: Stefan Beller @ 2016-02-18 18:38 UTC (permalink / raw) To: Lars Schneider Cc: Matthieu Moy, Thomas Gummerer, git, Jeff King, Christian Couder, Johannes Schindelin On Thu, Feb 18, 2016 at 12:41 AM, Lars Schneider <larsxschneider@gmail.com> wrote: >> Feel free to start writting an idea for >> http://git.github.io/SoC-2016-Ideas/. It'd be nice to have a few more >> ideas before Friday. We can polish them later if needed. > > I published my ideas here: > https://github.com/git/git.github.io/pull/125/files I like the idea of a beginner mode, but on the other hand that looks inflexible to me ;) (What if I want to use rebase, but not reset --hard?) I am confused by the black white mode, did you switch allow and deny in there? > > Do you think that works as start or do we need more detailed, hands-on > instructions? > > Thanks, > Lars ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-18 18:38 ` Stefan Beller @ 2016-02-18 19:13 ` Junio C Hamano 2016-02-19 7:34 ` Matthieu Moy 2016-02-19 9:23 ` Lars Schneider 0 siblings, 2 replies; 67+ messages in thread From: Junio C Hamano @ 2016-02-18 19:13 UTC (permalink / raw) To: Stefan Beller Cc: Lars Schneider, Matthieu Moy, Thomas Gummerer, git, Jeff King, Christian Couder, Johannes Schindelin Stefan Beller <sbeller@google.com> writes: > On Thu, Feb 18, 2016 at 12:41 AM, Lars Schneider > <larsxschneider@gmail.com> wrote: >>> Feel free to start writting an idea for >>> http://git.github.io/SoC-2016-Ideas/. It'd be nice to have a few more >>> ideas before Friday. We can polish them later if needed. >> >> I published my ideas here: >> https://github.com/git/git.github.io/pull/125/files > > I like the idea of a beginner mode, but on the other hand that looks > inflexible to me ;) > (What if I want to use rebase, but not reset --hard?) That's simple. You say "cd .. && rm -fr repo && git clone" and start from scratch ;-). This whole "beginner should be limited to a 'safe' subset" is an unhealthy attitude. Deciding what the 'safe' subset is must be done with a lot of thinking by people who intimately know what implications it has to ban each feature. I do not think it would be a good fit for a project to give to a relatively new participant to the Git project. For example, I think banning "worktree" feature from newbies may not be a bad idea, as you can work on a project without using "worktree" at all, and use of "worktree" would only subject you to bugs that do not exist when you do not use that feature. The "shallow clone", "sparse checkout", and "untracked cache" fall into the same category for exactly the same reason. The "submodule" feature might fall into the same category for the same reason, but that is not something you as a project participant can unilaterally decide, as the project you are working on may have already decided to use the feature, so it is harder to ban from the beginners. But for the rest of really "core" part of Git, I do not think there is any such command that can be totally banned. We have these "powerful" tools for a reason. After making a mess experimenting with your working tree files, "reset --hard" is the best tool to go back to the known-good state, and robbing it from the users is not a sound approach to help them. When "powerful" becomes "too powerful" is when a "powerful" tool is misused. It is perhaps done by mistake or perhaps done by copying and pasting a solution from Interweb for a problem that does not match your situation without understanding what you are doing. What is needed to help beginners is to make the powerful tool harder to misuse. Of course, that would be a harder task, because you have to do a real thinking. You do not have to do any thinking to say that "a blanket ban that hides these powerful tools behind the beginner mode" helps beginners, but I do not think it is solving what really matters. At the same time, it just adds to the FUD, i.e. some commands are too powerful for their own good. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-18 19:13 ` Junio C Hamano @ 2016-02-19 7:34 ` Matthieu Moy 2016-02-19 20:35 ` Junio C Hamano 2016-02-19 9:23 ` Lars Schneider 1 sibling, 1 reply; 67+ messages in thread From: Matthieu Moy @ 2016-02-19 7:34 UTC (permalink / raw) To: Junio C Hamano Cc: Stefan Beller, Lars Schneider, Thomas Gummerer, git, Jeff King, Christian Couder, Johannes Schindelin Junio C Hamano <gitster@pobox.com> writes: > Deciding what the 'safe' subset is must be done with a lot of > thinking by people who intimately know what implications it has to > ban each feature. I do not think it would be a good fit for a > project to give to a relatively new participant to the Git project. I have to agree with this: this would actually be very hard to get a nice proposal from a student. Students can be good technically, but we can't expect them to be experienced and giving sound advices to beginners is hard in this situation. > We have these "powerful" tools for a reason. After making a mess > experimenting with your working tree files, "reset --hard" is the > best tool to go back to the known-good state, I disagree with that. This reminds me a discussion I had with a student a few years ago: student: how do a clear all changes from my worktree? me: git reset --hard the next day: student: OK, now, how do I get my changes back? me: ...! There's almost no situation where reset --hard is the best tool. If you just want to discard local changes, then "stash" is much safer (it'll eat a bit of your disk space, but in 99% cases it's not an issue). If you messed up a merge then "merge --abort" is safer. If the goal is to move HEAD, then "reset --keep" is safer. One thing I like about Git is: when a beginner messes up his tree or repo, his Git guru friend can almost always repair it easily (at least, much easier than it was with svn). But there are still a few ways for beginners to shoot themselves in the foot in a way that the guru cannot repair. Now, another issue with the proposed core.isbeginner is compatibility with scripts. Dangerous commands are often plumbing, and a beginner may still want to use scripts or other porcelain on top of it. Typically, I think this rules out "git reset --hard" which is legitimate in scripts. -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-19 7:34 ` Matthieu Moy @ 2016-02-19 20:35 ` Junio C Hamano 2016-02-20 9:28 ` Johannes Schindelin 0 siblings, 1 reply; 67+ messages in thread From: Junio C Hamano @ 2016-02-19 20:35 UTC (permalink / raw) To: Matthieu Moy Cc: Stefan Beller, Lars Schneider, Thomas Gummerer, git, Jeff King, Christian Couder, Johannes Schindelin Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes: >> We have these "powerful" tools for a reason. After making a mess >> experimenting with your working tree files, "reset --hard" is the >> best tool to go back to the known-good state, > > I disagree with that. This reminds me a discussion I had with a student > a few years ago: > > student: how do a clear all changes from my worktree? > me: git reset --hard > > the next day: > > student: OK, now, how do I get my changes back? > me: ...! > > There's almost no situation where reset --hard is the best tool. I obviously have to disagree. After maknig a mess experimenting, when you want to discard all that, "reset --hard" is the best tool--the situation of your student may be quite different but you didn't make it clear what s/he wanted to salvage. In any case, I wasn't asking about "clear all changes for now, to be salvaged later". The "experimenting" would include mergy operations like "am -3" and "cherry-pick". "After queuing a topic and trying it in isolation, an attempt to merge to the baseline results in quite a mess, and I give up"--there is nothing to salvage. And obviously, "stash" is not useful in such a situation. You could use "tar cf ../saved .", though. > Now, another issue with the proposed core.isbeginner is compatibility > with scripts. Yes. > Dangerous commands are often plumbing, and a beginner may > still want to use scripts or other porcelain on top of it. Typically, I > think this rules out "git reset --hard" which is legitimate in scripts. I agree that an "under core.isbeginner, the command will always be refused" change can be written without thinking and it will be useless for anything that has ledigimate uses (like, but not limited to, being used in scripts) [*1*]. But not so fast. If you can figure out when "git reset --hard" is legitimate based *NOT* only on the fact that it is driven by a script, but on what kind of modifications to the working tree contents, the index contents and the refs are about to be made by the command, then "core.isbeginner" can be a permission for the command to spend extra cycles to examine the situation carefully to decide to selectively go ahead, warn and go ahead, or refuse. That of course takes a real thinking. [Footnote] *1* I'd refuse to take a patch to make scripted Porcelains that make legit calls to "powerful" tools export GIT_SCRIPT_IS_RUNNING_YOU environment variable as a workaround for such a kludge. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-19 20:35 ` Junio C Hamano @ 2016-02-20 9:28 ` Johannes Schindelin 0 siblings, 0 replies; 67+ messages in thread From: Johannes Schindelin @ 2016-02-20 9:28 UTC (permalink / raw) To: Junio C Hamano Cc: Matthieu Moy, Stefan Beller, Lars Schneider, Thomas Gummerer, git, Jeff King, Christian Couder Hi Junio, On Fri, 19 Feb 2016, Junio C Hamano wrote: > The "experimenting" would include mergy operations like "am -3" and > "cherry-pick". "After queuing a topic and trying it in isolation, an > attempt to merge to the baseline results in quite a mess, and I give > up"--there is nothing to salvage. > > And obviously, "stash" is not useful in such a situation. I think this is more a short-coming of "stash" than anything else. Many a times did I wish I could simply quickly stash a failed merge and then come back later. Or not. Just like stashed changes without conflicts allow me to do already. Ciao, Dscho ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-18 19:13 ` Junio C Hamano 2016-02-19 7:34 ` Matthieu Moy @ 2016-02-19 9:23 ` Lars Schneider 2016-02-19 12:49 ` Matthieu Moy 2016-02-19 20:37 ` Junio C Hamano 1 sibling, 2 replies; 67+ messages in thread From: Lars Schneider @ 2016-02-19 9:23 UTC (permalink / raw) To: Junio C Hamano Cc: Stefan Beller, Matthieu Moy, Thomas Gummerer, git, Jeff King, Christian Couder, Johannes Schindelin On 18 Feb 2016, at 20:13, Junio C Hamano <gitster@pobox.com> wrote: > Stefan Beller <sbeller@google.com> writes: > >> On Thu, Feb 18, 2016 at 12:41 AM, Lars Schneider >> <larsxschneider@gmail.com> wrote: >>>> Feel free to start writting an idea for >>>> http://git.github.io/SoC-2016-Ideas/. It'd be nice to have a few more >>>> ideas before Friday. We can polish them later if needed. >>> >>> I published my ideas here: >>> https://github.com/git/git.github.io/pull/125/files >> >> I like the idea of a beginner mode, but on the other hand that looks >> inflexible to me ;) >> (What if I want to use rebase, but not reset --hard?) > > That's simple. You say "cd .. && rm -fr repo && git clone" and > start from scratch ;-). > > This whole "beginner should be limited to a 'safe' subset" is an > unhealthy attitude. > > Deciding what the 'safe' subset is must be done with a lot of > thinking by people who intimately know what implications it has to > ban each feature. I do not think it would be a good fit for a > project to give to a relatively new participant to the Git project. > > For example, I think banning "worktree" feature from newbies may not > be a bad idea, as you can work on a project without using "worktree" > at all, and use of "worktree" would only subject you to bugs that do > not exist when you do not use that feature. The "shallow clone", > "sparse checkout", and "untracked cache" fall into the same category > for exactly the same reason. The "submodule" feature might fall > into the same category for the same reason, but that is not > something you as a project participant can unilaterally decide, as > the project you are working on may have already decided to use the > feature, so it is harder to ban from the beginners. > > But for the rest of really "core" part of Git, I do not think there > is any such command that can be totally banned. > > We have these "powerful" tools for a reason. After making a mess > experimenting with your working tree files, "reset --hard" is the > best tool to go back to the known-good state, and robbing it from > the users is not a sound approach to help them. When "powerful" > becomes "too powerful" is when a "powerful" tool is misused. It is > perhaps done by mistake or perhaps done by copying and pasting a > solution from Interweb for a problem that does not match your > situation without understanding what you are doing. > > What is needed to help beginners is to make the powerful tool harder > to misuse. Of course, that would be a harder task, because you have > to do a real thinking. > > You do not have to do any thinking to say that "a blanket ban that > hides these powerful tools behind the beginner mode" helps > beginners, but I do not think it is solving what really matters. At > the same time, it just adds to the FUD, i.e. some commands are too > powerful for their own good. Thanks for your elaborate response. I think I got your point and I tried to adjust my "beginner mode" proposal accordingly [1]. Here is the relevant change: If this mode is enabled then Git shall print a warning message before running a potentially destructive command. In addition to the warning Git shall print a command that would reverse the operation if possible. Most of the information to reverse an operation is already available via git reflog. However, the task here is to make this information more easily accessible to Git beginners. -- Does this go into the direction of "making the powerful tool harder to misuse"? Thanks, Lars ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-19 9:23 ` Lars Schneider @ 2016-02-19 12:49 ` Matthieu Moy 2016-02-19 20:37 ` Junio C Hamano 1 sibling, 0 replies; 67+ messages in thread From: Matthieu Moy @ 2016-02-19 12:49 UTC (permalink / raw) To: Lars Schneider Cc: Junio C Hamano, Stefan Beller, Thomas Gummerer, git, Jeff King, Christian Couder, Johannes Schindelin Lars Schneider <larsxschneider@gmail.com> writes: > Thanks for your elaborate response. I think I got your point and I > tried to adjust my "beginner mode" proposal accordingly [1]. Now merged as https://github.com/git/git.github.io/commit/6b8b5e19cdb221192dedd70ba3e207636f1cdab1 I've added a warning for students: Note that this project is not technically difficult, it requires a deep understanding of Git: how each command is meant to be used, what are the potential dangers, ... Reaching a solution that effectively protects beginners without harming anyone is much harder than it seems. See for example [this thread](http://thread.gmane.org/gmane.comp.version-control.git/285893/focus=286614) for example potential objections. If chosen, this project should be discussed in depth on the list before and after the student application. I just want to avoid students loosing their time writting silly proposals (once you have seen what the majority of proposals looks like, nothing surprises you anymore ;-) ). -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-19 9:23 ` Lars Schneider 2016-02-19 12:49 ` Matthieu Moy @ 2016-02-19 20:37 ` Junio C Hamano 1 sibling, 0 replies; 67+ messages in thread From: Junio C Hamano @ 2016-02-19 20:37 UTC (permalink / raw) To: Lars Schneider Cc: Stefan Beller, Matthieu Moy, Thomas Gummerer, git, Jeff King, Christian Couder, Johannes Schindelin Lars Schneider <larsxschneider@gmail.com> writes: > If this mode is enabled then Git shall print a warning message before > running a potentially destructive command. In addition to the warning > Git shall print a command that would reverse the operation if possible. > Most of the information to reverse an operation is already available > via git reflog. However, the task here is to make this information more > easily accessible to Git beginners. > > -- > > Does this go into the direction of "making the powerful tool harder to > misuse"? Not really, if done without a real thinking. The approach risks to make the powerful tool harder to use, not just misuse. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-18 8:41 ` GSoC 2016: applications open, deadline = Fri, 19/2 Lars Schneider 2016-02-18 18:38 ` Stefan Beller @ 2016-02-19 11:46 ` Thomas Gummerer 1 sibling, 0 replies; 67+ messages in thread From: Thomas Gummerer @ 2016-02-19 11:46 UTC (permalink / raw) To: Lars Schneider Cc: Matthieu Moy, git, Jeff King, Christian Couder, Johannes Schindelin, Stefan Beller On 02/18, Lars Schneider wrote: > > On 17 Feb 2016, at 19:58, Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote: > > > Lars Schneider <larsxschneider@gmail.com> writes: > > > >> Coincidentally I started working on similar thing already (1) and I have > >> lots of ideas around it. > > > > I guess it's time to start sharing these ideas then ;-). > > > > I think there's a lot to do. If we want to push this idea as a GSoC > > project, we need: > > > > * A rough plan. We can't expect students to read a vague text like > > "let's make Git safer" and write a real proposal out of it. > > > > * A way to start this rough plan incrementally (i.e. first step should > > be easy and mergeable without waiting for next steps). > > > > Feel free to start writting an idea for > > http://git.github.io/SoC-2016-Ideas/. It'd be nice to have a few more > > ideas before Friday. We can polish them later if needed. > > I published my ideas here: > https://github.com/git/git.github.io/pull/125/files Sorry for posting my idea so late, but it took me a while to write this all up, and life has a habit of getting in the way. My idea goes into a different direction than yours. I do like the remote whitelist/blacklist project. Junio pointed out to me off list that this is to complicated for a GSoC project. I kind of agree with that, but I wanted to see how this could be split up, to completely convince myself as well. And indeed, the more I think about it the more risky it seems. Below there are some thoughts on a potential design, in case someone is interested, no code to back any of this up, sorry. Everything proposed below should be hidden behind some configuration variable, potentially one per command (?) - start with git-clean. It's well defined which files are cleaned from a repository when running the command. Add them to a commit on the tip of the current branch. Start a new branch (or use the existing one if applicable) in refs/restore/history, and add a commit including a notes file. The commit message contains the operation that was executed (clean in this case), and the hash of the commit we created which includes the cleaned files. Add a note to the commit, detailing from which command we come from, which files we added (not strictly necessary, as we can infer it from the parent commit). Useful in itself as the user can recover the files manually if needed, and can be sent as separate patch series. Potential problems: Git has no way to track directories. This can be mitigated by keeping the list of directories in the attached note. - add a git recover command. The command looks at This would look like `git recover <commit>`, where commit is the hash of the commit we saved before. This works by reading the note attached to the commit, figuring out which command was run before, and restoring the state we were in before. Potential problems: conflicts, but I think this can be solved by simply erroring out, at least in the first iteration. - the next command could be git mv -f, git reset -f and friends. It gets more tricky here, as we'll have to deal with the state of the files in the index. Analogous to git clean, the changes in the working tree are all staged and added to a new commit on the tip of the current branch. The note on this commit needs to contain the necessary data to rebuild the state in the index. The format is more closely specified below. We also need the corresponding changes in the git restore command. Restored files will be written to disk as racily smudged, so the contents are checked by git, as we lost the meta-data anyway. This comes at a slight performance impact, but I think that's okay as we potentially saved the user a lot of time re-doing all the changes. - git branch/tag --force. Store the name and the old location of the branch in refs/restore/history. There are no files lost with this operation, so no additional commits as for git clean or git reset etc. are needed. The format of the commit depends on the exact operation that was forced, for exact format see below. This treatment can't make all operations safe. Any operation that touches the remote is hard to undo as some users already might have fetched the new state of the remote (e.g. git push -f). Others such as git-gc will inevitably delete information from the disk, but changing that There's more, but I don't think just writing up all commands without any code would make any sense. Formats: - commits in refs/restore/history: empty commits with the following commit message format for git-clean and git-reset and friends: $versionnumber\n $command\n $branchname\n $sha1ofreferencedcommit\n empty commits with the following commit message format for git branch and friends $versionnumber\n $command\n (this includes the exact operation that was forced (e.g. move, delete etc.) $branchname\n $sha1ThatWasReferencedByTheBranch\n $overwrittenbranchname\n (this and the sha1 below are only used for --move) $sha1ReferencedByOverwrittenBranch\n - notes file: The format can be different for different commands, as they all have different needs - git clean: list of affected files and directories separated by '\0'. I think we could get away with only the directories, but adding the filenames as well might make the recovery part simpler. - git reset, etc.: the following info is stored for each file that is modified by the original command. 32-bit signature 32-bit number of index entries 32-bit mode (object type + unix permissions) 160-bit SHA-1 16-bit flags (extra careful here what we want to do with the assume valid flag) path name (variable length) resolve-undo extension (same format as in the index) Alternatives: - Have a history for each branch in refs/restore/$branchname. * Advantages: Each branch has its own history, which can lead to fewer conflicts when restoring (e.g. user uses `git reset --hard` on one branch, switches to another branch works (potentially adds more stuff to this branch), later goes back to the old branch and discovers `git reset --hard` was actually the wrong thing to do and would like the data back. * Disadvantages: It is harder for the user to intuitively know what git restore will do exactly. It's much more limited when we want to extend it to branch removals, etc. - Storing additional information in the refs/restore/history ref * Advantages: No need for extra notes * Disadvantages: Data doesn't get garbage collected without user interaction, potentially blowing up the repository size. Especially using `git clean`, where binary files might be involved. - Store the whole index in the note * Advantages: Simpler way of restoring the index (including all of the extensions) * Disadvantages: Need to take care of both the index and the split index. Will consume a lot more disk space in the normal case (only a few of the files in the repository are changed, while the majority remains unchanged). - Store the changed files in refs/restore/history instead of a new commit on the tip of the current branch. * Advantages: All the information is in one place. Data will not be garbage collected. * Disadvantages: Data will not be garbage collected. (Repository size is probably going to blow up after a while) It takes more effort to find the parent and diff against it. ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-17 18:58 ` Matthieu Moy 2016-02-17 19:03 ` Junio C Hamano 2016-02-18 8:41 ` GSoC 2016: applications open, deadline = Fri, 19/2 Lars Schneider @ 2016-02-19 3:09 ` Duy Nguyen 2016-02-19 3:20 ` Junio C Hamano 2016-02-19 7:17 ` Matthieu Moy 2 siblings, 2 replies; 67+ messages in thread From: Duy Nguyen @ 2016-02-19 3:09 UTC (permalink / raw) To: Matthieu Moy Cc: Lars Schneider, Thomas Gummerer, git, Jeff King, Christian Couder, Johannes Schindelin, Stefan Beller On Thu, Feb 18, 2016 at 1:58 AM, Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote: > Feel free to start writting an idea for > http://git.github.io/SoC-2016-Ideas/. It'd be nice to have a few more > ideas before Friday. We can polish them later if needed. Probably too late now, anyway.. with David's multiple ref backend work, we could have a third, no-dependency backend. We can use index format to store refs. Then we can avoid case-sensitivity issue with filesystems. Split-index could make it relatively cheap for updating refs. Later on, when we can store tree objects in index (*), some (rarely used) refs could be stored as tree objects and we can reduce index file size (and loading cost). This idea is inspired by Shawn's storing refs as tree objects mail, except that I stopped at "wait, if we want to create trees we (usually) have to go through index, why not just stop at index?". (*) In have some WIP in this area, but not ready for public discussion yet. And it's out of scope for GSoC. -- Duy ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-19 3:09 ` Duy Nguyen @ 2016-02-19 3:20 ` Junio C Hamano 2016-02-19 3:29 ` Duy Nguyen 2016-02-19 7:17 ` Matthieu Moy 1 sibling, 1 reply; 67+ messages in thread From: Junio C Hamano @ 2016-02-19 3:20 UTC (permalink / raw) To: Duy Nguyen Cc: Matthieu Moy, Lars Schneider, Thomas Gummerer, git, Jeff King, Christian Couder, Johannes Schindelin, Stefan Beller Duy Nguyen <pclouds@gmail.com> writes: > Probably too late now, anyway.. with David's multiple ref backend > work, we could have a third, no-dependency backend. We can use index > format to store refs. Then we can avoid case-sensitivity issue with > filesystems. I'd actually vote for a ref backend that is based on a tree object ;-) http://thread.gmane.org/gmane.comp.version-control.git/282677 ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-19 3:20 ` Junio C Hamano @ 2016-02-19 3:29 ` Duy Nguyen 0 siblings, 0 replies; 67+ messages in thread From: Duy Nguyen @ 2016-02-19 3:29 UTC (permalink / raw) To: Junio C Hamano Cc: Matthieu Moy, Lars Schneider, Thomas Gummerer, git, Jeff King, Christian Couder, Johannes Schindelin, Stefan Beller On Fri, Feb 19, 2016 at 10:20 AM, Junio C Hamano <gitster@pobox.com> wrote: > Duy Nguyen <pclouds@gmail.com> writes: > >> Probably too late now, anyway.. with David's multiple ref backend >> work, we could have a third, no-dependency backend. We can use index >> format to store refs. Then we can avoid case-sensitivity issue with >> filesystems. > > I'd actually vote for a ref backend that is based on a tree object ;-) > > http://thread.gmane.org/gmane.comp.version-control.git/282677 For reasonably small sets of refs I think index beats trees (remember we have cache-tree, which basically gives us the tree behind the scene), but when you have so many refs, hierarchical storage may be more efficient. Either way it's nice to see a builtin, no dependency backend besides "files". -- Duy ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-19 3:09 ` Duy Nguyen 2016-02-19 3:20 ` Junio C Hamano @ 2016-02-19 7:17 ` Matthieu Moy 2016-02-19 9:41 ` Duy Nguyen 1 sibling, 1 reply; 67+ messages in thread From: Matthieu Moy @ 2016-02-19 7:17 UTC (permalink / raw) To: Duy Nguyen Cc: Lars Schneider, Thomas Gummerer, git, Jeff King, Christian Couder, Johannes Schindelin, Stefan Beller Duy Nguyen <pclouds@gmail.com> writes: > On Thu, Feb 18, 2016 at 1:58 AM, Matthieu Moy > <Matthieu.Moy@grenoble-inp.fr> wrote: >> Feel free to start writting an idea for >> http://git.github.io/SoC-2016-Ideas/. It'd be nice to have a few more >> ideas before Friday. We can polish them later if needed. > > Probably too late now, anyway.. It's still time. I'll post the application very soon (a few hours from now), but the idea list is not included in the application, but linked from it. So we can add something before reviewers follow the link, and obviously we can add more before students start picking them. > with David's multiple ref backend work, we could have a third, > no-dependency backend. We can use index format to store refs. This sounds like an interesting but ambitious project for a GSoC. There are a lot of new stuff to understand for someone potentially new to Git's codebase. And it's hard to work incrementally: the result would hardly be mergeable before being almost finished. I think it's interesting to offer the idea, but there should be a warning for the student about the difficulties. Would you be willing to (co-)mentor? -- Matthieu Moy http://www-verimag.imag.fr/~moy/ ^ permalink raw reply [flat|nested] 67+ messages in thread
* Re: GSoC 2016: applications open, deadline = Fri, 19/2 2016-02-19 7:17 ` Matthieu Moy @ 2016-02-19 9:41 ` Duy Nguyen 0 siblings, 0 replies; 67+ messages in thread From: Duy Nguyen @ 2016-02-19 9:41 UTC (permalink / raw) To: Matthieu Moy Cc: Lars Schneider, Thomas Gummerer, git, Jeff King, Christian Couder, Johannes Schindelin, Stefan Beller On Fri, Feb 19, 2016 at 2:17 PM, Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote: >> with David's multiple ref backend work, we could have a third, >> no-dependency backend. We can use index format to store refs. > > This sounds like an interesting but ambitious project for a GSoC. There > are a lot of new stuff to understand for someone potentially new to > Git's codebase. And it's hard to work incrementally: the result would > hardly be mergeable before being almost finished. On the other hand, the actual amount of code they write is roughly about 1700 lines of refs/lmdb-backend.c. Which I guess can be written in a month once you know what's going on, basically how refs are handled (I think documents have been greatly improved), git object manipulation and optionally index manipulation (if we store in index instead of trees). I think it's manageable. But then I haven't interacted with students for a looong time. > I think it's interesting to offer the idea, but there should be a > warning for the student about the difficulties. Yep. > Would you be willing to (co-)mentor? I can't guarantee I will not disappear for a couple months again like last year. It depends on $DAY_JOB. So maybe co-mentor position, but my other co-mentor should be ready for that situation. -- Duy ^ permalink raw reply [flat|nested] 67+ messages in thread
end of thread, other threads:[~2016-03-09 19:34 UTC | newest] Thread overview: 67+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-02-10 9:31 GSoC 2016: applications open, deadline = Fri, 19/2 Matthieu Moy 2016-02-10 11:09 ` Johannes Schindelin 2016-02-10 17:44 ` Stefan Beller 2016-02-11 8:36 ` Christian Couder 2016-02-12 7:10 ` Matthieu Moy 2016-02-12 8:29 ` Lars Schneider 2016-02-12 9:11 ` Matthieu Moy 2016-02-12 13:04 ` Jeff King 2016-02-12 13:11 ` Jeff King 2016-02-13 11:21 ` Matthieu Moy 2016-02-16 18:10 ` Stefan Beller 2016-02-17 10:34 ` Matthieu Moy 2016-02-17 10:45 ` Duy Nguyen 2016-02-17 13:36 ` [PATCH 0/3] Turn git-rebase--*.sh to external helpers Nguyễn Thái Ngọc Duy 2016-02-17 13:36 ` [PATCH 1/3] rebase: move common functions to rebase--lib.sh Nguyễn Thái Ngọc Duy 2016-02-17 13:36 ` [PATCH 2/3] rebase: move cleanup code to exit_rebase() Nguyễn Thái Ngọc Duy 2016-02-17 14:03 ` Matthieu Moy 2016-02-17 13:36 ` [PATCH 3/3] rebase: turn git-rebase--*.sh into separate programs Nguyễn Thái Ngọc Duy 2016-02-17 14:05 ` Matthieu Moy 2016-02-17 14:22 ` [PATCH 0/3] Turn git-rebase--*.sh to external helpers Johannes Schindelin 2016-02-17 14:40 ` Duy Nguyen 2016-02-17 13:09 ` GSoC 2016: applications open, deadline = Fri, 19/2 Johannes Schindelin 2016-02-17 16:04 ` Christian Couder 2016-02-22 9:28 ` Duy Nguyen 2016-02-22 10:22 ` Matthieu Moy 2016-02-22 21:42 ` Jeff King 2016-02-22 21:56 ` Junio C Hamano 2016-02-22 22:02 ` Jeff King 2016-02-23 13:13 ` Matthieu Moy 2016-02-24 10:52 ` Jeff King 2016-02-17 17:24 ` Thomas Gummerer 2016-02-17 18:32 ` Lars Schneider 2016-02-17 18:58 ` Matthieu Moy 2016-02-17 19:03 ` Junio C Hamano 2016-02-17 20:21 ` Matthieu Moy 2016-02-17 20:45 ` Jeff King 2016-02-17 21:33 ` Junio C Hamano 2016-02-18 9:38 ` Carlos Martín Nieto 2016-02-19 8:06 ` GSoC 2016: applications open, libgit2 and git.git Matthieu Moy 2016-02-19 9:46 ` Carlos Martín Nieto 2016-02-29 21:01 ` Git has been accepted as a GSoC 2016 mentor organization! Matthieu Moy 2016-03-08 22:46 ` Jeff King 2016-03-08 23:01 ` Junio C Hamano 2016-03-08 23:03 ` Jeff King 2016-03-09 9:55 ` Matthieu Moy 2016-03-09 14:08 ` Jeff King 2016-03-09 13:50 ` Johannes Schindelin 2016-03-09 19:34 ` Jeff King 2016-02-19 8:09 ` GSoC 2016: applications open, deadline = now => submission Matthieu Moy 2016-02-19 8:18 ` Jeff King 2016-02-19 9:10 ` GSoC 2016: applications open, deadline = now => submitted Matthieu Moy 2016-02-19 11:37 ` Jeff King 2016-02-18 8:41 ` GSoC 2016: applications open, deadline = Fri, 19/2 Lars Schneider 2016-02-18 18:38 ` Stefan Beller 2016-02-18 19:13 ` Junio C Hamano 2016-02-19 7:34 ` Matthieu Moy 2016-02-19 20:35 ` Junio C Hamano 2016-02-20 9:28 ` Johannes Schindelin 2016-02-19 9:23 ` Lars Schneider 2016-02-19 12:49 ` Matthieu Moy 2016-02-19 20:37 ` Junio C Hamano 2016-02-19 11:46 ` Thomas Gummerer 2016-02-19 3:09 ` Duy Nguyen 2016-02-19 3:20 ` Junio C Hamano 2016-02-19 3:29 ` Duy Nguyen 2016-02-19 7:17 ` Matthieu Moy 2016-02-19 9:41 ` Duy Nguyen
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).