Browse Source

Merge branch 'pw/add-p-recount'

"git checkout -p" needs to selectively apply a patch in reverse,
which did not work well.

* pw/add-p-recount:
  add -p: fix checkout -p with pathological context
maint
Junio C Hamano 6 years ago
parent
commit
1b074e15d0
  1. 6
      git-add--interactive.perl
  2. 8
      t/t3701-add-interactive.sh

6
git-add--interactive.perl

@ -972,7 +972,11 @@ sub coalesce_overlapping_hunks { @@ -972,7 +972,11 @@ sub coalesce_overlapping_hunks {
next;
}
if ($ofs_delta) {
$n_ofs += $ofs_delta;
if ($patch_mode_flavour{IS_REVERSE}) {
$o_ofs -= $ofs_delta;
} else {
$n_ofs += $ofs_delta;
}
$_->{TEXT}->[0] = format_hunk_header($o_ofs, $o_cnt,
$n_ofs, $n_cnt);
}

8
t/t3701-add-interactive.sh

@ -639,4 +639,12 @@ test_expect_success 'add -p patch editing works with pathological context lines' @@ -639,4 +639,12 @@ test_expect_success 'add -p patch editing works with pathological context lines'
test_cmp expected-2 actual
'

test_expect_success 'checkout -p works with pathological context lines' '
test_write_lines a a a a a a >a &&
git add a &&
test_write_lines a b a b a b a b a b a > a&&
test_write_lines s n n y q | git checkout -p &&
test_write_lines a b a b a a b a b a >expect &&
test_cmp expect a
'
test_done

Loading…
Cancel
Save