mdiff: fix diff -b/B/w on mixed whitespace hunks (issue127)
Previous code was computing hunks then checking if these hunks could be ignored
when taking whitespace/blank-lines options in accounts. This approach is simple
but fails with hunks containing both whitespace and non-whitespace changes, the
whole hunk is emitted while it can be mostly made of whitespace. The new
version normalize the whitespaces before hunk generation, and test for
blank-lines afterwards.
#!/bin/sh
# test that a commit clears the merge state.
hg init repo
cd repo
echo foo > file
hg commit -Am 'add file'
echo bar >> file
hg commit -Am 'append bar'
echo % create a second head
hg up -C 0
echo baz >> file
hg commit -Am 'append baz'
echo % failing merge
HGMERGE=internal:fail hg merge
echo resolved > file
hg resolve -m file
hg commit -m 'resolved'
echo % resolve -l, should be empty
hg resolve -l