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
. "$TESTDIR/bzr-definitions"
cat > ghostcreator.py <<EOF
import sys
from bzrlib import workingtree
wt = workingtree.WorkingTree.open('.')
message, ghostrev = sys.argv[1:]
wt.set_parent_ids(wt.get_parent_ids() + [ghostrev])
wt.commit(message)
EOF
echo % ghost revisions
mkdir test-ghost-revisions
cd test-ghost-revisions
bzr init -q source
cd source
echo content > somefile
bzr add -q somefile
bzr commit -q -m 'Initial layout setup'
echo morecontent >> somefile
python ../../ghostcreator.py 'Commit with ghost revision' ghostrev
cd ..
hg convert source source-hg
glog -R source-hg