Jeff King [off-list ref] writes:
quoted hunk
git-add--interactive.perl | 17 ++++++++++++++++-
t/t2016-checkout-patch.sh | 8 ++++++++
2 files changed, 24 insertions(+), 1 deletions(-)
diff --git a/git-add--interactive.perl b/git-add--interactive.perl
index bfd1003..4173200 100755
--- a/git-add--interactive.perl
+++ b/git-add--interactive.perl
@@ -979,6 +979,21 @@ sub coalesce_overlapping_hunks {
return @out;
}
+sub reassemble_patch {
+ my $head = shift;
+ return (
+ # Include everything in the header except the beginning of the
+ # diff.
+ (grep { !/^[-+]{3}/ } @$head),
+ # Then include any other non-diff header lines from the hunks.
+ (grep { !/^[@ +-]/ } @_),
+ # Then begin the diff.
+ (grep { /^[-+]{3}/ } @$head),
+ # And then the hunk diff lines.
+ (grep { /^[@ +-]/ } @_)
Hmm. Are you handling "\No newline at the end of the file" correctly?