William Pursell [off-list ref] writes:
Junio C Hamano wrote:
quoted
One thing I will not do after such a discussion, unless I am really really
interested in having the new feature personally myself, is to go back to
the discussion thread and assemble the pieces together to make the final
series of patches for inclusion. The responsibility for doing that lies
on the original contributor.
That is a perfectly reasonable policy, and I did not intend
to suggest that you should do that work.
Heh, that is not a policy but just the way I work (rather, "the way I
don't work and push the work to others instead") with a limited amount of
time.
quoted hunk ↗ jump to hunk
diff --git a/git-add--interactive.perl b/git-add--interactive.perl
index b0223c3..daf8d5d 100755
--- a/git-add--interactive.perl
+++ b/git-add--interactive.perl
@@ -836,6 +836,45 @@ sub patch_update_cmd {
}
}
+# Generate a one line summary of a hunk.
+sub summarize_hunk {
+ my $rhunk = shift;
+ my $summary = $rhunk->{TEXT}[0];
+
+ # Keep the line numbers, discard extra context.
+ $summary =~ s/(@@.*@@).*/$1 /s;
You would need to make the first glob less eager, i.e. /(@@.*?@@).*/,
otherwise you will be folled by a literal @@ in the contents that is
tacked after "@@ -j,k +l,m @@".
Do you really want the surrounding @@ in the result, by the way?
+ # Add some user context. (Just take first changed line.)
+ for my $line (@{$rhunk->{TEXT}}) {
+ if ($line =~ m/^[+-]/) {
Even if it is a blank line?
+ $summary .= $line;
+ last;
+ }
+ }
+
+ return substr ($summary, 0, 80);
s/str /str/;
How well does substr() work with utf-8 and other multi-byte encodings
these days, I have to wonder...
+}
+
+
+# Print a one-line summary of each hunk in the array ref in
+# the first argument, starting wih the index in the 2nd.
+sub display_hunks {
+ my ($hunks, $i) = @_;
+ my $ctr = 0;
+ $i = 0 if not $i;
I think "$i ||= 0" is more common.
+ $status,
+ $i + 1,
+ summarize_hunk ($hunks->[$i]);
s/_hunk /_hunk/;