Skip to content

Commit

Permalink
git-add--interactive: replace hunk recounting with apply --recount
Browse files Browse the repository at this point in the history
We recounted the postimage offsets to compensate for hunks that were
not selected.  Now apply --recount can do the job for us.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Thomas Rast authored and Junio C Hamano committed Jul 2, 2008
1 parent 8cb560f commit 8cbd431
Showing 1 changed file with 3 additions and 27 deletions.
30 changes: 3 additions & 27 deletions git-add--interactive.perl
Original file line number Diff line number Diff line change
Expand Up @@ -970,39 +970,15 @@ sub patch_update_file {
push @result, @{$mode->{TEXT}};
}
for (@hunk) {
my $text = $_->{TEXT};
my ($o_ofs, $o_cnt, $n_ofs, $n_cnt) =
parse_hunk_header($text->[0]);

if (!$_->{USE}) {
# We would have added ($n_cnt - $o_cnt) lines
# to the postimage if we were to use this hunk,
# but we didn't. So the line number that the next
# hunk starts at would be shifted by that much.
$n_lofs -= ($n_cnt - $o_cnt);
next;
}
else {
if ($n_lofs) {
$n_ofs += $n_lofs;
$text->[0] = ("@@ -$o_ofs" .
(($o_cnt != 1)
? ",$o_cnt" : '') .
" +$n_ofs" .
(($n_cnt != 1)
? ",$n_cnt" : '') .
" @@\n");
}
for (@$text) {
push @result, $_;
}
if ($_->{USE}) {
push @result, @{$_->{TEXT}};
}
}

if (@result) {
my $fh;

open $fh, '| git apply --cached';
open $fh, '| git apply --cached --recount';
for (@{$head->{TEXT}}, @result) {
print $fh $_;
}
Expand Down

0 comments on commit 8cbd431

Please sign in to comment.