From: Junio C Hamano <gitster@pobox.com>
To: William Pursell <bill.pursell@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: summaries in git add --patch[PATCH 2/2]
Date: Wed, 03 Dec 2008 15:23:07 -0800 [thread overview]
Message-ID: <7v4p1kalno.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: 4936EE68.6030009@gmail.com
William Pursell <bill.pursell@gmail.com> writes:
> From 57b5eab3f64a40ebe9aca122b5c6db1ab5c26116 Mon Sep 17 00:00:00 2001
> From: William Pursell <bill.pursell@gmail.com>
> Date: Wed, 3 Dec 2008 20:26:36 +0000
> Subject: [PATCH 2/2] Implemented 'g' command to goto a hunk.
s/ted/t/; or s/Implemented/Add/;
s/goto/go to/;
> 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.
Yeah, even without forgotten stashing, you can be in a situation where you
simply have many many changes all over in a file, and know exactly how the
one you need to add to the index urgently looks like.
> @@ -976,6 +980,27 @@ sub patch_update_file {
> }
> next;
> }
> + elsif ($other =~ 'g' && $line =~ /^g(.*)/) {
> + my $response = $1;
> + my $i = 0;
> + chomp $response;
> + while (not $response) {
Did you mean "while ($response eq '')"? I do not think you want "g0<ret>"
to fall into the loop.
> + my $extra = "";
> + $i = display_hunks (\@hunk, $i);
s/_hunks /_hunks/;
> + $extra = "(<ret> to see more): " if ($i != $num);
This is probably just a matter of taste, but (1) Statement Modifiers are
much harder to read than straightforward conditional blocks, and (2) loop
termination condition is better written with magnitude comparison not with
unequality test, when the variable approaches to the limit always from a
known direction, so:
if ($i < $num) {
$extra = "(<ret> to see more): ";
}
> + print "goto which hunk? $extra";
This placement of $extra looks a bit odd.
goto which hunk? (<ret> to see more): *cursor blinking here*
goto which hunk? *cursor blinking here*
Shouldn't it be like this?
goto which hunk (<ret> to see more)? *cursor blinking here*
> + $response = <STDIN>;
> + chomp $response;
> + }
> + if ($response !~ /^\s*\d+$/) {
Why is " 1<ret>" allowed but not "1 <ret>"?
> + print STDERR "Invalid number: '$response'\n";
> + } elsif (0 < $response && $response <= $num) {
> + $ix = $response - 1;
> + } else {
> + print STDERR "Sorry, only $num hunks available.\n";
> + }
> + next;
> + }
> elsif ($line =~ /^d/i) {
> while ($ix < $num) {
> if (!defined $hunk[$ix]{USE}) {
next prev parent reply other threads:[~2008-12-03 23:24 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-27 21:10 summaries in git add --patch William Pursell
2008-11-27 21:27 ` Jakub Narebski
2008-11-28 0:34 ` Junio C Hamano
2008-11-28 4:36 ` William Pursell
2008-11-28 6:42 ` William Pursell
2008-11-28 7:24 ` Junio C Hamano
2008-11-29 0:22 ` William Pursell
2008-12-03 2:15 ` Junio C Hamano
2008-12-03 20:38 ` summaries in git add --patch[PATCH 1/2] William Pursell
2008-12-03 23:22 ` Junio C Hamano
2008-12-04 6:55 ` William Pursell
2008-12-04 8:47 ` Junio C Hamano
2008-12-04 10:43 ` William Pursell
2008-12-05 2:23 ` Junio C Hamano
2008-12-03 20:39 ` summaries in git add --patch[PATCH 2/2] William Pursell
2008-12-03 23:23 ` Junio C Hamano [this message]
2008-12-04 6:56 ` William Pursell
2008-12-04 9:00 ` Junio C Hamano
2008-12-04 10:43 ` William Pursell
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7v4p1kalno.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=bill.pursell@gmail.com \
--cc=git@vger.kernel.org \
/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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.