git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Robert David <robert.david.public@gmail.com>
To: Jeff King <peff@peff.net>
Cc: Thomas Rast <trast@student.ethz.ch>,
	Jonathan Nieder <jrnieder@gmail.com>,
	Git Mailing List <git@vger.kernel.org>,
	Matthieu Moy <Matthieu.Moy@imag.fr>
Subject: Re: GSOC idea: build in scripts and cleanups
Date: Thu, 7 Apr 2011 15:30:18 +0200	[thread overview]
Message-ID: <201104071530.19566.robert.david.public@gmail.com> (raw)
In-Reply-To: <20110405165212.GB9965@sigill.intra.peff.net>

[-- Attachment #1: Type: Text/Plain, Size: 5248 bytes --]

I'm sending the updated proposal. 

I was thinking about that and realized to do the cleaning and update of git-
add--interactive during GSoC and try to get that upstream (master,next). 
And as second part, start rewriting it into the C as longer term project. 
Which will lead in reviews past the GSoC during the year.


Robert.

########################################################
Abstract

Today git code consists of the base written in C and many helper shell or PERL 
scripts. While at a first time it is easier to write the script, final code is 
supposed to be in C. One of these scripts is git-add--interactive. 

Git-add--interactive is a helper script for git-add, which servers its options 
-i and -p. It definitely need to be integrated in git-add.
Which means, dividing the script in two parts: git-add -p and git-add -i. This 
involves usage of some code being written already in git.
Than writing some new functions common for both --patch and --interactive. And 
at last, fully integrating these options in git-add.

But before that, it is need to clean and extend the current git-add--
interactive, to serve user needs at the best. 
This means for example rewrite the main part of the way the patches are chosen 
by use, to let the user more flexibility.


Project goals

Main and final project goal is integrating fully git-add--interactive into 
current git-add code.
This task also include cleaning the functionality of this code, to make these 
functions more "standardized". 
This means consolidate the differences in these functions and make them more 
consistent in the user point of view.
As this project is a bit longer term for GSoC period, 
the final from GSoC point of view will be doing the first part of the work 
completely (the script part) 
and prepare the C part as architectonic preview for ongoing review.

How to consider this project has success?
That is pretty easy, the cleaned and extended git-add--interactive script will 
be merged into the master branch.

Interfaces

As this is mainly part of git-add, that means that it will need to be changed 
at the most.
There are also another commands using this functionality now: git-stash. 
So there is possibility that there would be some changes needs to be done to 
adopt new interface.

I want to use as much code as possible from current git code-base, but this 
means further analysis to decide what exactly use and what not.


Time-line 

The official time-line consists of 12 coding week, starting 24th May. The mid-
evaluation is in the 8th week.
So the plan is written in week order beginning on the first coding week. 

1) Pre-coding time
I will read the documentation, analyze the git-add--interactive code and 
possibly change some small amount of code there. 
To clean thinks up for upcoming work. I will also seek the git code to find out 
where is what, for further rewriting analyze.

2) 1-3 week
Get the code of git-add--interactive cleaned and possibly written some of the 
consistency stuff.
Analyze the code with the focus on code already written in C.

3) 4-5 week
Get the cleaning and consistency stuff done. 
Collect the community feedback to the code, to get things improve where it is 
needed.

4) 6-8 week
Work on the extensions to the script. Test and repair bugs, that will occur. 
Start the rewriting period, this will provide some architectonic basis to be 
included in git-add.

5) 9-11 week
Collect reviews and solve bugs.
Continue with the rewriting work. 
Test extensively.
Update documentation where needed.

6) 12 week
Write more documentation, to document what was done and how.
Correct remaining bugs and test.


About me

I'm a student of second year of bachelors study on Faculty of Information 
Technology, Czech Technical University in Prague, Czech Republic. 
I have some experience with C and script languages, because I did worked for 
company making client software for two years.
I have never contribute to open source projects, in the means of submitting 
patches (I did some bug-reporting in projects like midnight-commander, arch 
linux, debian linux). 
But as I love open source and use that for a long time, I realized I have to 
begin participating in development. Thus I see GSOC as a good startup for me.
My prior experience is doing shell and PERL scripts, because I do that as 
"every-week" work. I work also for Prague children free-time organization, 
learning children open source stuff and little bit programming, mainly some 
small scripts (www.ddmpraha.cz).

My git experience is purely user based. I use git for everyday work, 
administrating my computers and servers, keeping track of my school works, and 
my personal projects. In the past I wrote some scripts helping develop debian 
packages using purely git (as the software was not released yet I cant explain 
it further and I also don't work for that company any more. www.zonio.net). 
Because of GSOC start I wanted to find out more information about this proposal 
on git mailing list (http://article.gmane.org/gmane.comp.version-
control.git/170036)
########################################################

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 230 bytes --]

  parent reply	other threads:[~2011-04-07 13:31 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-26  0:41 GSOC idea: build in scripts and cleanups Robert David
2011-03-26  2:14 ` Jonathan Nieder
2011-03-26 13:39   ` Jeff King
2011-03-28  8:55     ` Robert David
2011-03-28 14:21       ` Jeff King
2011-03-30 15:39         ` Thomas Rast
2011-03-30 21:17           ` Robert David
2011-04-03 21:17           ` Robert David
2011-04-04  7:43           ` Robert David
2011-04-04 18:09             ` Junio C Hamano
2011-04-04 18:51               ` Robert David
2011-04-05 17:07               ` Jeff King
2011-04-05 18:18                 ` Junio C Hamano
2011-04-05 16:52             ` Jeff King
2011-04-05 23:27               ` Robert David
2011-04-07 13:30               ` Robert David [this message]
2011-04-07 22:19                 ` Junio C Hamano
2011-04-08  9:51                   ` Robert David
2011-04-11  6:34             ` Jonathan Nieder
2011-04-17 18:50               ` Robert David

Reply instructions:

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

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

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=201104071530.19566.robert.david.public@gmail.com \
    --to=robert.david.public@gmail.com \
    --cc=Matthieu.Moy@imag.fr \
    --cc=git@vger.kernel.org \
    --cc=jrnieder@gmail.com \
    --cc=peff@peff.net \
    --cc=trast@student.ethz.ch \
    /path/to/YOUR_REPLY

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

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).