patch: make parsepatch optionally trim context lines
Previously there is a suspicious `if False and delta > 0` which dates back
to the beginning of hgext/record.py (
b2607267236d).
The "trimming context lines" feature could be useful (and is used by the
next patch). So let's enable it. This patch adds a new `maxcontext`
parameter to `recordhunk` and `parsepatch`, changing the `if False`
condition to respect it.
The old `trimcontext` implementation is also wrong - it does not update
`toline` correctly and it does not do the right thing for `before` context.
A doctest was added to guard us from making a similar mistake again.
Since `maxcontext` is set to `None` (unlimited), there is no behavior
change.
https://bz.mercurial-scm.org/1089
$ hg init
$ mkdir a
$ echo a > a/b
$ hg ci -Am m
adding a/b
$ hg rm a
removing a/b (glob)
$ hg ci -m m a
$ mkdir a b
$ echo a > a/b
$ hg ci -Am m
adding a/b
$ hg rm a
removing a/b (glob)
$ cd b
Relative delete:
$ hg ci -m m ../a
$ cd ..