bdiff: normalize the diff (
issue1295)
When the common part of a diff can be moved forward, move it forward.
Otherwise we don't get deterministic results (it would depends on the way we
split for the recursion).
That way we get identical hunks when doing the same change, it helps to solve
issue1295 (inconsistent diffs on different side during a merge).
#!/bin/sh
hg init a
cd a
echo a > a
hg add -n
hg st
hg add
hg st
echo b > b
hg add -n b
hg st
hg add b || echo "failed to add b"
hg st
echo % should fail
hg add b
hg st
hg ci -m 0
echo % should fail
hg add a
echo aa > a
hg ci -m 1
hg up 0
echo aaa > a
hg ci -m 2
hg merge
hg st
echo % should fail
hg add a
hg st
hg resolve -m a
hg ci -m merge
echo % issue683
hg rm a
hg st
echo a > a
hg add a
hg st
hg add c && echo "unexpected addition of missing file"
echo c > c
hg add d c && echo "unexpected addition of missing file"
hg st