Re: summaries in git add --patch[PATCH 2/2]
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Dec 4, 2008, 09:00 UTC
- Message-ID
- <7vljuwe2na.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <49377F25.9020005@gmail.com>
William Pursell <bill.pursell@gmail.com> writes:
Show 12 quoted lines
> From b039fb8aa03efab3faf46c0a0a8d84cea974f26f Mon Sep 17 00:00:00 2001 > From: William Pursell <bill.pursell@gmail.com> > Date: Thu, 4 Dec 2008 06:48:57 +0000 > Subject: [PATCH 2/2] Add 'g' command to go to a hunk. > > When a minor change is made while the working directory > is in a bit of a mess (and the user should have done a > stash before making the minor edit, but didn't) it is > somewhat difficult to wade through all of the hunks using > git add --patch. This allows one to jump to the hunk > that needs to be staged without having to respond 'n' to > each preceding hunk.
The issue is not limited to "forgot to stash" situation.
> Signed-off-by: William Pursell <bill.pursell@gmail.com> > ---
It is customary to explain what you changed since v1 here, after the three-dash separator, to help reviewers.
Show 12 quoted lines
> git-add--interactive.perl | 26 ++++++++++++++++++++++++++ > 1 files changed, 26 insertions(+), 0 deletions(-) > > diff --git a/git-add--interactive.perl b/git-add--interactive.perl > index b25a841..555c981 100755 > --- a/git-add--interactive.perl > +++ b/git-add--interactive.perl > @@ -800,6 +800,7 @@ y - stage this hunk > n - do not stage this hunk > a - stage this and all the remaining hunks in the file > d - do not stage this hunk nor any of the remaining hunks in the file > +g - select a hunk to goto
"go to"? There are a few more.
Show 18 quoted lines
> j - leave this hunk undecided, see next undecided hunk
> J - leave this hunk undecided, see next hunk
> k - leave this hunk undecided, see previous undecided hunk
> @@ -946,6 +947,9 @@ sub patch_update_file {
> if ($ix < $num - 1) {
> $other .= '/J';
> }
> + if ($num > 1) {
> + $other .= '/g';
> + }
> for ($i = 0; $i < $num; $i++) {
> if (!defined $hunk[$i]{USE}) {
> $undecided = 1;
> @@ -979,6 +983,28 @@ sub patch_update_file {
> }
> next;
> }
> + elsif ($other =~ 'g' && $line =~ /^g(.*)/) {I think I fixed this with ($other =~ /g/ && ...) when I queued your previous round to 'pu' tonight.
> + my $response = $1; > + my $i = $ix > 10 ? $ix - 10 : 0;
This is different from v1. I understand the motivation (i.e. if you are at 73rd hunk of a 100-hunk series, showing hunks 63-83 instead of starting from hunk 1-10 would be nicer), but that is something to explain as one of the "changes since v1".
I think you are inside a loop that is controlled by another $i (see the context in the hunk before this one) and it would be better to use different variable, such as $hunk_no (or just $no).
Show 7 quoted lines
> + while ($response eq '') {
> + my $extra = "";
> + $i = display_hunks(\@hunk, $i);
> + if ($i < $num) {
> + $extra = " (<ret> to see more)";
> + }
> + print "goto which hunk$extra? ";"go to"?
Again, this came too late for tonight's round. I've parked your previous one with fix-up in 'pu', but you are free to tell me to replace it (together with [1/2] from your previous round) with an updated pair.