Subject: Re: GSOC idea: build in scripts and cleanups

From: Jonathan Nieder <[email-masked]>
Date: Fri, 25 Mar 2011 21:14:35 -0500

(+cc: various relevant people for ideas)
Hi,

Robert David wrote:

> I'm long time user of git and very interested in development participation. 

Welcome!

> Having passing your GSOC ideas, keep my eyes on scripts building in and also 
> git add -p cleanups. Because I like this kind of work. 
>
> Because there are more thinks to do in the cleanup and rewrite task, I would 
> like to ask if there is some priority in these tasks? To let me focus on the 
> most important parts. 

Looking at the git-add--interactive.perl source, I see:

	process_args();
	refresh();
	if ($patch_mode) {
		patch_update_cmd();
	}
[...]

and patch_update_cmd looks like

	my @all_mods = list_modified($patch_mode_flavour{FILTER});
	my @mods = grep { !($_->{BINARY}) } @all_mods;
[...]
	if ($patch_mode) {
		@them = @mods;
	}
[...]
	for (@them) {
		return 0 if patch_update_file($_->{VALUE});
	}

patch_update_file loops over hunks in the diff for that file and acts
on them one at a time.  So a natural step might be to eliminate this
outer "for (@them)" loop, so the person at the keyboard could decide
to go back to a previous file or list all files and choose one.

Others may have more to say.  If there are things you wished "git
checkout --patch" was able to do, that can also help.

> I was also thinking if there isn't PERL a better choice in rewriting shell 
> scripts, due to planed porting (android, etc). Better than C. But I don't know 
> android and other platform so much, so thats why I'm asking.

So far (on Windows and various Unixen) it seems that C is much easier
to work with as far as porting goes.[2]

Jonathan

[1] Android is an odd example because the platform uses Java heavily
(so JGit might be a better fit for it).  Perhaps the wish for android
support should have been put on the Eclipse ideas page[2] and a link
added to git's; I dunno.
[2] http://wiki.eclipse.org/Google_Summer_of_Code_2011_Ideas#Ideas_submission