crecord: avoid duplicating lines when reverting noeol->eol change
When reversing a patch that looks like this while using crecord:
```
@@ -301,4 +302,4 @@ zza
zzb
zzc
zzd
-zze
\ No newline at end of file
+zze
```
we would previously reverse the `-zze` line to be an add, encounter the "no
newline" line and stop inspecting lines. This caused us to duplicate the line,
producing `zzezze` (still without a newline).
`break` is the correct action if we know there will be no lines afterwards, as
would be the case in an eol -> noeol transition. It is incorrect if there are
lines afterward, such as if both sides are missing the newline or if only the
lhs is missing the newline.
Differential Revision: https://phab.mercurial-scm.org/D12441
--- a/mercurial/crecord.py Tue Apr 05 11:09:57 2022 -0700
+++ b/mercurial/crecord.py Mon Apr 04 18:05:33 2022 -0700
@@ -505,7 +505,7 @@
text = line.linetext
if line.linetext == diffhelper.MISSING_NEWLINE_MARKER:
noeol = True
- break
+ continue
if line.applied:
if text.startswith(b'+'):
dels.append(text[1:])
--- a/tests/test-revert-interactive-curses.t Tue Apr 05 11:09:57 2022 -0700
+++ b/tests/test-revert-interactive-curses.t Mon Apr 04 18:05:33 2022 -0700
@@ -68,6 +68,5 @@
$ do_revert
reverting a
$ cat a
- 0 (wdir known-bad-output !)
0 (no-eol)